687792

Linux-Troubleshooting: Fehlermeldungen auslesen

11.10.2017 | 12:00 Uhr |

Nicht ohne Grund hat Linux den ausgezeichneten Ruf, ein robustes System zu sein. Auch gibt es im Falle von Problemen eine Reihe von Analysetools und Logs, die Auskunft über die Ursache von Abstürzen geben.

Auch unter Linux gibt es Probleme mit alternder oder defekter Hardware, die sich nicht gleich im Totalausfall des Rechners zeigen, sondern ganz subtil in spontanen Abstürzen. Nachinstallierte Kernel-Module, etwa proprietäre Grafik- oder Netzwerktreiber, können ebenfalls für Fehler verantwortlich sein. Wenn sich PC-Probleme häufen, ein reproduzierbarer Fehler auch durch geänderte Konfiguration am Betriebssystem einfach nicht zu beseitigen ist, so ist eine systematische Fehlersuche gefragt. Dabei helfen Standardtools – die meisten davon sind bereits vorinstalliert. Es handelt sich um systemnahe Arbeiten, die eine Exkursion in die Kommandozeile erfordern.

Kernel-Meldungen: Was bisher geschah

Eine der wichtigsten Log-Dateien ist das Kernel-Protokoll, das ein Linux-System ab dem Bootvorgang anlegt. Hier informiert der Kernel auch über erkannte Hardware, Laufwerke und Aktionen von Treibern. Stürzen Prozesse wegen fehlerhafter Treiber oder defekter Hardware ab, dann wird der Kernel dies in diesem Protokoll melden. In der Shell dient der handliche Befehl

dmesg -T  

dazu, alle Kernel-Meldungen mit Zeitstempel anzuzeigen. Neben allgemeinen Infos finden sich in der langen Liste auch Fehlermeldungen und Warnhinweise. Besser ist deshalb dieses Kommando:

dmesg -T -l err  

Es reduziert die Ausgabe auf Fehler und blendet dabei alle anderen Meldungen aus.

Tipp: Die Kernel-Entwicklung von Linux in Zahlen

Hardwarefehler: CPU und RAM

Speicherfehler in CPU und RAM können auch auf einem gesunden System auftreten und müssen nicht immer gleich zu Abstürzen führen. Moderne Prozessoren haben einen internen Mechanismus, über Checksummen korrumpierte Speicherbereiche zu erkennen, und lösen dann eine „Machine Check Exception“ aus, die sich protokollieren lässt. Dazu ist die Installation des Pakets mcelog nötig, das in allen verbreiteten Linux-Distributionen bereitsteht und in Debian/Ubuntu/Mint mit

sudo apt-get install mcelog 

installiert wird. Ab jetzt werden die MCE-Fehlermeldungen in der Datei /var/log/mcelog protokolliert. Auf Linux-Systemen mit Journald als Log- ging-Dienst (Debian, Ubuntu, Fedora, Open Suse und Arch Linux) überprüfen Sie mit dem Kommando

journalctl _SYSTEMD_UNIT=mcelog.service  

das mcelog. Treten dort Fehler nicht nur sporadisch, sondern regelmäßig auf, dann weist das auf defekte Hardware oder ein überhitztes System hin.

Temperaturen: Überhitztes Silizium

Fehler rund um Geräte, Treiber und Laufwerke zeigt der Befehl dmesg: In diesem Beispiel sorgt eine fehlerhafte USB-Schnittstelle für Abstürze von Dateimanagern.
Vergrößern Fehler rund um Geräte, Treiber und Laufwerke zeigt der Befehl dmesg: In diesem Beispiel sorgt eine fehlerhafte USB-Schnittstelle für Abstürze von Dateimanagern.

Gerade in Notebooks mit beengten Platzverhältnissen läuft die CPU aufgrund beengter Verhältnisse recht heiß. Wer rechenintensive Programme ausführt, sollte die Temperatur des Prozessors im Auge behalten, um bei Bedarf für bessere Kühlung zu sorgen. Denn ein überhitztes System wird fehleranfällig.

Unter Linux dient das Programm sensors dazu, die Temperaturfühler von Prozessor und Hauptplatine auszulesen. Zur Installation in Debian/ Ubuntu dient der Befehl

sudo apt-get install lm-sensors 

und in Fedora lautet der entsprechende Befehl

sudo dnf install lm_sensors  

(mit Unterstrich im Paketnamen) und bei Open Suse so:

sudo zypper install sensors 

