A GRUB 2.00-at futtatom egy Gentoo Linux rendszeren.
Saját kerneleimet manuálisan fordítom le, majd telepítem a /boot
és make install
. Jelenleg a következő kernelek vannak a /boot
fájlban:
# 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
A grub2-mkconfig
futtatása a következő kimenetet eredményezi:
# 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
Ha most elolvastam az eredményül kapott /boot/grub2/grub.cfg
fájlt, akkor észrevettem, hogy a következő bejegyzések jöttek létre:
- Alapértelmezett bejegyzés elindul
vmlinuz-3.7.4-gentoo-third
- Egy almenü az összes többi bejegyzéssel (beleértve a helyreállítási tételeket is), a
grub2-mkconfig
parancs
A probléma az, hogy indításkor alapértelmezés szerint “be akarom tölteni a kernelem ötödik verzióját (vmlinuz-3.7.4-gentoo-5
), nem a harmadik (vmlinuz-3.7.4-gentoo-third
). Azt sem szeretném, ha hozzáférnék az almenühöz a betöltendő kernel kiválasztásához.
Hogyan változtathatom meg ezt a viselkedést? Hogyan mondhatom el a GRUB-nak, hogy alapértelmezés szerint a rendszermag ötödik verzióját akarom futtatni, és nem a régebbi harmadik verziót? Általában hogyan változtathatom meg az alapértelmezett beviteli sort, hogy az megfeleljen a kívánt kernelnek, és ne egy látszólag véletlenszerűnek, amelyet a GRUB választott?
Megpróbáltam a következő sorokat is elhelyezni a /etc/default/grub
:
GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true
Ez nem oldja meg a problémát úgy, ahogy szeretném. De legalább úgy tűnik, hogy a GRUB emlékszik a legújabb kernelre, amelyről indítottam és automatikusan kiválasztja az almenüből. Csak nem szeretném elérni az almenüt.
Megjegyzések
Válasz
Menübejegyzés kiválasztásához az “Advanced options” almenüben állítsa be a GRUB_DEFAULT = “1> 3” beállítást. Most futtathatja a grub2-mkconfig fájlt a grub konfigurációs fájl előállításához . A következő újraindításkor a vmlinuz-3.7.4-gentoo-5 programnak indulnia kell.
Megjegyzés : Ez nem változtatja meg az alapértelmezett bejegyzést a grub menü, vagyis az alapértelmezett bejegyzés továbbra is ugyanazt a bejegyzést jelzi, mint most. De az a kép, amelyet alapértelmezés szerint indítunk, a 4. kép lesz a “Speciális beállítások” alatt. Ahhoz, hogy a vmlinuz-3.7.4-gentoo-5 legyen a grub menü alapértelmezett bejegyzése, a képek sorrendjének olyannak kell lennie, hogy a vmlinuz-3.7.4-gentoo-5 legyen az első kép a grub2-mkconfig futtatásakor .
Megjegyzések
- Ne feledje, hogy az idézőjelek fontosak. Azaz. GRUB_DEFAULT = 1 > 3 nyert ‘ t.
Válasz
Ha van almenü a grub.cfg fájlban, akkor használja két ilyen számjegy:
grub-reboot "1>3"
Az első a menü indexe, a második pedig az almenü indexe .
Például az utolsó bejegyzés indításához az ilyen konfigurációból:
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" {
a következőt kell használnia:
grub-reboot "1>5"
és indítsa újra.
Megjegyzések
- Furcsa. almenü indexe 0-val kezdődik, míg a főmenü 1-től
Válasz
használhatja a GRUB_DEFAULT=saved
. Ebben az esetben használja a következőt:
$ 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.
, vagy ha csak a következő rendszerindításhoz használja:
$ 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.
Válasz
Centos7 (vagy RHEL7) és grub2 használatával:
a grub a “save_entry” bejegyzést használja a grubenv-ből alapértelmezésként a rendszerindításhoz, kivonat a /boot/grub2/grub.cfg fájlból:
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
, hogy ellenőrizze, mi a “saved_entry”, most az én buildem:
grub2-editenv list
saved_entry=CentOS Linux (3.10.0-693.2.2.el7.ari.x86_64) 7 (Core)
hogy megváltoztassam pl. A hibakereső összeállításra:
grub2-editenv - set saved_entry="CentOS Linux 3.10.0-693.2.2.el7.ari.x86_64.debug) 7 (Core)"
Válasz
Próbálja
mkdir -p /boot/grub/backup mv -v /boot/grub/vmlinuz-3.7.4-gentoo-{first,third,fourth} /boot/grub/backup
Ez az összes fel nem használt kernelét egy biztonsági könyvtárba helyezi át, most:
grub2-mkconfig -o /boot/grub/grub.cfg
Ez csak a r5
választást adja hozzá a menüjéhez. Miután ezt megtette, olvassa el ezt a ezt a linket, majd a biztonsági másolat könyvtárában található összes kernelt olvassa el a vmlinuz kivételével, ha ragaszkodik azok megtartásához
Válasz
Amit a kívánt eredmény elérése érdekében tettem:
-
állítsa be a
a
grub-set-default
súgó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.
-
Alapértelmezett érték beállítása
grub-set-default "1>2"
Új fájlt hoz létre a / boot / grub fájlban grubenv a szükséges információkkal.
-
Utána létrehozom a konfigurációs fájlt
grub-mkconfig > /boot/grub/grub.cfg
És láttam, hogy a konfiguráció megváltozott az elmentett állapot használatához:
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
Válasz
Az alapértelmezett választást numerikus értékkel állíthatja be. Ha beállítja a
`GRUB_DEFAULT=3`
beállítást /etc/default/grub
Az alapértelmezett értéket a gentoo-5 bejegyzésre állítja.
GRUB_DEFAULT
nulla eltolás, ezért 3 választja a negyedik bejegyzés tetszés szerint.
Megjegyzések
- Nem tudom ‘ nem tudom, miért, de úgy tűnik, hogy nem működik ‘ t. Beállítottam az
GRUB_DEFAULT=3
-t, ahogy mondtad, majd futtatom újra agrub2-mkconfig
. De a rendszerindításkor az alapértelmezett bejegyzés továbbra isvmlinuz-3.7.4-gentoo-third
. - Próbálja meg megjegyezni
GRUB_SAVEDEFAULT=true
Nem kéne ‘ t számít, de számmal nem szükséges ‘ rical. - Nincs ‘ nincs lehetőségem a
/etc/default/grub
fájlomban.
Válasz
Gyanítom, hogy a grub2-mkconfig
fordított sorrendben rendezi a kerneleket, feltételezve, hogy elsősorban monoton növekvő verziószámokat tartalmaznak. Kezdje tehát kiválasztani a címkéit, hogy illeszkedjenek az adott konvencióhoz.
Válasz
az ubuntuban:
sudo grub-pc
A grub-pc segítségével kiválaszthatja, hogy melyik menüt használja.
sudo update-grub
lásd: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu
Válasz
mv
azok az új / nem használt verziófájlok a /boot
fájlban egy biztonsági mentési könyvtárba, például /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
Indítsa újra a rendszert mentési módba, majd válassza a grub parancsot a mentési párbeszédpanelen, akkor minden rendben lesz.
Szerintem ez a legmegfelelőbb módszer. Az ubuntu 14.04-et használom.
-o /boot/grub2/grub.cfg
kimeneti fájlként. Létezik-e még az/boot/grub/
könyvtár?