Linux Kernel Oops oder Kernel Panic analysieren

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Einstufung von Kernel Abstürzen

Zu Kernel Abstürzen kann es sowohl durch Software- als auch Hardware-Fehler kommen. Um die mögliche Ursache einzugrenzen, ist es nach Kernel Abstürzen empfehlenswert Hardware-Tests (z.B. RAM-Tests und CPU-Tests)[1] durchzuführen.

Kernel Abstürze werden unterteilt in:

  • Kernel Oops
  • Kernel Panic

Kernel Oops

Ein Kernel Oops ist eine unerwartete Fehlersituation im Linux Kernel. Ein Oops kann beispielsweise durch einen Rückverweis eines ungültigen Zeigers auftreten. Der Fehler wird durch einen sogenannten Exception Handler abgefangen, der aktuelle Prozess abgebrochen und eine Fehlermeldung per syslog in eine Logdatei geschrieben.[2][3]

Kernel Panic

Wenn ein Oops innerhalb eines Interrupt-Handler auftritt, versucht der Kernel noch die Oops Meldung auf der Konsole auszugeben. Danach wird das System angehalten, da es in diesem Fall keine Möglichkeit gibt das System wieder in einen stabilen Zustand zu bringen. Hier kann der Oops auch nicht mehr per syslog in eine Logdatei geschrieben werden (da kein Disk-Zugriff mehr möglich ist).[2][4]

Aufzeichnen eines Kernel Oops

Im Falle eines reinen Kernel Oops werden die Informationen per syslog in eine Logdatei - zumeist nach /var/log/messages - geschrieben und sind somit leicht zugänglich.

Bei einem Kernel Panic ist dies nicht mehr möglich, da für Festplatten- oder Netzwerkzugriffe Interrupts notwendig sind (die aber zu diesem Zeitpunkt nicht mehr funktionieren)[5]. In einem solchen Fall gibt es folgende Möglichkeiten[6]:

  1. Abschreiben der Meldungen von der Text-Konsole: dies ist zwar etwas umständlich, oft aber die einzige Möglichkeit wenn der Absturz ungeplant war. Alternativ kann die Meldung mit einer Digitalkamera oder - falls vorhanden - mit einem Screenshot eines Remote-Management-Interfaces (KVM-over-LAN Funktionalität) aufgezeichnet werden.
  2. Zusätzliches Umleiten der Konsole auf die serielle Schnittstelle: dadurch werden alle Meldungen nicht nur auf die lokale Konsole, sondern auch auf eine serielle Konsole ausgegeben. An die serielle Schnittstelle muss ein zweiter Rechner per Nullmodemkabel angeschlossen werden.[7][8]
  3. Verwenden von Kdump[9][10][11] (z.B. RHEL5) oder diskdump[12][13] (z.B. RHEL3, RHEL4).

Analyse eines Kernel Oops

  • Analyse einer Kernel Oops Meldung: detaillierte Informationen dazu sind im Kapitel 7.2.8 Examining an Oops Report von Self-Service Linux[14] zu finden.
  • Analyse eines Dumps: dazu kann das Utility crash verwendet werden - siehe dazu [15] und [16].

Kernel Panic erzeugen

Mit Hilfe des provoke_crash Kernel Moduls können Kernel Panics manuell ausgelöst werden.[17][18]

Referenzen

Weitere Informationen


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

DMI Hardwareinfos via sysfs auslesen
Wiederherstellung auf einen kleineren Zieldatenträger mit Clonezilla
Wlan Powermanagement unter Linux mit iw regeln