Kernels mit grubby verwalten
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 Kernel-Befehlszeilen-Bootparameter, die beim Booten verwendet werden sollen. Weitere Informationen finden Sie in der grubby(8)
-Manpage. Mit dem grubby-Tool können Sie Informationen aus der Datei grub.cfg
lesen und persistente Änderungen vornehmen. So können Sie beispielsweise die Menüeinträge GRUB2 ändern, um anzugeben, welche Argumente beim Systemstart an einen Kernel übergeben werden sollen, und den Standardkernel ändern.
Installierte Kernels und Standard-Kernel auflisten
Mit dem Befehl grubby können Sie alle auf einer Oracle Linux-Instanz installierten Kernel, Konfigurationsinformationen zu den Kernel, den Standardkernel und den aktuell ausgeführten Kernel anzeigen.
- Über eine Befehlszeile mit administrativen Berechtigungen melden Sie sich mit SSH bei der Instanz an.
- Listen Sie die installierten Kernel mit einer der folgenden Optionen auf. Die Liste der installierten Kernel kann je nach Oracle Linux-Version unterschiedlich sein.
- Listen Sie die installierten Kernel im Verzeichnis
/boot
auf.sudo ls -l /boot/vmlinuz*
-rwxr-xr-x. 1 root root 13701352 Feb 12 19:33 /boot/vmlinuz-0-rescue-7063910fe2979258f8fd66f2fb8b8567 -rwxr-xr-x. 1 root root 10889384 Feb 11 12:19 /boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64 -rwxr-xr-x. 1 root root 13701352 Jan 29 04:13 /boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64
- Listen Sie die Kernel mit
grubby
und der Befehlsoption--info=ALL
auf, um die Bootkonfiguration anzuzeigen, die mit jedem installierten Kernel verknüpft ist.sudo grubby --info=ALL
index=0 <<Each boot entry is assigned an index, which is a number that indicates its position in the GRUB menu kernel="/boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64" <<Full path to the kernel image args="ro crashkernel=auto LANG=en_US.UTF-8 console=tty0 console=ttyS0,115200 rd.luks=0 / <<Command-line arguments passed to the kernel when it boots rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.carrier=5 / netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi / rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 / nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 / loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10 crash_kexec_post_notifiers / fips=1 boot=UUID=5097b6ba-ed0e-418a-9c2c-fb25d577991f $tuned_params" root="/dev/mapper/ocivolume-root" <<Root partition device initrd="/boot/initramfs-5.15.0-305.176.4.el8uek.x86_64.img $tuned_initrd" <<Path to the initial RAM disk (initrd) image title="Oracle Linux Server (5.15.0-305.176.4.el8uek.x86_64 with Unbreakable Enterprise Kernel) 8.10" <<Title displayed in the GRUB menu at startup id="7063910fe2979258f8fd66f2fb8b8567-5.15.0-305.176.4.el8uek.x86_64" <<Unique identifier for the boot entry index=1 kernel="/boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64" ... title="Oracle Linux Server (4.18.0-553.40.1.el8_10.x86_64) 8.10" ... index=2 kernel="/boot/vmlinuz-0-rescue-7063910fe2979258f8fd66f2fb8b8567" ... title="Oracle Linux Server (0-rescue-7063910fe2979258f8fd66f2fb8b8567 with Unbreakable Enterprise Kernel) 8.10" ...
Aus der Ausgabe von sudo grubby --info=ALL können Sie bestimmen, was beim Start im GRUB-Menü angezeigt wird. Beispiel: Wenn Sie die Indexnummer und den Titel in der obigen Ausgabe verwenden, sieht das GRUB-Menü wie folgt aus:
Oracle Linux Server (5.15.0-305.176.4.el8uek.x86_64 with Unbreakable Enterprise Kernel) 8.10 Oracle Linux Server (4.18.0-553.40.1.el8_10.x86_64) 8.10 Oracle Linux Server (0-rescue-7063910fe2979258f8fd66f2fb8b8567 with Unbreakable Enterprise Kernel) 8.10
- Listen Sie die installierten Kernel im Verzeichnis
- Listen Sie den Kernel auf, der bereits als aktueller Standardkernel für den Bootvorgang konfiguriert ist, sowie den Titel und die Position, die im GRUB-Menü zu sehen sind. Der Standardkernel kann je nach Oracle Linux-Version unterschiedlich sein.
- Listen Sie den Standardkernel auf.
sudo grubby --default-kernel
/boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64
- Überprüfen Sie den Titel des Standardkernels.
sudo grubby --default-title
Die Ausgabe entspricht dem Wert, der beim Starten von Oracle Linux im Menü GRUB2 angezeigt wird.
Oracle Linux Server (5.15.0-305.176.4.el8uek.x86_64 with Unbreakable Enterprise Kernel) 8.10
- Suchen Sie die Position des Standardkernels in der Kernel-Boot-Liste.
sudo grubby --default-index
0
- Listen Sie den Standardkernel auf.
- Prüfen Sie, welcher Kernel derzeit auf der Instanz ausgeführt wird.
uname -r
5.15.0-305.176.4.el8uek.x86_64
Wenn der Standardkernel und der aktuell ausgeführte Kernel nicht identisch sind, kann einer der folgenden Gründe zugrunde liegen:
- Sie haben einen neueren Kernel installiert, das System jedoch nicht neu gestartet
- Während eines Systemneustarts haben Sie manuell einen alternativen Kernel als operativen Kernel ausgewählt
- Sie haben den Standardkernel manuell aktualisiert, aber das System nach dem Update nicht neu gestartet
Standard-Kernel ändern
Mit einer der beiden Optionen können Sie den Standardkernel in GRUB 2 festlegen. Wählen Sie dazu mit dem Befehl grubby eine der folgenden Optionen:
- Über eine Befehlszeile mit administrativen Berechtigungen melden Sie sich mit SSH bei der Instanz an.
- Listen Sie den Standardkernel auf.
sudo grubby --default-kernel
/boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64
- Verwenden Sie den Befehl grubby --set-default, um den Standardkernel zu ändern und sicherzustellen, dass der vollständige Pfadkernel angegeben wird. Sie können den Kernelpfad mit einer der Optionen in Schritt 2 des Auflistens installierter Kernels und Standard-Kernel abrufen.
sudo grubby --set-default /boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64
Die Änderung wird sofort wirksam und bleibt auch nach einem Systemneustart bestehen.
- Prüfen Sie die Standard-Kerneländerung.
sudo grubby --default-kernel
/boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64
- (Optional) Setzen Sie den Standardkernel mit dem Befehl grubby --set-default-index auf die erste Position in der Kernel-Bootliste.Das GRUB-Menü sieht nun wie folgt aus:
sudo grubby --set-default-index=0
Oracle Linux Server (4.18.0-553.40.1.el8_10.x86_64) 8.10 Oracle Linux Server (5.15.0-305.176.4.el8uek.x86_64 with Unbreakable Enterprise Kernel) 8.10 Oracle Linux Server (0-rescue-7063910fe2979258f8fd66f2fb8b8567 with Unbreakable Enterprise Kernel) 8.10
- Starten Sie die Instanz neu, um mit dem neuen Standardkernel zu booten.
Kernel-Boot-Parameter ändern
Sie können die GRUB 2-Bootkonfiguration für einen bestimmten Kernel oder für alle Kernel aktualisieren, die auf der Oracle Linux-Instanz installiert sind.
Verwenden Sie den Befehl grubby --update-kernel
, um neue Argumente hinzuzufügen, vorhandene Argumentwerte zu ändern oder Argumente für einen bestimmten Kernel oder alle Kernel zu entfernen. Für jede Option in einer durch Leerzeichen getrennten Liste in Anführungszeichen 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.
- Über eine Befehlszeile mit administrativen Berechtigungen melden Sie sich mit SSH bei der Instanz an.
- Um alle Kernel-Einträge auf die Verwendung eines bestimmten Kernel-Boot-Arguments zu aktualisieren, verwenden Sie
grubby --update-kernel=ALL
. Beispiel: Ändern Sie das LANG-Argument:sudo grubby --update-kernel=ALL --args LANG=en_GB.UTF-8
- Prüfen, ob die Änderungen übernommen wurden
sudo grubby --info=ALL
index=0 kernel="/boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64" args="ro crashkernel=auto console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.carrier=5 netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10 crash_kexec_post_notifiers fips=1 boot=UUID=5097b6ba-ed0e-418a-9c2c-fb25d577991f LANG=en_GB.UTF-8 $tuned_params" ... index=1 kernel="/boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64" args="ro crashkernel=auto console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.carrier=5 netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10 crash_kexec_post_notifiers fips=1 boot=UUID=5097b6ba-ed0e-418a-9c2c-fb25d577991f LANG=en_GB.UTF-8 $tuned_params" ... index=2 kernel="/boot/vmlinuz-0-rescue-7063910fe2979258f8fd66f2fb8b8567" args="ro crashkernel=auto console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.carrier=5 netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10 crash_kexec_post_notifiers fips=1 boot=UUID=5097b6ba-ed0e-418a-9c2c-fb25d577991f LANG=en_GB.UTF-8 $tuned_params" ...
- Starten Sie die Instanz neu, um mit der neuen Kernel-Konfiguration zu booten.