Dieses Dokument enthält Informationen zur Fehlerbehebung für eine VM, die aufgrund von Kernel Panic-Fehlern nicht mehr reagiert.
Hinweise
- Wenn Sie Cloud Logging zum Logging der Ausgabe des seriellen Ports verwenden möchten, machen Sie sich mit Cloud Logging vertraut.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
-
Kernel Panic
Ein Kernel Panic kann auftreten, wenn der Kernel nicht ordnungsgemäß initramfs
-Module laden kann, die für das Booten des Gastbetriebssystems erforderlich sind.
Eine weitere Form der Kernelpanik kann in einer Situation auftreten, in der der Kernel nicht weiß, wie er mit einer bestimmten Anfrage umgehen soll, und sich durch Anhalten schützt. Kernel Panic kann auf einer Compute Engine-VM unter RedHat, SUSE, CentOS oder Ubuntu auftreten.
Häufige Fehlermeldungen
Im Folgenden sind einige der häufigsten Kernel Panic-Ereignisse als Beispiel aufgeführt:
Kernel panic - not syncing: hung_task: blocked tasks
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Kernel panic - not syncing: NMI: Not continuing
Kernel panic - not syncing: out of memory. panic_on_oom is selected
Kernel panic - not syncing: Fatal Machine check
Allgemeine Ursachen
Der Kernel Panic-Fehler kann aus verschiedenen Gründen auftreten. Einige der häufigsten Gründe sind:
- Der Eintrag, der sich auf die
initramfs
-Datei bezieht, die dem Kernel entspricht, ist in dergrub.cfg
-Datei nicht vorhanden. - Die Datei
initramfs
wird während der Kernelinstallation nicht im Verzeichnis/boot
generiert. - Die Datei
initramfs
wird nur teilweise generiert oder ist beschädigt.
Symptome
Wenn bei einer VM-Instanz ein Kernel-Panik auftritt, können Sie häufig nicht über den Kernel eine Verbindung zur VM herstellen, auch nicht über die serielle Konsole.
Sie sollten die Logs der seriellen Konsole prüfen, um den vom Gastbetriebssystem geladenen Kernel zu ermitteln, z. B.:
[ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0-1160.95.1.el7.x86_64 (mockbuild@x86-vm-42.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Aug 10 10:46:21 EDT 2023
Das folgende Beispiel zeigt ein Kernel Panic-Ereignis aufgrund von initramfs
-Problemen:
[ 1.520840] No filesystem could mount root, tried: [ 1.520840] [ 1.521964] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) [ 1.523495] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.10.0-1160.95.1.el7.x86_64 #1 [ 1.524932] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 [ 1.526901] Call Trace: [ 1.527421] dump_stack+0x41/0x60 [ 1.527978] panic+0xe7/0x2ac [ 1.528578] mount_block_root+0x2be/0x2e6 [ 1.529693] ? do_early_param+0x95/0x95 [ 1.530441] prepare_namespace+0x135/0x16b [ 1.531237] kernel_init_freeable+0x203/0x22d [ 1.532081] ? rest_init+0xaa/0xaa [ 1.532808] kernel_init+0xa/0x103 [ 1.533395] ret_from_fork+0x35/0x40 [ 1.535229] Kernel Offset: 0x23a00000 from 0xffffffff81000000
Kernel-Panik-Fehler beheben
So beheben Sie den Kernel-Panikfehler:
Stellen Sie eine Verbindung zur seriellen Konsole her und melden Sie sich über die Google Cloud Console in der VM an.
Klicken Sie in der Google Cloud Console auf Zurücksetzen für die VM.
Wenn der GRUB-Ladebildschirm angezeigt wird, wählen Sie den zuvor funktionierenden Kernel oder Rettungs-Kernel aus und starten Sie dann das System. Dadurch wird die VM mit dem ausgewählten Kernel gestartet.
Wenn Sie auf die VM zugreifen können, können Sie eine SSH-Verbindung zur VM herstellen.
Ermitteln Sie die Ursache des Problems und ergreifen Sie entsprechende Maßnahmen.
Wenn beispielsweise die
initramfs
-Datei fehlt oder beschädigt ist, führen Sie die folgenden Schritte aus:Generieren Sie die
initramfs
-Datei für den ursprünglichen Kernel mit dem Befehldracut
:dracut -f /boot/initramfs-
KERNEL_VERSION .imgKERNEL_VERSION Ersetzen Sie
KERNEL_VERSION
durch die aktuelle Kernelversion der VM. Beispiel:3.10.0-1160.95.1.el7.x86_64
.Aktualisieren Sie die Datei
grub2.cfg
mit dem Befehlgrub2-mkconfig
, z. B. so:grub2-mkconfig -o /boot/grub2/grub.cfg
Nachdem die
initramfs
-Datei generiert wurde, können Sie die VM ohne Fehler neu starten.