Anschließend müssen die Temperatursensoren von CPU und Mainboard eingebunden werden. Dazu liefert lm_ sensors ein Installationsscript mit, das der Aufruf

sudo /usr/sbin/sensors-detect  

startet. Die Suche nach unterstützten Chips verlangt einige Bestätigungen mit „yes“. Das Installationsscript zeigt zum Abschluss die Liste gefundener Sensoren an und erstellt die Konfigurationsdatei automatisch. Zudem wird das benötigte Kernel-Modul i2c-dev auch gleich geladen. Die Eingabe von

sensors  

fragt anschließend die Temperaturfühler ab.

Für Desktop-Umgebungen gibt es zur Auswertung das Programm Psensor, das in den Standardpaketquellen der meisten Distributionen bereitliegt.

Linux und Windows parallel auf dem PC - so geht's

Logwatch: Log-Dateien im Blick

Systemtemperaturen im Blick: Auf dem Desktop zeigt Psensor die Temperaturen an. In der Kommandozeile gibt der Befehl sensors die Temperatur von CPU und Chipsatz aus.
Vergrößern Systemtemperaturen im Blick: Auf dem Desktop zeigt Psensor die Temperaturen an. In der Kommandozeile gibt der Befehl sensors die Temperatur von CPU und Chipsatz aus.

Wer sich die Übersicht über die Protokolle des Linux-Systems vereinfachen will, kann auf das Tool logwatch zurückgreifen. Logwatch erstellt einen verkürzten Bericht und schickt diesen per Mail in das lokale Postfach eines Benutzers auf dem System. Empfehlenswert ist die Einrichtung von Logwatch auf Linux-Systemen wie Servern, die wichtige Aufgaben erfüllen. Debian, Raspbian, Ubuntu, Cent-OS und Open Suse bieten alle das Paket „logwatch“ in ihren Paketquellen. In Debian, Ubuntu und deren Derivaten wird es mit

sudo apt-get install logwatch  

installiert. In seinen Standardeinstellungen trägt sich logwatch als täglicher Cron-Job unter /etc/cron.daily ein und legt seine Konfiguration unter /usr/ share/logwatch/default.conf/logwatch. conf ab. In dieser Konfigurationsdatei geben Sie mit der Zeile

„MailTo = root“  

an, welcher Benutzer auf dem System die Zusammenfassung bekommt. Hier ist root als Standard angegeben, aber man kann hier auch den eigenen Benutzernamen eintragen. Zur Kontrolle des lokalen Postfachs auf dem System dient das Mailprogramm Mutt in der Kommandozeile.

Symptome: Fehler richtig deuten

Der erste Schritt bei der Diagnose ist die Eingrenzung der Fehlerquelle auf Hardware oder Software. Folgende, typische Fehlerbilder auf einem Linux-System liefern wichtige Hinweise, wo das Problem sitzt.

Kernel Panic: Abstürze des Kernels selbst meldet dieser mit „Kernel Panic“ und einem Stack Trace - einer Übersicht von Speicheradressen im Textmodus. Danach wird das System angehalten, denn es handelt sich um einen kritischen Fehler. Ständige Kernel Panics sind typische Anzeichen für überhitzte Systeme, defektes RAM oder fehlerhafte CPUs. Das Tool Memtest86+ hilft mit einem Speichertest weiter, um Speicherproblemen auf die Spur zu kommen. Diese Tests sollte man ruhig ein paar Stunden durchführen, auf jeden Fall aber mehr als einen Durchlauf.

Segmentation Fault: Greift ein Programm auf Speicherbereiche zu, auf die es keinen Zugriff hat, so beendet der Kernel das Programm mit „Segmentation Fault“ (Schutzverletzung). Dahinter muss kein Hardwaredefekt stecken; ein Bug im Quellcode oder eine Panne beim Kompilieren sind häufiger. Es empfiehlt sich, zum Vergleich ein Livesystem auf dem Rechner zu starten. Treten auch hier Segmentation Faults auf, so ist ein Hardwarefehler wahrscheinlich.

Stille Programmabstürze: In der überwiegenden Zahl der Problemfälle auf dem Linux-Desktop beenden sich Programme still und leise, ohne Rückmeldung. Eine Fehlermeldung ist aber dann zu sehen, wenn das Programm über ein Terminal aufgerufen wird. Auch grafische Programme melden dann ihre Fehlermeldung zurück ans Terminal, was für die weitere Fehleranalyse unerlässlich ist.

0 Kommentare zu diesem Artikel

PC-WELT Marktplatz

687792