Verwenden von grubby zum Verwalten von Kerneln

Verwenden Sie den Befehl grubby, um die GRUB 2-Konfiguration im System zu verwalten, einschließlich der Auswahl des Standard-Boot-Kernels oder der Konfiguration zusätzlicher Boot-Parameter in der Kernel-Befehlszeile, die beim Booten verwendet werden sollen.

Weitere Informationen finden Sie im Handbuch grubby(8).

Prüfen der verfügbaren Kernels im System

Kernels sind so benannt, dass sie die Upstream-Versionsnummer, den Distribution Build und die Kernel-Familie enthalten.

Weitere Informationen finden Sie unter Info zu Linux-Kerneln.

Zur Überprüfung, welche Kernel auf einem System verfügbar sind, stehen mehrere Methoden zur Verfügung:

  1. Listen Sie die Kernel im Verzeichnis /boot auf.
    ls -1 /boot/vmlinuz*

    Der Befehl erstellt eine genaue Liste der Kernel, die auf dem System verfügbar sind.

  2. Verwenden Sie den Befehl grubby für bestimmte Kernel oder die Option ALL.
    sudo grubby --info /boot/vmlinuz-kernel-version.kernel_suffix*
    sudo grubby --info ALL

    Der Befehl enthält ausführlichere Informationen zur Boot-Konfiguration, die mit jedem Kernel im Verzeichnis /boot des Systems verknüpft ist. Die Details basieren auf der GRUB-Titelkonfiguration.

Standard-Kernel mit dem laufenden Kernel vergleichen

Der laufende Kernel und der Kernel, der als Standardkernel konfiguriert ist, in den GRUB 2 nach einem Timeoutzeitraum für das Bootmenü bootet, können unterschiedlich sein.

Wenn die Standard-Kernelversion und die ausgeführte Kernelversion nicht identisch sind, kann einer der folgenden Gründe zugrunde liegen:

  • Ein neuerer Kernel ist installiert, das System wurde jedoch nicht neu gestartet.

  • Bei einem Systemneustart wurde manuell ein anderer Kernel als operativer Kernel ausgewählt.

  • Der Standard-Kernel wurde manuell aktualisiert, aber das System wurde nach dem Update nicht neu gestartet.

So vergleichen Sie den konfigurierten Standardkernel mit dem laufenden Kernel:
  1. Prüfen Sie den in GRUB 2 konfigurierten Standard-Kernel.

    Um zu prüfen, welcher Kernel bereits als aktueller Standardkernel konfiguriert ist, der beim Booten verwendet werden soll, führen Sie folgenden Befehl aus:

    sudo grubby --default-kernel
  2. Prüfen Sie die aktive Kernelversion.

    Um zu prüfen, welcher Kernel auf einem System ausgeführt wird, führen Sie folgenden Befehl aus:

    uname -r

Standard-Kernel ändern

Verwenden Sie grubby, um den Standard-Kernel festzulegen, in den GRUB2 bootet, nachdem ein Timeout-Zeitraum erreicht ist, wenn das GRUB2-Bootmenü angezeigt wird.

Sie können den Standard-Kernel von RHCK zu UEK, von UEK zu RHCK oder zu einer bestimmten Kernel-Version wechseln.

Mit dem Befehl grubby können Sie einen der folgenden Schritte ausführen, um den Standard-Kernel in GRUB 2 festzulegen:

  1. Verwenden Sie den Befehl grubby --set-default, um den Standardkernel festzulegen.

    Um zu einem anderen Standard-Kernel zu wechseln, führen Sie den folgenden Befehl aus, um sicherzustellen, dass der vollständige Pfad zum ausgewählten Standard-Kernel angegeben wird:

    sudo grubby --set-default /boot/vmlinuz-kernel-version.kernel-suffix.arch

    Ersetzen Sie kernel-version und kernel_suffix durch die Werte, die mit dem Zielkernel übereinstimmen. Beispiel:

    sudo grubby --set-default /boot/vmlinuz-6.12.0-100.28.2.el10uek.x86_64

    Die Änderung wird sofort wirksam und bleibt auch nach einem Systemneustart bestehen.

  2. Verwenden Sie den Befehl grubby --set-default-index, um den Standard-Kernel so einzustellen, dass er mit dem Kernel an einem bestimmten Indexpunkt in der Kernel-Boot-Liste übereinstimmt. Die Indexwerte werden angezeigt, wenn Sie den Befehl grubby --info ausführen

    Beispiel: Mit der Option --set-default-index=0 können Sie den Standard-Kernel auf den ersten Kernel setzen, der im Kernel-Bootindex aufgeführt ist, indem Sie Folgendes ausführen:

    sudo grubby --set-default-index=0

Zum letzten verfügbaren RHCK- oder UEK-Kernel wechseln

Indem Sie die Benennungskonvention verwenden, um UEK-Kernel und RHCK-Kernel zu identifizieren, die im Verzeichnis /boot verfügbar sind, können Sie den Standard-Kernel einfach so umschalten, dass die neueste Version eines Kernel-Typs verwendet wird.

  • Um zur neuesten Version von UEK auf dem System zu wechseln, führen Sie folgenden Befehl aus:
    sudo grubby --set-default $(ls /boot/vmlinuz-* | grep 'uek' | sort -V | tail -1)
  • Um zur neuesten Version von RHCK auf dem System zu wechseln, führen Sie folgenden Befehl aus:
    sudo grubby --set-default $(ls /boot/vmlinuz-* | grep -v 'uek' | sort -V | tail -1)

Starten Sie das System neu, nachdem Sie den Standard-Kernel festgelegt haben, um zu diesem Kernel-Typ zu wechseln.

Ändern der Kernel-Befehlszeilen-Boot-Parameter

Manchmal müssen Sie die GRUB 2-Konfiguration bearbeiten, um bestimmte Kernel-Boot-Parameter in der Kernel-Befehlszeile anzugeben. Wenn Parameter in der GRUB 2-Konfiguration festgelegt werden, werden die Parameter bei jedem Bootvorgang für die betroffenen Kernel verwendet.

Sie können die GRUB 2-Boot-Konfiguration für einen bestimmten Kernel oder für alle Kernel aktualisieren, die auf dem System installiert sind. Gehen Sie dazu wie folgt vor:

  1. Verwenden Sie den Befehl grubby --update-kernel, um einen Kernel-Eintrag mit --args zu aktualisieren, um neue Argumente hinzuzufügen oder vorhandene Argumentwerte zu ändern, oder mit --remove-args, um vorhandene Argumente zu entfernen.

    Für jede Option in einer durch Leerzeichen getrennten Liste können mehrere Argumente angegeben werden. Sie können Argumente in demselben Vorgang hinzufügen und entfernen. Wenn Sie die Option --args verwenden und bereits ein Argument vorhanden ist, ersetzt der neue Wert die alten Werte.

    Um einen bestimmten Kernel zu aktualisieren, führen Sie den Befehl grubby --update-kernel mit dem vollständigen Pfad zu dem Kernel aus, den Sie aktualisieren möchten. Um alle Kernel-Einträge so zu aktualisieren, dass sie ein bestimmtes Kernel-Bootargument verwenden, können Sie grubby --update-kernel=ALL verwenden.

    Beispiel: Sie können alle Kernel-Einträge aktualisieren, um die Argumente loglevel und LANG zu ändern:

    sudo grubby --update-kernel=ALL --args "loglevel=3,LANG=en_GB.UTF-8"

    Weitere Informationen zu Kernel-Parametern finden Sie in der Kernel Boot Parameter Reference.

  2. Prüfen Sie, ob die Änderungen wirksam wurden und ob die Befehlszeilenargumente für den aktualisierten Kernel korrekt sind.

    Beispiel: Wenn Sie eine Änderung an allen Kernel vorgenommen haben, verwenden Sie den Befehl grubby --info ALL, um zu prüfen, ob die Änderung über alle Kernel implementiert ist:

    sudo grubby --info ALL

Prüfen der zuletzt zum Booten des Systems verwendeten Kernel-Befehlszeile

Die Kernel-Bootparameter, die zuletzt zum Booten eines Systems verwendet wurden, werden in /proc/cmdline aufgezeichnet.

Weitere Informationen finden Sie im Handbuch kernel-command-line(7).

Prüfen Sie den Inhalt von /proc/cmdline, um die Kernel-Befehlszeile anzuzeigen, die zum Booten des laufenden Systems verwendet wurde.
cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.15.0-208.159.3.2.el9uek.x86_64 
root=UUID=72dfa724-5feb-49e2-8869-40625bfebb01 ro 
resume=UUID=13078314-ebff-4c44-b18c-3445f6802198 
rd.luks.uuid=luks-a80f8f10-75b6-45de-b63e-64b8b6a3a94b 
rhgb quiet crashkernel=1G-64G:448M,64G-:512M