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

  • Észrevettem, hogy megadtad -o /boot/grub2/grub.cfg kimeneti fájlként. Létezik-e még az /boot/grub/ könyvtár?

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 a grub2-mkconfig. De a rendszerindításkor az alapértelmezett bejegyzés továbbra is vmlinuz-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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük