Execut GRUB 2.00 pe un sistem Gentoo Linux.
Îmi compilez propriile nuclee manual și apoi le instalez în /boot
cu make install
. Am următoarele nuclee în /boot
în acest moment:
# 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
Rularea grub2-mkconfig
are ca rezultat următoarea ieșire:
# 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
Dacă citesc acum fișierul /boot/grub2/grub.cfg
rezultat, observ că au fost create următoarele intrări:
- O intrare principală implicită care începe
vmlinuz-3.7.4-gentoo-third
- Un submeniu cu toate celelalte intrări (inclusiv cele de recuperare), în aceeași ordine cu
grub2-mkconfig
Problema este că, la momentul pornirii, aș dori să încarc în mod implicit cea de-a cincea revizuire a nucleului meu (vmlinuz-3.7.4-gentoo-5
), nu al treilea (vmlinuz-3.7.4-gentoo-third
). De asemenea, prefer să nu accesez submeniul pentru alegerea nucleului potrivit pentru încărcare.
Cum pot schimba acest comportament? Cum pot spune GRUB că vreau să rulez în mod implicit a cincea revizie a nucleului meu și nu cea de-a treia revizie mai veche? În general, cum pot schimba linia de intrare implicită pentru a se potrivi cu nucleul dorit și nu unul aparent aleatoriu ales de GRUB?
De asemenea, am încercat să introduc următoarele linii în /etc/default/grub
:
GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true
Acest lucru nu rezolvă problema așa cum îmi doresc. Dar cel puțin GRUB pare să-și amintească ultimul kernel din care am pornit și îl selectează automat din submeniu. Este doar că nu-mi place să accesez submeniul.
Comentarii
Răspuns
Pentru a selecta o intrare în meniu sub submeniul „Opțiuni avansate” setați GRUB_DEFAULT = „1> 3”. Acum puteți rula grub2-mkconfig pentru a genera fișierul de configurare grub . La următoarea repornire vmlinuz-3.7.4-gentoo-5 ar trebui să pornească.
Notă : Acest lucru nu va schimba intrarea implicită în meniul grub, adică intrarea implicită va indica în continuare aceeași intrare pe care o aveți chiar acum. Dar imaginea care va fi pornită în mod implicit va fi a 4-a imagine din „Opțiuni avansate”. Pentru a face vmlinuz-3.7.4-gentoo-5 ca intrare implicită în meniul grub, ordonarea imaginilor trebuie să fie astfel încât vmlinuz-3.7.4-gentoo-5 să fie prima imagine când rulați grub2-mkconfig .
Comentarii
- Rețineți că ghilimelele sunt importante. Adică GRUB_DEFAULT = 1 > 3 a câștigat ‘ t lucru.
Răspuns
Dacă aveți un submeniu în grub.cfg, ar trebui să utilizați două cifre de genul acesta:
grub-reboot "1>3"
primul este indexul meniului, iar al doilea este indexul submeniului .
De exemplu, pentru a porni ultima intrare din config astfel:
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" {
ar trebui să utilizați:
grub-reboot "1>5"
și reporniți.
Comentarii
- Ciudat. indexul submeniului începe cu 0, în timp ce meniul principal din 1
Răspuns
puteți utiliza și GRUB_DEFAULT=saved
. În acest caz, ați folosi
$ 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.
sau dacă este „numai pentru următoarea pornire:
$ 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.
Răspuns
Cu centos7 (sau RHEL7) și grub2:
grub folosește intrarea „saved_entry” din grubenv ca implicit pentru a porni, fragmentul din /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
pentru a verifica ceea ce este „saved_entry” este acum versiunea mea:
grub2-editenv list
saved_entry=CentOS Linux (3.10.0-693.2.2.el7.ari.x86_64) 7 (Core)
pentru a-l schimba, de exemplu, la versiunea mea de depanare:
grub2-editenv - set saved_entry="CentOS Linux 3.10.0-693.2.2.el7.ari.x86_64.debug) 7 (Core)"
Răspuns
Încercați
mkdir -p /boot/grub/backup mv -v /boot/grub/vmlinuz-3.7.4-gentoo-{first,third,fourth} /boot/grub/backup
Aceasta mută toate nucleele neutilizate într-un director de rezervă, acum:
grub2-mkconfig -o /boot/grub/grub.cfg
Aceasta adaugă doar opțiunea r5
la meniul dvs. După ce faceți acest lucru, citiți acest link acest și apoi repetați toate nucleele din directorul de rezervă altceva decât vmlinuz dacă insistați să le păstrați
Răspuns
Ceea ce am făcut pentru a obține rezultatul dorit a fost:
-
setați
GRUB_DEFAULT=saved
așa cum este subliniat îngrub-set-default
ajutorgrub-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.
-
Setați valoarea implicită
grub-set-default "1>2"
Se creează un fișier nou în / boot / grub numit grubenv cu informațiile necesare.
-
După el recreez fișierul de configurare
grub-mkconfig > /boot/grub/grub.cfg
Și am văzut că config a fost modificată pentru a utiliza starea salvată:
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
Răspuns
Puteți seta alegerea implicită după valoarea numerică. Dacă setați
`GRUB_DEFAULT=3`
în /etc/default/grub
Veți seta valoarea implicită la intrarea gentoo-5.
GRUB_DEFAULT
este zero, astfel încât 3 vor selecta a patra intrare după cum doriți.
Comentarii
- Nu ‘ nu știu de ce, dar se pare că nu ‘ funcționează. Am setat
GRUB_DEFAULT=3
așa cum ați spus, apoi rulați din nougrub2-mkconfig
. Dar la momentul pornirii, intrarea implicită este încăvmlinuz-3.7.4-gentoo-third
. - Încercați să comentați
GRUB_SAVEDEFAULT=true
Nu ar trebui să ‘ nu contează, dar ‘ nu este necesar cu nume rical. - Nu am ‘ opțiunea respectivă în fișierul
/etc/default/grub
.
Răspuns
Bănuiesc că grub2-mkconfig
sortează nucleele în ordine inversă, presupunând că acestea sunt în principal conțin numere de versiune în creștere monotonă. Deci, începeți să alegeți etichetele pentru a se potrivi convenției respective.
Răspundeți
în ubuntu:
sudo grub-pc
grub-pc vă va permite să alegeți ce meniu.
sudo update-grub
vezi: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu
Răspuns
mv
acele fișiere de versiune noi / neutilizate din /boot
într-un director de rezervă, de exemplu /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
Reporniți sistemul în modul de salvare, apoi alegeți grub în dialogul de salvare, apoi totul va fi în regulă.
Cred că este cea mai potrivită metodă. Folosesc Ubuntu 14.04.
-o /boot/grub2/grub.cfg
ca fișier de ieșire. Directorul/boot/grub/
există în continuare?