Jeg kører GRUB 2.00 på et Gentoo Linux-system.

Jeg kompilerer mine egne kerner manuelt og installerer dem derefter i /boot med make install. Jeg har følgende kerner i /boot i øjeblikket:

# 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 

Kørsel grub2-mkconfig resulterer i følgende output:

# 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 

Hvis jeg nu læser den resulterende /boot/grub2/grub.cfg -fil, bemærker jeg, at følgende poster er oprettet:

  • En hovedindgangspost, som starter vmlinuz-3.7.4-gentoo-third
  • En undermenu med alle de andre poster (inklusive genopretning) i samme rækkefølge som grub2-mkconfig kommando

Problemet er, at jeg ved opstartstidspunktet gerne vil indlæse den femte revision af min kerne (vmlinuz-3.7.4-gentoo-5), ikke den tredje (vmlinuz-3.7.4-gentoo-third). Jeg foretrækker heller ikke at få adgang til undermenuen for at vælge den rigtige kerne, der skal indlæses.

Hvordan kan jeg ændre denne adfærd? Hvordan kan jeg fortælle GRUB, at jeg som standard vil køre den femte revision af min kerne og ikke den ældre tredje version? Generelt, hvordan kan jeg ændre standardindgangslinjen til at matche den kerne, jeg ønsker, og ikke en tilsyneladende tilfældig valgt af GRUB?

Jeg forsøgte også at sætte følgende linjer i /etc/default/grub:

GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true 

Dette løser ikke problemet som jeg ønsker. Men i det mindste ser GRUB ud til at huske den seneste kerne, jeg startede fra og vælger det automatisk fra undermenuen. Det er bare, at jeg ikke kan lide at få adgang til undermenuen.

Kommentarer

  • Jeg bemærkede, at du specificerede -o /boot/grub2/grub.cfg som outputfil. Findes biblioteket /boot/grub/ stadig?

Svar

For at vælge en menupost under undermenuen “Avancerede indstillinger” skal du indstille GRUB_DEFAULT = “1> 3”. Du kan nu køre grub2-mkconfig for at generere grub-konfigurationsfilen Ved den næste genstart skal vmlinuz-3.7.4-gentoo-5 starte.

Bemærk : Dette ændrer ikke standardindtastningen i grub-menuen, dvs. standardindgangen angiver stadig den samme post som du har lige nu. Men det billede, der startes som standard, vil være det 4. billede under “Avancerede indstillinger”. For at gøre vmlinuz-3.7.4-gentoo-5 som standardindgang i grub-menuen skal rækkefølgen af billeder være sådan, at vmlinuz-3.7.4-gentoo-5 skal være det første billede, når du kører grub2-mkconfig .

Kommentarer

  • Bemærk, at anførselstegn er vigtige. Dvs. GRUB_DEFAULT = 1 > 3 vandt ‘ t arbejde.

Svar

Hvis du har en undermenu i din grub.cfg, skal du bruge to cifre som denne:

grub-reboot "1>3" 

første er menuindeks, og anden er undermenuindeks .

For eksempel, for at starte sidste post fra konfiguration sådan:

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" { 

skal du bruge:

grub-reboot "1>5" 

og genstart.

Kommentarer

  • Underligt. undermenuindeks starter med 0, mens hovedmenuen fra 1

Svar

kan du lige så godt bruge GRUB_DEFAULT=saved. I dette tilfælde bruger du

$ 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. 

eller hvis det kun er til den næste opstart:

$ 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. 

Svar

Med centos7 (eller RHEL7) og grub2:

grub bruger “saved_entry” -indtastning fra grubenv som standard til opstart, skal du klippe fra /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 

for at kontrollere, hvad der er “gemt_indgang” er nu min build: p>

grub2-editenv list 

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

for at ændre det f.eks. Til min debug-build:

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

Svar

Prøv

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

Dette flytter alle dine ubrugte kerner til en backup-mappe, nu:

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

Dette føjer kun valg r5 til din menu. Efter at have gjort det, skal du læse dette dette link og derefter genoprette alle kernerne i sikkerhedskopimappen noget andet end vmlinuz, hvis du insisterer på at beholde dem

Svar

Hvad jeg gjorde for at opnå det ønskede resultat havde været:

  • indstil GRUB_DEFAULT=saved som beskrevet i grub-set-default hjælp

    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.

  • Indstil standardværdien

    grub-set-default "1>2"

    Det opretter en ny fil i / boot / grub kaldet grubenv med de nødvendige oplysninger.

  • Efter det genskaber jeg konfigurationsfilen

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

Og jeg har set, at konfigurationen blev ændret til at bruge den gemte tilstand:

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

Svar

Du kan indstille standardvalget med numerisk værdi. Hvis du indstiller

`GRUB_DEFAULT=3` 

i /etc/default/grub
Du indstiller standard til gentoo-5-posten.
GRUB_DEFAULT er nul forskydning, så 3 vælger den fjerde post, som du vil.

Kommentarer

  • Jeg ved ikke ‘ ved ikke hvorfor, men det ser ud til at det ikke fungerer ‘. Jeg indstiller GRUB_DEFAULT=3 som du sagde, og kør derefter grub2-mkconfig. Men ved starttidspunktet er standardindgangen stadig vmlinuz-3.7.4-gentoo-third.
  • Prøv at kommentere GRUB_SAVEDEFAULT=true Den skal ikke ‘ betyder ikke noget, men det er ‘ ikke nødvendigt med nume rical.
  • Jeg har ikke ‘ den mulighed i min /etc/default/grub -fil.

Svar

Jeg formoder, at grub2-mkconfig sorterer kernerne i omvendt rækkefølge, forudsat at de primært indeholder monotont stigende versionstal. Så start med at vælge dine tags, så de passer til den konvention.

Svar

i ubuntu:

sudo grub-pc 

grub-pc giver dig mulighed for at vælge hvilken menu.

sudo update-grub 

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

Svar

mv de nye / ikke brugte versionfiler i /boot til en backup-mappe for eksempel /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 

Genstart systemet i redningstilstand, vælg derefter grub i redningsdialog, så vil alt være okay.

Det er den mest egnede metode synes jeg. Jeg bruger ubuntu 14.04.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *