“Eski” çekirdeği varsayılan grub girişi olarak ayarlayın


93

Test amacıyla bir ana hat çekirdeği kurdum. Varsayılan olarak eski çekirdekten önyükleme yapacak grub ayarlamak istiyorum.

GRUB_DEFAULT=0Grubun ilk sayfasının ayarını ayarlayabileceğimi biliyorum ama ikinci sayfadaki (Gelişmiş sayfa) varsayılan olarak bir çekirdekten önyüklemeye nasıl ayarlarım?

Bunu başka bir yazılım yüklemeden yapmayı tercih ederim (örn. Grub-customizer).

İlgili Sorular:
Windows'u, önyükleyici içinde önyükleyici olarak varsayılan olarak nasıl ayarlarım?
Grub önyükleme sırasını nasıl değiştiririm?


3
@ belacqua: Bir kopyası değil. Bu soru, grubun ilk seçenek sayfasında varsayılan olarak bulunmayan eski bir çekirdeği ayarlamakla ilgilidir.
— Yapılacak

Bu durumda önceki sorulara kaplı olmalıdır gibi yöntem 12.10 için güncelleme, eski çekirdekler, vb olması gerekiyor olsa bile, görünüyor ..
— Belacqua

3
Sorunun kullanım durumu farklıdır ve cevap, talep edilen diğer kopyalara uygulanmayan bir şekilde çok spesifiktir. Bu özel sorunu çözmek için buraya geldim; önyükleme sırasını değiştirmemek; ne de Windows'u önyüklemek için. "Bir kopya değil" için +1.
— Robie Basak

Yanıtlar:


128

İlk önce bir yedek kopyasını alın /etc/default/grub. Bir şeyler ters giderse, iyi bilinen kopyaya kolayca geri dönebilirsiniz.

sudo cp /etc/default/grub /etc/default/grub.bak

Ardından, seçtiğiniz metin editörünü kullanarak dosyayı düzenleyin (örn. Gedit, vb.).

sudo -H gedit /etc/default/grub

İçerdiği satırı bulun GRUB_DEFAULT- varsayılanı ayarlamak için düzenlemek istediğiniz şey budur. İstediğiniz çekirdeğin tam adını bilmeniz gerekir - örneğin Ubuntu, with Linux 3.13.0-53-generic- "gelişmiş menünün" tam adı ile birlikte - örneğin Advanced options for Ubuntu.

Daha sonra bu iki dizgiyi birleştirin >ve GRUB_DEFAULTbunlara şu şekilde ayarlayın : GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic"(tırnak işaretleri dahil).

Saklayın, ardından güncellenmiş grub menüsünü oluşturun.

sudo update-grub

Ayrıca bakınız: GNU GRUB El Kitabı 2.02 veya daha spesifik olarak varsayılanı ayarlama ile ilgili 15.1.0 .


Not: Çekirdeklere ve menülere erişmek için sayıları kullanan bir yöntem vardır, ancak çekirdek güncelleştirmeleri gerçekleştiğinde güvenilmez olduğundan bu önerilmez.


24
Güncelleme gerçekleştiğinde sayısal bir değer kullanmak sorunlu olabilir. GRUB_DEFAULT = "Önceki Linux sürümleri> 3.2.0-18-jenerik Linux ile Ubuntu,": Bu, yani bir metin varsayılan kullanmak daha iyidir
— Bealer

27
sudo grub-mkconfig | lessOlası tüm seçenekleri görmek için kullanabilirsiniz
— Nitz

9
Bu iyi bir çözümdür, ama daha da iyi bir açmaktır /boot/grub/grub.cfgve orada tüm göreceksiniz manuentryve tüm submenus. Bunları düzenlerseniz, varsayılan ayarları kolayca ayarlayabilirsiniz, hatta bilgisayarı yeniden başlatırken grub listesindeki seçeneklerin Başlıklarını bile değiştirebilirsiniz.
— Aleks

7
/boot/grub/grub.cfgKullanılacak tam adların belirlenmesinde kesinlikle faydalıdır . Ancak bu dosyayı update-grub, paketleri güncelleme dahil olmak üzere otomatik olarak yenileneceği için değiştirmeyin .
— Robie Basak

