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
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 vgrub-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ťtegrub2-mkconfig
. Ale v době spuštění je výchozí položka stálevmlinuz-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.
-o /boot/grub2/grub.cfg
jako výstupní soubor. Existuje adresář/boot/grub/
stále?