Ik “draai GRUB 2.00 op een Gentoo Linux-systeem.
Ik compileer mijn eigen kernels handmatig, en installeer ze vervolgens in /boot
met make install
. Ik heb de volgende kernels in /boot
op dit 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
Het uitvoeren van grub2-mkconfig
resulteert in de volgende uitvoer:
# 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
Als ik nu het resulterende /boot/grub2/grub.cfg
-bestand lees, merk ik dat de volgende items zijn gemaakt:
- Een standaard standaarditem die start
vmlinuz-3.7.4-gentoo-third
- Een submenu met alle andere items (inclusief herstelitems), in dezelfde volgorde als de
grub2-mkconfig
commando
Het probleem is dat ik tijdens het opstarten “standaard de vijfde revisie van mijn kernel wil laden (vmlinuz-3.7.4-gentoo-5
), niet de derde (vmlinuz-3.7.4-gentoo-third
). Ik heb ook liever geen toegang tot het submenu om de juiste kernel te kiezen om te laden.
Hoe kan ik dit gedrag veranderen? Hoe kan ik GRUB vertellen dat ik de vijfde revisie van mijn kernel standaard wil draaien en niet de oudere derde revisie? In het algemeen, hoe kan ik de standaard invoerregel veranderen zodat deze overeenkomt met de kernel die ik wil en niet een schijnbaar willekeurige, gekozen door GRUB?
Ik heb ook geprobeerd de volgende regels in /etc/default/grub
:
GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true
Dit lost het probleem niet op zoals ik wil. Maar GRUB lijkt zich tenminste de laatste kernel te herinneren waarvan ik heb opgestart en selecteert het automatisch uit het submenu. Het is alleen dat ik niet graag toegang heb tot het submenu.
Reacties
Antwoord
Om een menu-item te selecteren onder het submenu “Geavanceerde opties”, stelt u GRUB_DEFAULT = “1> 3” in. U kunt nu grub2-mkconfig uitvoeren om het grub-configuratiebestand te genereren . Bij de volgende herstart zou vmlinuz-3.7.4-gentoo-5 moeten opstarten.
Opmerking : Dit zal de standaardinvoer in het grub-menu, d.w.z. de standaardinvoer zal nog steeds hetzelfde item aangeven als je nu hebt. Maar de afbeelding die standaard zal worden opgestart, is de 4e afbeelding onder de “Geavanceerde opties”. Om vmlinuz-3.7.4-gentoo-5 als de standaard invoer in het grub-menu te maken, moet de volgorde van de afbeeldingen zodanig zijn dat de vmlinuz-3.7.4-gentoo-5 de eerste afbeelding moet zijn als u grub2-mkconfig uitvoert .
Opmerkingen
- Merk op dat de aanhalingstekens belangrijk zijn. D.w.z. GRUB_DEFAULT = 1 > 3 heeft ‘ niet gewerkt.
Antwoord
Als je een submenu in je grub.cfg hebt, zou je moeten gebruiken twee cijfers als volgt:
grub-reboot "1>3"
De eerste is de menu-index en de tweede is de submenu-index .
Om bijvoorbeeld de laatste invoer van de configuratie als volgt op te starten:
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" {
zou je moeten gebruiken:
grub-reboot "1>5"
en herstart.
Reacties
- Raar. submenu-index begint met 0, terwijl hoofdmenu met 1
Answer
u net zo goed GRUB_DEFAULT=saved
. In dit geval “d gebruik je
$ 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.
of als het alleen voor de volgende keer opstarten is:
$ 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.
Antwoord
Met centos7 (of RHEL7) en grub2:
grub gebruikt “saved_entry” invoer van grubenv als standaard om op te starten, sniplet van /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
om te controleren wat de “saved_entry” is is nu mijn build:
grub2-editenv list
saved_entry=CentOS Linux (3.10.0-693.2.2.el7.ari.x86_64) 7 (Core)
om het bijvoorbeeld te veranderen in mijn debug-build:
grub2-editenv - set saved_entry="CentOS Linux 3.10.0-693.2.2.el7.ari.x86_64.debug) 7 (Core)"
Antwoord
Probeer
mkdir -p /boot/grub/backup mv -v /boot/grub/vmlinuz-3.7.4-gentoo-{first,third,fourth} /boot/grub/backup
Dit verplaatst al uw ongebruikte kernels naar een back-upmap, nu:
grub2-mkconfig -o /boot/grub/grub.cfg
Dit voegt alleen keuze r5
toe aan je menu. Lees daarna deze deze link en ream dan alle kernels in de back-up directory iets anders dan vmlinuz als je erop staat ze te behouden
Answer
Wat ik deed om het gewenste resultaat te bereiken was:
-
stel de
GRUB_DEFAULT=saved
zoals beschreven in degrub-set-default
helpgrub-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.
-
Stel de standaardwaarde in
grub-set-default "1>2"
Het maakt een nieuw bestand aan in / boot / grub met de naam grubenv met de vereiste info.
-
Hierna maak ik het configuratiebestand opnieuw
grub-mkconfig > /boot/grub/grub.cfg
En ik heb gezien dat de configuratie is gewijzigd om de opgeslagen staat te gebruiken:
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
Antwoord
U kunt de standaardkeuze instellen op numerieke waarde. Als u
`GRUB_DEFAULT=3`
instelt in /etc/default/grub
U stelt de standaardwaarde in op gentoo-5.
GRUB_DEFAULT
is nul offset, dus 3 zal selecteren het vierde item zoals je wilt.
Reacties
- Ik weet niet ‘ waarom, maar het het lijkt erop dat het niet ‘ t werkt. Ik stel
GRUB_DEFAULT=3
in zoals je zei, en voergrub2-mkconfig
. Maar tijdens het opstarten is de standaardinvoer nog steedsvmlinuz-3.7.4-gentoo-third
. - Probeer commentaar te geven op
GRUB_SAVEDEFAULT=true
Het zou niet ‘ doet er niet toe, maar het ‘ is niet nodig met nume rical. - Ik heb ‘ die optie niet in mijn
/etc/default/grub
bestand.
Antwoord
Ik vermoed dat grub2-mkconfig
de kernels in omgekeerde volgorde sorteert, ervan uitgaande dat ze voornamelijk bevatten monotoon toenemende versienummers. Dus begin met het kiezen van uw tags die bij die conventie passen.
Antwoord
in ubuntu:
sudo grub-pc
grub-pc laat je kiezen welk menu.
sudo update-grub
zie: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu
Antwoord
mv
die nieuwe / niet gebruikte versiebestanden in /boot
naar een back-upmap, bijvoorbeeld /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
Start het systeem opnieuw op in de reddingsmodus, kies dan grub in het reddingsvenster, dan komt alles goed.
Het is volgens mij de meest geschikte methode. Ik gebruik ubuntu 14.04.
-o /boot/grub2/grub.cfg
als uitvoerbestand. Bestaat de directory/boot/grub/
nog?