Linux Kernel Oops oder Kernel Panic analysieren
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]:
- 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.
- 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]
- 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
- ↑ http://wiki.openvz.org/Hardware_testing
- ↑ 2,0 2,1 http://en.opensuse.org/Bugs/Kernel#A_Classification_of_Kernel_Bugs
- ↑ http://en.wikipedia.org/wiki/Linux_kernel_oops
- ↑ http://en.wikipedia.org/wiki/Kernel_panic
- ↑ How do I capture an Oops? (The linux-kernel mailing list FAQ)
- ↑ http://www.kernel.org/doc/Documentation/oops-tracing.txt
- ↑ http://en.opensuse.org/openSUSE:Bugreport_kernel#Using_the_serial_console
- ↑ http://www.vincentverhagen.nl/2008/08/07/capturing-linux-kernel-panic-info/
- ↑ http://www.kernel.org/doc/Documentation/kdump/kdump.txt
- ↑ http://en.opensuse.org/Kdump
- ↑ How do I configure kexec/kdump on Red Hat Enterprise Linux 5
- ↑ How do I use the diskdump utility to create a vmcore file
- ↑ 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
- ↑ Self-Service Linux -Mastering the Art of Problem Determination (PDF), Mark Wilding and Dan Behman, Prentice Hall International 2005, ISBN 0-13-147751-X
- ↑ http://www.redhatmagazine.com/2007/08/15/a-quick-overview-of-linux-kernel-crash-dump-analysis/
- ↑ http://en.opensuse.org/Crashdump_Debugging
- ↑ Schöner abstürzen mit Kernel-Modul provoke_crash (Pro-Linux)
- ↑ A module for crashing the kernel (lwn.net)
Weitere Informationen
- Linux Kernel Crash Book (dedoimedo.com)
- http://wiki.openvz.org/When_you_have_an_oops
- http://kerneloops.org/
- http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.66/2.5.66-mm3/broken-out/panic-on-oops.patch
- Kernel-Crash-Analyse unter Linux (prolinux.de)
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.
|