Linux Kernel Oops oder Kernel Panic analysieren

Aus Wiki Thomas-Krenn.AG
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

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

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

Kernel Panic erzeugen

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

Referenzen

  1. http://wiki.openvz.org/Hardware_testing
  2. 2,0 2,1 http://en.opensuse.org/Bugs/Kernel#A_Classification_of_Kernel_Bugs
  3. http://en.wikipedia.org/wiki/Linux_kernel_oops
  4. http://en.wikipedia.org/wiki/Kernel_panic
  5. How do I capture an Oops? (The linux-kernel mailing list FAQ)
  6. http://www.kernel.org/doc/Documentation/oops-tracing.txt
  7. http://en.opensuse.org/openSUSE:Bugreport_kernel#Using_the_serial_console
  8. http://www.vincentverhagen.nl/2008/08/07/capturing-linux-kernel-panic-info/
  9. http://www.kernel.org/doc/Documentation/kdump/kdump.txt
  10. http://en.opensuse.org/Kdump
  11. How do I configure kexec/kdump on Red Hat Enterprise Linux 5
  12. How do I use the diskdump utility to create a vmcore file
  13. How can I save the coredump (vmcore) onto the hard disk when I get a system OOPS or a kernel panic on Red Hat Enterprise Linux 3 or 4
  14. Self-Service Linux -Mastering the Art of Problem Determination (PDF), Mark Wilding and Dan Behman, Prentice Hall International 2005, ISBN 0-13-147751-X
  15. https://bugzilla.novell.com/bugreporting-faq/oops-reading.txt
  16. http://www.redhatmagazine.com/2007/08/15/a-quick-overview-of-linux-kernel-crash-dump-analysis/
  17. http://en.opensuse.org/Crashdump_Debugging
  18. Schöner abstürzen mit Kernel-Modul provoke_crash (Pro-Linux)
  19. A module for crashing the kernel (lwn.net)

Weitere Informationen


Share/Save/Bookmark  Feedback zu diesem Artikel geben
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Kategorien
Drucken/exportieren
Werkzeuge