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
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 igrub-set-default
hjælpgrub-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 dereftergrub2-mkconfig
. Men ved starttidspunktet er standardindgangen stadigvmlinuz-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.
-o /boot/grub2/grub.cfg
som outputfil. Findes biblioteket/boot/grub/
stadig?