Ich führe GRUB 2.00 auf einem Gentoo Linux-System aus.
Ich kompiliere meine eigenen Kernel manuell und installiere sie dann /boot
mit make install
. Ich habe im /boot
Moment die folgenden Kerne :
# 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
Laufende grub2-mkconfig
Ergebnisse in der folgenden 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 Hauptstandardeintrag, der beginnt
vmlinuz-3.7.4-gentoo-third
- Ein Untermenü mit allen anderen Einträgen (einschließlich der Einträge für die Wiederherstellung) in derselben Reihenfolge wie der
grub2-mkconfig
Befehl
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 bevorzuge es auch, 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 die fünfte Version meines Kernels standardmäßig ausführen möchte und nicht die ältere dritte Version? Wie kann ich die Standardeingabezeile ändern, um sie an den gewünschten Kernel anzupassen und nicht an einen scheinbar zufälligen Kernel, der von GRUB ausgewählt wurde?
Ich habe auch versucht, die folgenden Zeilen einzufügen /etc/default/grub
:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
Dies behebt das Problem nicht so, wie ich es mir wünsche. Aber zumindest scheint sich GRUB an den neuesten Kernel zu erinnern, von dem ich gebootet habe, und wählt ihn automatisch aus dem Untermenü aus. Ich möchte nur nicht auf das Untermenü zugreifen.
-o /boot/grub2/grub.cfg
als Ausgabedatei angegeben haben . Existiert das Verzeichnis/boot/grub/
noch?Antworten:
Um einen Menüeintrag im 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 : Der Standardeintrag im Menü "Grub" wird dadurch nicht geändert, dh der Standardeintrag zeigt weiterhin denselben Eintrag an, den Sie gerade haben. Das Image, das standardmäßig gebootet wird, ist jedoch das 4. Image unter den "Erweiterten 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 Bild ist, wenn Sie grub2-mkconfig ausführen .
quelle
Wenn Sie ein Untermenü in Ihrer grub.cfg haben, sollten Sie zwei Ziffern verwenden:
Das erste ist der Menüindex und das zweite ist der Untermenüindex.
So booten Sie beispielsweise den letzten Eintrag aus der Konfiguration:
du solltest benutzen:
und neu starten.
quelle
Sie können auch verwenden
GRUB_DEFAULT=saved
. In diesem Fall würden Sie verwendenoder wenn es nur für den nächsten boot ist:
quelle
Versuchen
Dadurch werden alle nicht verwendeten Kernel in ein Sicherungsverzeichnis verschoben:
Dies erhöht nur die Auswahl
r5
Ihrem Menü . So, lesen Sie diese Nachdem ich diese Verbindung und dann reame alle die Kerne im Backup - Verzeichnis etwas anderes als vmlinuz wenn Sie halten sie darauf bestehen ,quelle
Mit centos7 (oder RHEL7) und grub2:
grub verwendet standardmäßig den 'saved_entry'-Eintrag von grubenv zum Booten, sniplet von /boot/grub2/grub.cfg:
Um zu überprüfen, was der "Saved_entry" ist, ist jetzt mein Build:
um es zB in mein Debugbuild zu ändern:
quelle
Was ich getan habe, um das gewünschte Ergebnis zu erzielen, war:
Stellen Sie das
GRUB_DEFAULT=saved
wie in dergrub-set-default
Hilfe beschrieben eingrub-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 Zustand 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
quelle
Sie können die Standardauswahl durch einen numerischen Wert festlegen. Wenn Sie festlegen
in
/etc/default/grub
Sie setzen den Standard auf den gentoo-5 Eintrag.
GRUB_DEFAULT
Ist der Offset Null, wählt 3 den vierten Eintrag wie gewünscht aus.quelle
GRUB_DEFAULT=3
wie du sagtest, dann wieder laufengrub2-mkconfig
. Aber beim Booten ist der Standardeintrag immer nochvmlinuz-3.7.4-gentoo-third
.GRUB_SAVEDEFAULT=true
Es sollte keine Rolle spielen, aber es wird nicht mit numerischen Zeichen benötigt./etc/default/grub
Datei.Ich vermute, dass
grub2-mkconfig
die Kernel in umgekehrter Reihenfolge sortiert werden, vorausgesetzt, dass sie hauptsächlich monoton ansteigende Versionsnummern enthalten. Suchen Sie sich also die Tags aus, die dieser Konvention entsprechen.quelle
mv diese neuen / nicht verwendeten Versionsdateien in / boot in ein Sicherungsverzeichnis wie 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 grub aus. Dann ist alles in Ordnung.
Ich denke, es ist die am besten geeignete Methode. Ich benutze Ubuntu 14.04.
quelle
in Ubuntu:
Mit grub-pc können Sie auswählen, welches Menü verwendet werden soll.
Siehe: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu
quelle