GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Legen Sie den Standardkernel in GRUB fest

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

hinzu
GRUB_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.


Linux
  1. Wie ändere ich das Standardprogramm „Lesen“?

  2. Emacs -nw als Standard-Editor festlegen?

  3. Sed-Nutzung zum Aktualisieren der Grub-Datei?

  4. Wie stellt man Ruby 2.1.2 als Standard ein?

  5. Standard gespeicherte Arbeit mit GRUB2 machen ...?

So legen Sie eine Standardadresse in cPanel fest

So legen Sie Ihre Standardadresse in cPanel fest

Wie lege ich einen Standard-Nick für neue irssi-Verbindungen fest?

Wie lege ich beim Systemstart eine Standard-Desktop-Umgebung fest?

So richten Sie zwei Standardrouten unter Linux ein

So stellen Sie das Standard-Gateway ein