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

  • Ik heb gemerkt dat je -o /boot/grub2/grub.cfg als uitvoerbestand. Bestaat de directory /boot/grub/ nog?

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 de grub-set-default help

    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.

  • 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 voer grub2-mkconfig. Maar tijdens het opstarten is de standaardinvoer nog steeds vmlinuz-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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *