Execut GRUB 2.00 pe un sistem Gentoo Linux.

Îmi compilez propriile nuclee manual și apoi le instalez în /boot cu make install. Am următoarele nuclee în /boot în acest moment:

# 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 

Rularea grub2-mkconfig are ca rezultat următoarea ieșire:

# 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 

Dacă citesc acum fișierul /boot/grub2/grub.cfg rezultat, observ că au fost create următoarele intrări:

  • O intrare principală implicită care începe vmlinuz-3.7.4-gentoo-third
  • Un submeniu cu toate celelalte intrări (inclusiv cele de recuperare), în aceeași ordine cu grub2-mkconfig

Problema este că, la momentul pornirii, aș dori să încarc în mod implicit cea de-a cincea revizuire a nucleului meu (vmlinuz-3.7.4-gentoo-5), nu al treilea (vmlinuz-3.7.4-gentoo-third). De asemenea, prefer să nu accesez submeniul pentru alegerea nucleului potrivit pentru încărcare.

Cum pot schimba acest comportament? Cum pot spune GRUB că vreau să rulez în mod implicit a cincea revizie a nucleului meu și nu cea de-a treia revizie mai veche? În general, cum pot schimba linia de intrare implicită pentru a se potrivi cu nucleul dorit și nu unul aparent aleatoriu ales de GRUB?

De asemenea, am încercat să introduc următoarele linii în /etc/default/grub:

GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true 

Acest lucru nu rezolvă problema așa cum îmi doresc. Dar cel puțin GRUB pare să-și amintească ultimul kernel din care am pornit și îl selectează automat din submeniu. Este doar că nu-mi place să accesez submeniul.

Comentarii

  • Am observat că ai specificat -o /boot/grub2/grub.cfg ca fișier de ieșire. Directorul /boot/grub/ există în continuare?

Răspuns

Pentru a selecta o intrare în meniu sub submeniul „Opțiuni avansate” setați GRUB_DEFAULT = „1> 3”. Acum puteți rula grub2-mkconfig pentru a genera fișierul de configurare grub . La următoarea repornire vmlinuz-3.7.4-gentoo-5 ar trebui să pornească.

Notă : Acest lucru nu va schimba intrarea implicită în meniul grub, adică intrarea implicită va indica în continuare aceeași intrare pe care o aveți chiar acum. Dar imaginea care va fi pornită în mod implicit va fi a 4-a imagine din „Opțiuni avansate”. Pentru a face vmlinuz-3.7.4-gentoo-5 ca intrare implicită în meniul grub, ordonarea imaginilor trebuie să fie astfel încât vmlinuz-3.7.4-gentoo-5 să fie prima imagine când rulați grub2-mkconfig .

Comentarii

  • Rețineți că ghilimelele sunt importante. Adică GRUB_DEFAULT = 1 > 3 a câștigat ‘ t lucru.

Răspuns

Dacă aveți un submeniu în grub.cfg, ar trebui să utilizați două cifre de genul acesta:

grub-reboot "1>3" 

primul este indexul meniului, iar al doilea este indexul submeniului .

De exemplu, pentru a porni ultima intrare din config astfel:

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

ar trebui să utilizați:

grub-reboot "1>5" 

și reporniți.

Comentarii

  • Ciudat. indexul submeniului începe cu 0, în timp ce meniul principal din 1

Răspuns

puteți utiliza și GRUB_DEFAULT=saved. În acest caz, ați folosi

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

sau dacă este „numai pentru următoarea pornire:

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

Răspuns

Cu centos7 (sau RHEL7) și grub2:

grub folosește intrarea „saved_entry” din grubenv ca implicit pentru a porni, fragmentul din /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 

pentru a verifica ceea ce este „saved_entry” este acum versiunea mea:

grub2-editenv list 

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

pentru a-l schimba, de exemplu, la versiunea mea de depanare:

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

Răspuns

Încercați

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

Aceasta mută toate nucleele neutilizate într-un director de rezervă, acum:

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

Aceasta adaugă doar opțiunea r5 la meniul dvs. După ce faceți acest lucru, citiți acest link acest și apoi repetați toate nucleele din directorul de rezervă altceva decât vmlinuz dacă insistați să le păstrați

Răspuns

Ceea ce am făcut pentru a obține rezultatul dorit a fost:

  • setați GRUB_DEFAULT=saved așa cum este subliniat în grub-set-default ajutor

    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.

  • Setați valoarea implicită

    grub-set-default "1>2"

    Se creează un fișier nou în / boot / grub numit grubenv cu informațiile necesare.

  • După el recreez fișierul de configurare

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

Și am văzut că config a fost modificată pentru a utiliza starea salvată:

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

Răspuns

Puteți seta alegerea implicită după valoarea numerică. Dacă setați

`GRUB_DEFAULT=3` 

în /etc/default/grub
Veți seta valoarea implicită la intrarea gentoo-5.
GRUB_DEFAULT este zero, astfel încât 3 vor selecta a patra intrare după cum doriți.

Comentarii

  • Nu ‘ nu știu de ce, dar se pare că nu ‘ funcționează. Am setat GRUB_DEFAULT=3 așa cum ați spus, apoi rulați din nou grub2-mkconfig. Dar la momentul pornirii, intrarea implicită este încă vmlinuz-3.7.4-gentoo-third.
  • Încercați să comentați GRUB_SAVEDEFAULT=true Nu ar trebui să ‘ nu contează, dar ‘ nu este necesar cu nume rical.
  • Nu am ‘ opțiunea respectivă în fișierul /etc/default/grub.

Răspuns

Bănuiesc că grub2-mkconfig sortează nucleele în ordine inversă, presupunând că acestea sunt în principal conțin numere de versiune în creștere monotonă. Deci, începeți să alegeți etichetele pentru a se potrivi convenției respective.

Răspundeți

în ubuntu:

sudo grub-pc 

grub-pc vă va permite să alegeți ce meniu.

sudo update-grub 

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

Răspuns

mv acele fișiere de versiune noi / neutilizate din /boot într-un director de rezervă, de exemplu /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 

Reporniți sistemul în modul de salvare, apoi alegeți grub în dialogul de salvare, apoi totul va fi în regulă.

Cred că este cea mai potrivită metodă. Folosesc Ubuntu 14.04.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *