Používám GRUB 2.00 na systému Gentoo Linux.

Ručně kompiluji svá jádra a poté je instaluji do /boot s make install. V /boot mám v tuto chvíli následující jádra:

# ls -1 /boot/vmlinuz* /boot/vmlinuz-3.7.4-gentoo-5 /boot/vmlinuz-3.7.4-gentoo-first /boot/vmlinuz-3.7.4-gentoo-fourth /boot/vmlinuz-3.7.4-gentoo-third 

Spuštění grub2-mkconfig má za následek následující výstup:

# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.7.4-gentoo-third Found linux image: /boot/vmlinuz-3.7.4-gentoo-fourth Found linux image: /boot/vmlinuz-3.7.4-gentoo-first Found linux image: /boot/vmlinuz-3.7.4-gentoo-5 done 

Pokud nyní čtu výsledný soubor /boot/grub2/grub.cfg, všiml jsem si, že byly vytvořeny následující položky:

  • Hlavní výchozí položka, která spustí vmlinuz-3.7.4-gentoo-third
  • Podnabídka se všemi ostatními položkami (včetně obnovovacích) ve stejném pořadí jako grub2-mkconfig příkaz

Problém je v tom, že při bootování bych chtěl implicitně načíst pátou revizi mého jádra (vmlinuz-3.7.4-gentoo-5), ne třetí (vmlinuz-3.7.4-gentoo-third). Také nejraději nemám přístup do podnabídky pro výběr správného jádra, které se má načíst.

Jak mohu změnit toto chování? Jak mohu GRUBu říct, že chci ve výchozím nastavení spustit pátou revizi mého jádra a ne starší třetí revizi? Jak mohu obecně změnit výchozí vstupní řádek tak, aby odpovídal jádru, které chci, a nikoli zdánlivě náhodnému, který vybral GRUB?

Také jsem se pokusil vložit následující řádky do /etc/default/grub:

GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true 

To problém nevyřeší tak, jak si přeji. Zdá se však, že si alespoň GRUB pamatuje nejnovější jádro, ze kterého jsem bootoval, a automaticky vybere z podnabídky. Jde jen o to, že nemám rád přístup do podnabídky.

Komentáře

  • Všiml jsem si, že jste zadali -o /boot/grub2/grub.cfg jako výstupní soubor. Existuje adresář /boot/grub/ stále?

Odpověď

Chcete-li vybrat položku nabídky v podnabídce „Pokročilé možnosti“, nastavte GRUB_DEFAULT = „1> 3“. Nyní můžete spustit grub2-mkconfig a vygenerovat konfigurační soubor grub . Při příštím restartu by se měl spustit vmlinuz-3.7.4-gentoo-5.

Poznámka : Tím se nezmění výchozí položka v nabídka grub, tj. výchozí položka bude stále označovat stejnou položku, jakou máte právě teď. Ve výchozím nastavení však bude obrázek spuštěn jako 4. obrázek v části Pokročilé možnosti. Chcete-li vmlinuz-3.7.4-gentoo-5 nastavit jako výchozí položku v nabídce grub, mělo by být pořadí obrázků takové, aby vmlinuz-3.7.4-gentoo-5 byl prvním obrázkem při spuštění grub2-mkconfig .

Komentáře

  • Upozorňujeme, že uvozovky jsou důležité. Tj. GRUB_DEFAULT = 1 > 3 práce ‚ nebudou fungovat.

Odpověď

Pokud máte ve svém souboru grub.cfg podnabídku dvě číslice, jako je tato:

grub-reboot "1>3" 

první je index nabídky a druhý je index podnabídky .

Chcete-li například zavést poslední položku z konfigurace takto:

