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

Jeg kompilerer mine egne kjerner manuelt, og installerer dem deretter i /boot med make install. Jeg har følgende kjerner i /boot for øyeblikket:

# 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 

Kjører grub2-mkconfig resulterer i følgende utdata:

# 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 nå leser den resulterende /boot/grub2/grub.cfg -filen, merker jeg at følgende oppføringer er opprettet:

  • En hovedoppføring som starter vmlinuz-3.7.4-gentoo-third
  • En undermeny med alle de andre oppføringene (inkludert gjenopprettings), i samme rekkefølge som grub2-mkconfig kommando

Problemet er at jeg ved oppstart vil laste inn den femte versjonen av kjernen min som standard (vmlinuz-3.7.4-gentoo-5), ikke den tredje (vmlinuz-3.7.4-gentoo-third). Jeg foretrekker heller ikke å få tilgang til undermenyen for å velge riktig kjerne å laste inn.

Hvordan kan jeg endre denne oppførselen? Hvordan kan jeg fortelle GRUB at jeg vil kjøre den femte revisjonen av kjernen min som standard, og ikke den eldre tredje versjonen? Generelt, hvordan kan jeg endre standardinngangslinjen slik at den samsvarer med kjernen jeg vil ha, og ikke en tilsynelatende tilfeldig, valgt av GRUB?

Jeg prøvde også å sette følgende linjer i /etc/default/grub:

GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true 

Dette løser ikke problemet slik jeg ønsker. Men i det minste ser GRUB ut til å huske den siste kjernen jeg startet fra og velger det automatisk fra undermenyen. Det er bare det at jeg ikke vil ha tilgang til undermenyen.

Kommentarer

  • Jeg la merke til at du spesifiserte -o /boot/grub2/grub.cfg som utdatafil. Finner katalogen /boot/grub/ fortsatt?

Svar

For å velge en menypost under undermenyen «Avanserte alternativer», sett GRUB_DEFAULT = «1> 3». Du kan nå kjøre grub2-mkconfig for å generere grub-konfigurasjonsfilen Ved neste omstart skal vmlinuz-3.7.4-gentoo-5 starte.

Merk : Dette vil ikke endre standardoppføringen i grubmenyen, dvs. standardoppføringen vil fremdeles indikere den samme oppføringen som du har akkurat nå. Men bildet som startes opp som standard, vil være det fjerde bildet under «Avanserte alternativer». For å gjøre vmlinuz-3.7.4-gentoo-5 som standardoppføring i grub-menyen, bør rekkefølgen av bilder være slik at vmlinuz-3.7.4-gentoo-5 skal være det første bildet når du kjører grub2-mkconfig .

Kommentarer

  • Merk at anførselstegnene er viktige. Dvs. GRUB_DEFAULT = 1 > 3 vant ‘ t fungerer.

Svar

Hvis du har en undermeny i grub.cfg, bør du bruke to sifre som dette:

grub-reboot "1>3" 

første er menyindeks, og andre er undermenyindeks .

For eksempel, for å starte siste oppføring fra konfigurasjon slik:

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

, bør du bruke:

grub-reboot "1>5" 

og start på nytt.

Kommentarer

  • Rart. undermenyindeks starter med 0, mens hovedmenyen fra 1

Svar

kan du like godt bruke GRUB_DEFAULT=saved. I dette tilfellet vil du bruke

$ 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 bare er for neste oppstart:

$ 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 bruker «saved_entry» oppføring fra grubenv som standard for oppstart, sniplet 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 å sjekke hva som er «saved_entry» er nå min build:

grub2-editenv list 

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

for å endre det, for eksempel til min feilsøkingsbygging:

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 ubrukte kjerner til en sikkerhetskopikatalog, nå:

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

Dette legger bare til valg r5 til menyen din. Etter å ha gjort det, les denne denne lenken og deretter reame alle kjernene i sikkerhetskopikatalogen noe annet enn vmlinuz hvis du insisterer på å beholde dem

Svar

Det jeg gjorde for å oppnå ønsket resultat hadde vært:

  • angi GRUB_DEFAULT=saved som beskrevet i grub-set-default hjelp

    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.

  • Angi standardverdien

    grub-set-default "1>2"

    Den oppretter en ny fil i / boot / grub kalt grubenv med den nødvendige informasjonen.

  • Etter det gjenskaper jeg konfigurasjonsfilen

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

Og jeg har sett at konfigurasjonen ble endret til å bruke den lagrede tilstanden:

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 angi standardvalget etter numerisk verdi. Hvis du angir

`GRUB_DEFAULT=3` 

i /etc/default/grub
Du vil sette standard til gentoo-5-oppføringen.
GRUB_DEFAULT er nullforskyvning, så 3 velger den fjerde posten som du ønsker.

Kommentarer

  • Jeg vet ikke ‘ hvorfor, men det ser ut til at det ikke fungerer ‘. Jeg satte GRUB_DEFAULT=3 som du sa, og kjør deretter grub2-mkconfig. Men ved oppstartstid er standardoppføringen fortsatt vmlinuz-3.7.4-gentoo-third.
  • Prøv å kommentere GRUB_SAVEDEFAULT=true Den skal ikke ‘ t saken, men det ‘ er ikke nødvendig med nume rical.
  • Jeg har ikke ‘ t har det alternativet i /etc/default/grub -filen.

Svar

Jeg mistenker at grub2-mkconfig sorterer kjernene i omvendt rekkefølge, forutsatt at de primært inneholder monotont økende versjonsnumre. Så begynn å velge taggene dine slik at de passer til den konvensjonen.

Svar

i ubuntu:

sudo grub-pc 

grub-pc lar deg velge hvilken meny.

sudo update-grub 

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

Svar

mv de nye / ikke brukte versjonsfilene i /boot til en sikkerhetskopikatalog 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 

Start systemet på nytt i redningsmodus, velg deretter grub i redningsdialogen, så vil alt være greit.

Det er den mest egnede metoden tror jeg. Jeg bruker ubuntu 14.04.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *