it-swarm.com.de

Wie richte ich den richtigen Standardmenüeintrag richtig ein GRUB 2)?

Ich verwende GRUB 2.00 auf einem Gentoo Linux-System.

Ich kompiliere meine eigenen Kernel manuell und installiere sie dann in /boot Mit make install. Ich habe momentan die folgenden Kernel in /boot:

# 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

Das Ausführen von grub2-mkconfig Führt zu folgender Ausgabe:

# 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

Wenn ich jetzt die resultierende /boot/grub2/grub.cfg - Datei lese, stelle ich fest, dass die folgenden Einträge erstellt wurden:

  • Ein Haupteintrag, der vmlinuz-3.7.4-gentoo-third Startet.
  • Ein Untermenü mit allen anderen Einträgen (einschließlich der Wiederherstellungseinträge) in derselben Reihenfolge wie der Befehl grub2-mkconfig

Das Problem ist, dass ich beim Booten standardmäßig die fünfte Version meines Kernels (vmlinuz-3.7.4-gentoo-5) Laden möchte, nicht die dritte (vmlinuz-3.7.4-gentoo-third). Ich ziehe es auch vor, nicht auf das Untermenü zuzugreifen, um den richtigen Kernel zum Laden auszuwählen.

Wie kann ich dieses Verhalten ändern? Wie kann ich GRUB) mitteilen, dass ich standardmäßig die fünfte Revision meines Kernels und nicht die ältere dritte Revision ausführen möchte? Wie kann ich im Allgemeinen die Standardeintragszeile so ändern, dass sie mit dem Kernel I übereinstimmt? wollen und nicht eine scheinbar zufällige von GRUB ausgewählt?

Ich habe auch versucht, die folgenden Zeilen in /etc/default/grub Einfügen:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Dies behebt das Problem nicht so, wie ich es mir wünsche. Aber zumindest GRUB scheint sich an den neuesten Kernel zu erinnern, von dem ich gebootet habe, und wählt ihn automatisch aus dem Untermenü aus. Es ist nur so, dass ich nicht gerne auf das Untermenü zugreifen möchte.

27
Francesco Turco

Um einen Menüeintrag unter dem Untermenü "Erweiterte Optionen" auszuwählen, setzen Sie GRUB_DEFAULT = "1> 3". Sie können jetzt grub2-mkconfig ausführen, um die grub-Konfigurationsdatei zu generieren. Beim nächsten Neustart sollte vmlinuz-3.7.4-gentoo-5 booten.

Hinweis: Dadurch wird der Standardeintrag im Grub-Menü nicht geändert, d. H. Der Standardeintrag zeigt immer noch denselben Eintrag an, den Sie gerade haben. Das Image, das standardmäßig gestartet wird, ist jedoch das 4. Image unter "Erweiterte Optionen". Um vmlinuz-3.7.4-gentoo-5 als Standardeintrag im Grub-Menü festzulegen, sollte die Reihenfolge der Bilder so sein, dass vmlinuz-3.7.4-gentoo-5 das erste Image ist, wenn Sie grub2-mkconfig ausführen .

12
anaken78

Wenn Sie ein ntermenü in Ihrer grub.cfg haben, sollten Sie zwei Ziffern wie diese verwenden:

grub-reboot '1>3'

Der erste (- === -) ist der Menüindex, und der zweite zweite ist der Untermenüindex.

So starten Sie beispielsweise den letzten Eintrag aus der Konfiguration wie folgt:

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

du solltest benutzen:

grub-reboot '1>5'

und neu starten.

7
AstraSerg

sie können auch GRUB_DEFAULT=saved verwenden. In diesem Fall würden Sie verwenden

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

oder wenn es nur für den nächsten Start ist:

$ 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.
5
Matthias Hahn

Versuchen

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

Dadurch werden alle nicht verwendeten Kernel in ein Sicherungsverzeichnis verschoben:

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

Dies fügt nur Auswahl r5 zu Ihrem Menü. Lesen Sie anschließend diesen this -Link und wiederholen Sie alle Kernel im Sicherungsverzeichnis mit etwas anderem als vmlinuz, wenn Sie darauf bestehen, sie beizubehalten

2
eyoung100

Mit centos7 (oder RHEL7) und grub2:

grub verwendet standardmäßig den Eintrag 'saved_entry' von grubenv zum Booten, sniplet von /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

um zu überprüfen, was der 'saved_entry' ist, ist jetzt mein Build:

grub2-editenv list

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

um es beispielsweise in meinen Debug-Build zu ändern:

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

Was ich getan habe, um das gewünschte Ergebnis zu erzielen, war:

  • setze das GRUB_DEFAULT=saved wie im grub-set-default Hilfe

    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.

  • Stellen Sie den Standardwert ein

    grub-set-default "1>2"

    Es erstellt eine neue Datei in/boot/grub namens grubenv mit den erforderlichen Informationen.

  • Danach erstelle ich die Konfigurationsdatei neu

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

Und ich habe gesehen, dass die Konfiguration geändert wurde, um den gespeicherten Status zu verwenden:

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

1
Alex

Sie können die Standardauswahl anhand des numerischen Werts festlegen. Wenn Sie einstellen

`GRUB_DEFAULT=3` 

im /etc/default/grub
Sie setzen die Standardeinstellung auf den Gentoo-5-Eintrag.
GRUB_DEFAULT ist Nullpunktverschiebung, daher wählt 3 den vierten Eintrag nach Ihren Wünschen aus.

0
bsd

Ich vermute, dass grub2-mkconfig sortiert die Kernel in umgekehrter Reihenfolge, vorausgesetzt, sie enthalten hauptsächlich monoton ansteigende Versionsnummern. Wählen Sie also Ihre Tags aus, die dieser Konvention entsprechen.

0
cpugeniusmv

mv diese neuen/nicht verwendeten Versionsdateien in /boot in ein Sicherungsverzeichnis zum Beispiel /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

Starten Sie das System im Rettungsmodus neu und wählen Sie dann im Rettungsdialog die Option "Grub". Dann ist alles in Ordnung.

Es ist die am besten geeignete Methode, denke ich. Ich benutze Ubuntu 14.04.

0
johnvuong1999

in Ubuntu:

Sudo grub-pc

mit grub-pc können Sie auswählen, welches Menü Sie verwenden möchten.

Sudo update-grub

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

0
johnvuong1999