grep menu /boot/grub/grub.cfg menuentry "Debian GNU/Linux" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-simple-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { submenu "Advanced options for Debian GNU/Linux" $menuentry_id_option "gnulinux-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { 

měli byste použít:

grub-reboot "1>5" 

a restartovat.

Komentáře

  • Divné. index podnabídky začíná číslem 0, zatímco hlavní nabídka od 1

odpověď

můžete také použít GRUB_DEFAULT=saved. V tomto případě použijete

$ grub2-set-default -h Usage: grub2-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier. 

nebo pokud je to pouze pro další spuštění:

$ grub2-reboot -h Usage: grub2-reboot [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB, for the next boot only. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier. 

Odpověď

S centos7 (nebo RHEL7) a grub2:

grub používá položku „saved_entry“ z grubenv jako výchozí pro spuštění, sniplet z /boot/grub2/grub.cfg:

if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi 

zkontrolovat, co je „saved_entry“, je nyní moje sestavení:

grub2-editenv list 

saved_entry=CentOS Linux (3.10.0-693.2.2.el7.ari.x86_64) 7 (Core)

změnit to, např. Na mé sestavení ladění:

grub2-editenv - set saved_entry="CentOS Linux 3.10.0-693.2.2.el7.ari.x86_64.debug) 7 (Core)" 

odpovědět

Vyzkoušet

mkdir -p /boot/grub/backup mv -v /boot/grub/vmlinuz-3.7.4-gentoo-{first,third,fourth} /boot/grub/backup 

Tím přesunete všechna nepoužívaná jádra do záložního adresáře, nyní:

grub2-mkconfig -o /boot/grub/grub.cfg 

Tím do nabídky přidáte pouze volbu r5. Poté si přečtěte tento tento odkaz a poté nechejte všechna jádra v záložním adresáři něco jiného než vmlinuz, pokud trváte na jejich uchování

Odpověď

To, co jsem udělal pro dosažení požadovaného výsledku, bylo:

  • nastavit GRUB_DEFAULT=saved jak je uvedeno v grub-set-default nápovědě

    grub-set-default Menu entry not specified. Usage: grub-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. This requires setting GRUB_DEFAULT=saved in /etc/default/grub. -h, --help print this message and exit -V, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub instead of the /boot/grub directory MENU_ENTRY is a number, a menu item title or a menu item identifier.

  • Nastavit výchozí hodnotu

    grub-set-default "1>2"

    Vytvoří nový soubor v / boot / grub s názvem grubenv s požadovanými informacemi.

  • Poté znovu vytvořím konfigurační soubor

    grub-mkconfig > /boot/grub/grub.cfg

A viděl jsem, že konfigurace byla změněna tak, aby používala uložený stav:

if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi

Odpověď

Výchozí volbu můžete nastavit pomocí číselné hodnoty. Pokud nastavíte

`GRUB_DEFAULT=3` 

v /etc/default/grub
Nastavíte výchozí hodnotu pro položku gentoo-5.
GRUB_DEFAULT je nulový offset, takže 3 vybere čtvrtý záznam, jak si přejete.

Komentáře

  • Nevím ‚ nevím proč, ale ono Zdá se, že to ‚ nefunguje. Nastavil jsem GRUB_DEFAULT=3, jak jste řekl, a poté znovu spusťte grub2-mkconfig. Ale v době spuštění je výchozí položka stále vmlinuz-3.7.4-gentoo-third.
  • Zkuste komentář GRUB_SAVEDEFAULT=true Neměl by ‚ na tom nezáleží, ale ‚ s nume to není potřeba rical.
  • Nemám ‚ tuto možnost v mém /etc/default/grub souboru.

Odpověď

Mám podezření, že grub2-mkconfig třídí jádra v obráceném pořadí za předpokladu, že primárně obsahují monotónně rostoucí čísla verzí. Začněte tedy vybírat značky, aby vyhovovaly této konvenci.

Odpovědět

v ubuntu:

sudo grub-pc 

grub-pc vám umožní vybrat si kterou nabídku.

sudo update-grub 

viz: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu

odpověď

mv tyto nové / nepoužívané soubory verzí v /boot do záložního adresáře, například /boot/back

initrd.img-3.13.0-xx-generic vmlinuz-3.13.0-xx-generic config-3.13.0-xx-generic System.map-3.13.0-xx-generic 

Restartujte systém do režimu záchrany, poté v dialogu záchrany vyberte grub, pak bude vše v pořádku.

Myslím, že je to nejvhodnější metoda. Používám ubuntu 14.04.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *