GNU/Linux >> Znalost Linux >  >> Linux

Nastavte výchozí jádro v GRUB

Po 2 hodinách boje jsem našel mnohem jednodušší způsob, jak toho dosáhnout. Já jen RTFM.;)

Přidejte dva řádky do /etc/default/grub

GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved

Proveďte sudo update-grub , restartujte, přejděte do své nabídky grub a vyberte kteroukoli položku nabídky nebo podnabídky, kterou potřebujete. Volba se pokaždé uloží a váš počítač se do ní automaticky zavede. Když ručně vyberete jiný záznam, stane se novým výchozím nastavením.


Myslím, že většina distribucí v tuto chvíli přesunula další jádra do podnabídky pokročilých možností, jak zjistil TomTom v případě hisArch.

Nechtěl jsem měnit strukturu nabídky nejvyšší úrovně, abych vybral předchozí jádro jako výchozí. Odpověď jsem našel zde:

http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html

Abych to shrnul:

1) Najděte $menuentry_id_option pro podnabídku:

$ grep submenu /boot/grub/grub.cfg
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {

2) Najděte $menuentry_id_option pro položku nabídky pro jádro, které chcete použít:

$ grep gnulinux /boot/grub/grub.cfg
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {

3) Zakomentujte svůj aktuální výchozí grub v /etc/default/grub a nahraďte jej podnabídkou $menuentry_id_option z prvního kroku a $menuentry_id_option vybraného jádra z kroku dva oddělené > .

V mém případě upravený GRUB_DEFAULT je:

#GRUB_DEFAULT=0

GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"

4) Aktualizujte grub, abyste provedli změny. Pro Debian se to dělá takto:

$ sudo update-grub

Hotovo. Nyní, když bootujete, pokročilé menu by mělo mít hvězdičku a měli byste zavést vybrané jádro. Můžete to potvrdit pomocí uname .

$ uname -a
Linux NAME 4.18.0-0.bpo.1-amd64 #1 SMP Debian 4.18.0-0 (2018-09-13) x86_64 GNU/Linux

Změna tohoto zpět na nejnovější jádro je stejně jednoduchá jako zakomentování nového řádku a zrušení komentáře #GRUB_DEFAULT=0 :

GRUB_DEFAULT=0

#GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"

poté znovu spusťte update-grub .


Jak je uvedeno v komentářích, můžete nastavit výchozí jádro, do kterého se zavede pomocí grub-set-default X příkaz, kde X je číslo jádra, do kterého chcete zavést. V některých distribucích můžete toto číslo nastavit také úpravou /etc/default/grub soubor a nastavení GRUB_DEFAULT=X a poté spuštěním update-grub .

Číslo je index pole jader/nastavení jádra zobrazený v nabídce GRUB během zavádění, přičemž 0 je první (nejvyšší) položka. Správné číslo obvykle najdete vyhledáním menuentry řádků v /boot/grub/grub.cfg , asi takhle:

grep menuentry /boot/grub/grub.cfg

Uvidíte každé jádro uvedené s názvem, který je zobrazen v zaváděcí nabídce GRUB. První je 0, druhý je 1 a tak dále.


Linux
  1. Jak nastavit automatické aktualizace jádra bez restartu na serveru Linux

  2. Linux – nastavit výchozí jádro v Grub?

  3. Jak změnit výchozí program „čtení“?

  1. Používání sed k aktualizaci souboru Grub?

  2. CentOS / RHEL 7:Jak nastavit výchozí cíl (výchozí úroveň běhu)

  3. Nelze nastavit heslo GRUB na systému Raspberry Pi 3

  1. Parallel make:nastavte -j8 jako výchozí volbu

  2. Jak nastavím výchozí přezdívku pro nová připojení irssi?

  3. Jak nastavit výchozí desktopové prostředí při startu systému?