Nachdem ich 2 Stunden gekämpft habe, habe ich einen viel einfacheren Weg gefunden, dies zu erreichen. Ich habe nur RTFM.;)
Fügen Sie zwei Zeilen zu /etc/default/grub
hinzuGRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
Machen Sie sudo update-grub
, starten Sie neu, rufen Sie Ihr Grub-Menü auf und wählen Sie den gewünschten Menü- oder Untermenüpunkt aus. Die Auswahl wird jedes Mal gespeichert und Ihr Computer wird automatisch gestartet. Wenn Sie manuell einen anderen Eintrag auswählen, wird dieser zum neuen Standard.
Ich denke, die meisten Distributionen haben an dieser Stelle zusätzliche Kernel in das Untermenü für erweiterte Optionen verschoben, wie TomTom festgestellt hat, dass dies bei hisArch der Fall war.
Ich wollte meine Menüstruktur der obersten Ebene nicht ändern, um einen früheren Kernel als Standard auszuwählen. Die Antwort habe ich hier gefunden:
http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html
Zusammenfassend:
1) Finden Sie die $menuentry_id_option
für das Untermenü:
$ grep submenu /boot/grub/grub.cfg
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
2) Finden Sie $menuentry_id_option
für den Menüeintrag für den zu verwendenden Kernel:
$ grep gnulinux /boot/grub/grub.cfg
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
3) Kommentieren Sie Ihr aktuelles Standard-Grub in /etc/default/grub
aus und ersetzen Sie es durch $menuentry_id_option
des Untermenüs aus Schritt eins und $menuentry_id_option
des ausgewählten Kernels ab Schritt zwei durch >
getrennt .
In meinem Fall die modifizierte GRUB_DEFAULT
ist:
#GRUB_DEFAULT=0
GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"
4) Aktualisieren Sie grub, um die Änderungen vorzunehmen. Für Debian geschieht dies wie folgt:
$ sudo update-grub
Fertig. Wenn Sie jetzt booten, sollte das erweiterte Menü ein Sternchen haben und Sie sollten in den ausgewählten Kernel booten. Dies können Sie mit uname
bestätigen .
$ uname -a
Linux NAME 4.18.0-0.bpo.1-amd64 #1 SMP Debian 4.18.0-0 (2018-09-13) x86_64 GNU/Linux
Das Zurücksetzen auf den neuesten Kernel ist so einfach wie das Auskommentieren der neuen Zeile und das Auskommentieren von #GRUB_DEFAULT=0
:
GRUB_DEFAULT=0
#GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"
dann erneutes Ausführen von update-grub
.
Wie in den Kommentaren erwähnt, können Sie den Standardkernel so einstellen, dass er mit grub-set-default X
gebootet wird Befehl, wobei X die Nummer des Kernels ist, in den Sie booten möchten. In einigen Distributionen können Sie diese Nummer auch durch Bearbeiten des /etc/default/grub
festlegen Datei und Einstellung GRUB_DEFAULT=X
, und führen Sie dann update-grub
aus .
Die Nummer ist der Index zu einem Array von Kerneln/Kernel-Einstellungen, die im GRUB-Menü während des Bootens angezeigt werden, wobei 0 der erste (oberste) Eintrag ist. Normalerweise finden Sie die richtige Nummer, indem Sie nach menuentry
suchen Zeilen in /boot/grub/grub.cfg
, etwa so:
grep menuentry /boot/grub/grub.cfg
Sie sehen jeden Kernel mit dem Namen aufgelistet, der im GRUB-Startmenü angezeigt wird. Der erste ist 0, der zweite ist 1 und so weiter.