Kernels für Oracle Linux-Instanzen verwalten
Erfahren Sie, wie Sie Kernel-Bootparameter vor dem Booten und zur Laufzeit verwalten und wie Sie Kernel für Oracle Linux-Instanzen auf Oracle Cloud Infrastructure mit grubby
verwalten.
Siehe auch: Kernels und Systemstart verwalten.
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)
. Mit dem Grubby-Tool können Sie Informationen aus der Datei grub.cfg
lesen und dauerhafte Änderungen daran vornehmen. So können Sie beispielsweise GRUB2-Menüeinträge ändern, um anzugeben, welche Argumente beim Systemstart an einen Kernel übergeben werden sollen, und den Standard-Kernel ändern.
Installierte Kernels und Standard-Kernel auflisten
Mit dem Befehl grubby können Sie alle Kernel anzeigen, die auf einer Oracle Linux-Instanz installiert sind, sowie Konfigurationsinformationen zu den Kernel, welcher Kernel der Standard ist und welcher Kernel derzeit ausgeführt wird.
- Über eine Befehlszeile können Sie mit Administratorberechtigungen mit SSH eine Verbindung zur Instanz herstellen.
- 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" ...
In der Ausgabe von sudo grubby --info=ALL können Sie festlegen, was im GRUB-Menü beim Start angezeigt wird. Beispiel: Wenn Sie die Indexnummer und den Titel in der obigen Ausgabe verwenden, sieht das GRUB-Menü folgendermaßen 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
- Auf dieser Seite listen Sie auf, welcher Kernel bereits als aktueller Standardkernel konfiguriert ist, der beim Booten verwendet werden soll, sowie dessen Titel und Position im GRUB-Menü. Der Standardkernel kann je nach Oracle Linux-Version unterschiedlich sein.
- Standard-Kernel auflisten.
sudo grubby --default-kernel
/boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64
- Überprüfen Sie den Titel des Standard-Kernels.
sudo grubby --default-title
Die Ausgabe entspricht dem Wert im Menü GRUB2, der beim Starten von Oracle Linux 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 Standard-Kernels in der Kernel-Boot-Liste.
sudo grubby --default-index
0
- Standard-Kernel auflisten.
- 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 Standard-Kernel und der aktuell ausgeführte Kernel nicht identisch sind, kann einer der folgenden Gründe zugrunde liegen:
- Sie haben einen neueren Kernel installiert, aber das System nicht neu gestartet
- Bei einem Systemneustart haben Sie manuell einen alternativen Kernel als operativen Kernel ausgewählt
- Sie haben den Standard-Kernel manuell aktualisiert, aber das System nach dem Update nicht neu gestartet
Standardkernel ändern
Sie können eine von zwei Optionen befolgen, um den Standard-Kernel in GRUB 2 festzulegen. Verwenden Sie dazu den Befehl grubby und wählen Sie eine der folgenden Optionen:
- Über eine Befehlszeile können Sie mit Administratorberechtigungen mit SSH eine Verbindung zur Instanz herstellen.
- Standard-Kernel auflisten.
sudo grubby --default-kernel
/boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64
- Verwenden Sie den Befehl grubby --set-default, um den Standard-Kernel zu ändern. Stellen Sie sicher, dass Sie den vollständigen Pfad-Kernel angeben. Sie können den Kernel-Pfad mit einer der Optionen in Schritt 2 der Auflistung der installierten Kernels und des Standard-Kernels 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.
- Überprü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 Standard-Kernel mit dem Befehl grubby --set-default-index auf die erste Position in der Kernel-Boot-Liste.Das GRUB-Menü sieht jetzt 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 in 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 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 können Sie mit Administratorberechtigungen mit SSH eine Verbindung zur Instanz herstellen.
- Um alle Kernel-Einträge so zu aktualisieren, dass sie ein bestimmtes Kernel-Bootargument verwenden, verwenden Sie
grubby --update-kernel=ALL
. Ändern Sie beispielsweise das LANG-Argument:sudo grubby --update-kernel=ALL --args LANG=en_GB.UTF-8
- Prüfen Sie, ob die Änderungen wirksam 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.