18
GRUB_DEFAULT için biçimlendirme biraz eski (en azından Ubuntu 14.04.2'den beri). Çalıştırıyor update-grubBir uyarıyla karşılaştım: Lütfen Previous Linux versions>Ubuntu, with Linux 3.13.0-53-genericGRUB_DEFAULT için eski bir başlık kullanmayın, kullanın Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic(2.00'den önceki sürümler için) veya gnulinux-advanced-b0ce60c3-184c-453b-af59-419b56a2584f>gnulinux-3.13.0-53-generic-advanced-b0ce60c3-184c-453b-af59-419b56a2584f(2.00 veya üstü için)
— Wumms

22

Benim için en iyi çözüm (in /etc/default/grub) ayarlamaktı :

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

Bu ayarlarla en son seçilen değer bir sonraki önyükleme için tutulur. Yeni bir çekirdeğiniz varsa, yapılandırmanızı düzenlemek zorunda değilsiniz.

Tekrar çalıştırmayı unutma sudo update-grub

Çözüm okuyor: info grub-mkconfig


4
Bu harika
— Mephisto

;satırların sonundaki noktalı virgül ( ) öğesinden emin misiniz ?!?
— DJCrashdummy

Bilgisayarımı şu anda kullandığım yere bakamıyorum, ama haklısın ";" yanlış ya da gereksiz görünüyor!
— Martin T.

21

Şimdi AdvancedUbuntu'da bir menü varsayılan olarak, >karakteri kullanmak istediğiniz çekirdeğin önünde seçmeniz gerekir .

Örneğin ayarla:

GRUB_DEFAULT="1>7"

içeri /etc/default/grubve yeniden çalıştırın sudo update-grub.

GRUB menüsü girişleri için numaralandırmanın başladığına dikkat etmek önemlidir 0. Bu nedenle 1yukarıdakiler Advancedmenüye işaret eder . Bir önlem olarak, başlangıçta ayarlamak isteyebilirsiniz GRUB_TIMEOUT=5. Bazıları önyükleme sırasında bir tuşa basarak GRUB’a erişemeyebilir. Yanlışlıkla Memory testbunun gibi bir şeye işaret etmeniz durumunda, bu bir güvenlik ağıdır . Yukarıdaki sayıları tırnak içine almak da gereklidir. Aksi takdirde çalışmayacak.

16.04 LTS'de test ettim.


Debian'da da çalışıyor.
— Lawrence D'Oliveiro

Bu cevabı çok yararlı buluyorum, çünkü bir çekirdek güncellemesinden sonra hala en yeni çekirdeğe işaret ediyor. kurulumumda örneğin 1> 0, anlamı: gelişmiş-birinci liste (her zaman en yeni çekirdek). sistemim bazen grubun 0 girdisini en yeni çekirdekli olarak otomatik olarak güncellemek için durdu, bu yüzden bu yöntemi kullanıyorum.
— Peter Fleix

9

Hangi önyükleme seçeneğini varsayılan olarak kullanacağınızı ayarlayabilmek için ne olduğunu bilmeniz gerekir ... öyleyse:

Menü girişlerini önyükleme yapmadan görüntülemek için , şöyle bir şey deneyin:

$ lsb_release -s -rdc
Ubuntu 16.04.4 LTS
16.04
Xenial

$ update-grub --version
grub-mkconfig (GRUB) 2.02 ~ beta2-36ubuntu3.17

$ grep -Ei 'submenu | menuentry' /boot/grub/grub.cfg | sed -re "s / (.?) '([^'] +) '. * / \ 1 \ 2 /"
menuentry Ubuntu
submenu Ubuntu için gelişmiş seçenekler
    Linux 4.4.0-34-generic ile menüsel Ubuntu
    Linux 4.4.0-34-generic (başlangıç) ile menuent Ubuntu
    Linux 4.4.0-34-jenerik (kurtarma modu) ile menüsel Ubuntu
menü sistemi Sistem kurulumu

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.