claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 07/2004   »   Ausgabe bestellen

Probleme lösen unter Linux

Den Fehlerteufel austreiben

von Elisabeth Bauer und Andrea Müller


Ein neues Programm startet nicht oder stürzt gar ab, wenn Sie ein Dokument speichern wollen, Sie erhalten immer wieder eine seltsame Fehlermeldung -- da stimmt doch was nicht. Diesen Monat öffnen wir die Linux-Ambulanz und verraten, wie Sie Probleme ertkennen und lösen.

Bevor Sie viel Zeit an Diagnose und Experimente verschwenden, sollten Sie abschätzen, ob Ihr Problem überhaupt von Ihnen selbst lösbar ist. Als Faustregel gilt: Konfigurationsprobleme lassen sich beheben, aber bei einem echten Bug, d. h. einem Programmierfehler, ist für den Anwender Hopfen und Malz verloren -- da hilft höchstens ein Workaround, mit dem Sie den Bug umgehen, und Warten auf die nächste Version, in der der Bug hoffentlich gefixt ist.

Bug oder Konfigurationsproblem

Stürzt etwa ein Programm beim Aufruf einer bestimmten Funktion reproduzierbar ab, liegt das mit hoher Wahrscheinlichkeit an einem Programmierfehler. Stürzt es dagegen nur auf Ihrem Rechner ab, während andere Leute rund um die Welt fröhlich die Funktion benutzen, haben Sie eine gute Chance, das Problem selbst zu beheben.

Es lohnt sich also immer eine Internet-Recherche. Viele Open-Source-Projekte haben Benutzer-Mailinglisten, kleinere nur auf Englisch, größere manchmal auch auf Deutsch. Alle Beiträge finden Sie üblicherweise im Archiv der Liste, das Sie durchsuchen können. Die Mailing-Listen des KDE-Projekts finden Sie beispielsweise unter [1], die des GNOME-Desktops unter [2]. Das sollte die erste Anlaufstelle für Ihre Recherche sein. Berichten andere Benutzer von ähnlichen Problemen? Hat vielleicht schon jemand eine Lösung gefunden? Haben die Entwickler den Fehler in einer neueren Version behoben? Wenn auf der Website des Programms schon der Quellcode einer neueren Version zum Download bereitsteht, liegt meist auch ein Text mit den Änderungen und behobenen Fehlern bei, üblicherweise unter dem Namen Changelog.

Die meisten Projekte haben auch eine Bug-Datenbank, zum Beispiel KDE unter [3]. Dort finden Sie zu bekannten Bugs eine Beschreibung und oft auch Anmerkungen, wann und ob eine Lösung des Problems in Sicht ist.

Ähnlich sieht es mit der Hardware aus: Vergewissern Sie sich zuerst, ob das Gerät überhaupt mit Linux zusammenarbeitet. Der Produktname, zusammen mit dem Wort "Linux" in die Suchmaschine Ihrer Wahl eingegeben, liefert hier gute Hinweise. Mit dem Namen und der Versionsnummer Ihrer Distribution verfeinern Sie die Suchanfrage im zweiten Durchlauf. Für viele Gerätetypen gibt es spezielle Datenbanken, in denen Sie recherchieren können. Erst wenn Sie sicher sind, dass Ihre Hardware mit Ihrer Linux-Distribution laufen sollte, lohnt sich die Fehlersuche.

Schreib mal wieder

Schaut alles nach einem Konfigurationsproblem aus, geht es vom Internet wieder an den heimischen PC zur genaueren Diagnose. Wenn eine Anwendung nicht so funktioniert wie erwartet, erhält man die wichtigsten Informationen zur Fehlersuche meistens vom Programm selbst. Der Trick besteht darin, die bockige Applikation aus einem Kommandozeilenfenster wie der KDE-Konsole zu starten. Programme unter Linux sind meistens sehr geschwätzig -- von der Befehlszeile aufgerufen, schreiben sie allerlei Informationen in das Befehlsfenster. Dazu müssen Sie jedoch erst einmal wissen, wie die Programmdatei eigentlich heißt.

Die Menüeinträge haben mit dem Namen der Anwendung meistens nichts zu tun; da ist Linux wie Windows. Das richtige Kommando finden Sie im Editor für das Startmenü. Sie rufen ihn über den Kontextmenüeintrag Menü-Editor des KDE-Start-Buttons (ein roter Hut unter Red Hat Linux, ein Chamäleon unter SuSE Linux und bei Mandrake Linux ein K) auf. Navigieren Sie dort in der linksbündigen Baumansicht bis zu dem Programm, das Ärger macht, und markieren Sie es. In der rechten Fensterhälfte hinter Befehl steht das Kommando, das das System ausführt, sobald Sie den entsprechenden Menüpunkt anklicken (Abbildung 1).

Abb. 1: Der Menüeintrag für das Scan-Programm "xsane".

Ganz am Anfang steht immer der Programmaufruf. Folgen dahinter noch Optionen, handelt es sich um zusätzliche Parameter, die der Distributor eingetragen hat. Er gibt dort eventuell ein Icon an, das ein Programm in seiner Fensterecke einblenden soll, oder eine Option, die das Verhalten der Anwendung beeinflusst.

Tippen Sie einfach den ersten Teil des Menüeintrages (bis zur ersten Leerstelle) in ein Kommandozeilenfenster ein und drücken Sie [Enter]. Läuft beim Start aus dem Terminal heraus alles glatt, ist offenbar nur die Befehlszeile im Menüeintrag fehlerhaft. Ersetzen Sie sie in diesem Fall einfach durch den von Ihnen eingegebenen Befehl, damit das Programm künftig auch aus dem Menü fehlerfrei startet.

Um dagegen einem Programmfehler auf die Spur zu kommen, beobachten Sie die Ausgaben, die in der KDE-Konsole auftauchen. Startet das Programm, arbeiten Sie so lange damit, bis der Fehler auftritt. Schalten Sie dann mit [Alt-Tab] zu dem inzwischen von der Anwendung verdeckten Konsolen-Fenster, aus dem Sie das Programm gestartet haben, und suchen Sie in der Ausgabe nach Fehlermeldungen. Was Sie dort sehen, müssen Sie nicht verstehen -- auch erfahrene Linux-Nutzer können längst nicht alles enträtseln, was ein Programm im ganz normalen Betrieb so ausgibt (Abbildung 2). Schneiden Sie das aus, was Ihnen relevant erscheint und füttern Sie eine Suchmaschine mit dem Namen des Programms und der Fehlermeldung. Oft finden Sie dort Tipps oder Hinweise, wie Sie dem Problem zu Leibe rücken.

Eine häufige Fehlerquelle sind falsch gesetzte Rechte [4]. Den Rechten spüren Sie über den Eigenschaftsdialog des Konquerors nach. Rechte außerhalb Ihres Home-Verzeichnisses sollten Sie nicht einfach ändern, nur weil das tolle neue Spiel seine Highscore-Liste unbedingt in /usr/share/ ablegen will -- in diesem Fall bringen Sie besser das betreffende Programm (über eine Option in den Menüs) zur Raison.

Beschwert sich ein Programm über nicht auffindbare Hilfsprogramme, prüfen Sie mit which programmname, ob es überhaupt installiert ist. Ist es installiert und wird trotzdem nicht gefunden, können Sie dem Programm den richtigen Pfad gewöhnlich über eine Menüoption oder einen Eintrag in der Konfigurationsdatei beibringen.

Abb. 2: Viel Lärm um nichts -- diese Ausgaben des Mail-Programms KMail sind harmlos, was Sie auch an dem vorangestellten WARNING sehen; hinter Warnungen steckt selten ein echter Fehler.

Besetzt-Zeichen

Für Probleme, die Sie keinem Programm zuordnen können, bringt jede Linux-Distribution praktische Diagnose-Tools mit. Arbeitet das System auf einmal quälend langsam oder beobachten Sie vermehrte Festplattenaktivität, obwohl Sie keine Anwendung gestartet haben, finden Sie mit einem Prozessmonitor heraus, was da los ist. Ein solcher zeigt, wie der Task-Manager unter Windows, alle laufenden Programme und deren Ressourcenverbrauch an. Der Klassiker ist das textbasierte top. Wer es lieber grafisch mag, greift unter KDE zu ksysguard oder unter GNOME zum gnome-system-monitor. Mit einem Klick auf die passende Spaltenüberschrift sortieren Sie die Programme nach Speicher- oder CPU-Verbrauch (Abbildung 3). Erschrecken Sie nicht, dass die einzelnen KDE-Programme scheinbar so viel RAM benötigen: Sie teilen sich gemeinsam viele Bibliotheken, die die GNOME-Systemüberwachung jedem KDE-Programm zurechnet, obwohl sie nur einmal im Speicher sind.

Abb. 3: Ein Klick auf die Spalte "Speicher" sortiert die Programme nach dem RAM-Verbrauch.

Wenn Sie wissen, was da so viel Speicher oder CPU verbraucht, können Sie recherchieren, wofür das Programm eigentlich gut ist. Hier leisten die lokal installierten Handbuchseiten, die Sie mit man programmname aufrufen, gute Dienste. Oft stellt sich ein so genannter Cron-Job als Schuldiger heraus. Über den Cron-Dienst [5] automatisieren die Distributoren regelmäßig wiederkehrende Aufgaben, wie etwa das Komprimieren und Löschen alter Log-Dateien.

Ein besonders lästiger Fehler begegnet Windows-Umsteigern beim Mounten von Laufwerken: Solange noch ein Programm auf eine gemountete CD zugreift, können Sie das Gerät nicht aus dem Dateisystem aushängen. Selbst der Versuch, die CD über die Kommandozeile mit dem mount-Befehl auszuhängen, scheitert:

umount: /mnt/cdrom: Das Gerät wird momentan noch benutzt

Hier wünscht man sich Linux etwas mitteilungsfreudiger. Darauf, dass noch ein Programm auf die CD zugreift, kommt man auch selbst, aber welches? Kaum jemand hat Lust, auf gut Glück alle Anwendungen zu schließen. Wesentlich mehr als mount verrät der Befehl lsof, gefolgt von dem Einhängepunkt oder der Gerätedatei, über die Sie das CD-Laufwerk ansprechen.

Unter SuSE Linux finden Sie mit

lsof /media/cdrom

heraus, welche Anwendung das Aushängen der CD verhindert. Meistens ist dafür ein Kommandozeilen- oder Datei-Manager-Fenster verantwortlich, das sich noch in einem Unterverzeichnis der CD befindet. Wechseln Sie dort einfach in das Home-Verzeichnis Ihres Benutzers, um die CD über das Desktop-Icon auszuhängen. Manchmal blockiert ein Programm das CD-Laufwerk, das Sie längst beendet haben; es gibt kein Fenster, das Sie schließen könnten. Dann ist das Programm vermutlich abgestürzt oder hat einen Fehler, der verhindert, dass es sich ordentlich beendet. Auch dafür sind die Informationen, die lsof liefert, wertvoll. In der zweiten Spalte mit der Überschrift PID steht die eindeutige Prozess-ID des Programms. Starten Sie den KDE- oder GNOME-Systemmonitor und sortieren Sie die Programme nach der Prozessnummer, damit Sie den Schuldigen schnell finden. Über den Kontextmenüeintrag Prozess töten (gnome-system-monitor) oder den Button Beenden (kill) (ksysguard) beenden Sie die Anwendung gewaltsam. Zu diesem Mittel sollten Sie nur greifen, wenn ein Programm sich nicht normal beenden lässt, da dabei alle ungespeicherten Daten verloren gehen.

Die Krankenakte

Eine wertvolle Hilfe bei der Einrichtung neuer Hardware sind die Log-Dateien des Systems. Sobald Sie beispielsweise ein neues USB-Gerät anstecken, protokolliert Linux, was es da erkennt. Die Einträge schreibt es in die Datei /var/log/messages. Mit dem Programm tail, das standardmäßig die letzten zehn Zeilen einer Datei anzeigt, verfolgen Sie die Meldungen in Echtzeit. Dafür brauchen Sie Administratorrechte, da normale Nutzer die Log-Dateien nicht lesen dürfen. Werden Sie deshalb mit Eingabe von su und Ihrem root-Passwort in der nächsten Zeile zum Administrator.

tail -f /var/log/messages

zeigt danach die letzten zehn Zeilen der Log-Datei an. Sobald neue hinzukommen, erscheinen sie dank des Parameters -f (follow=verfolge) automatisch auf dem Bildschirm. Stecken Sie nun ein USB-Gerät ein, sehen Sie alle Meldungen von Linux dazu in Echtzeit.

Etwas komplizierter ist es bei Hardware, für deren Einbau Sie den Rechner ausschalten müssen. Wollen Sie wissen, ob Linux das neue Gerät zumindest bemerkt hat, rufen Sie nach dem Booten als root

dmesg | less

auf. Der Befehl zeigt alle Boot-Meldungen des Kernels im Programm less an. Blättern Sie mit [Bild auf] und [Bild ab], um die Datei zu studieren. Alternativ geben Sie /, gefolgt von einem Suchbegriff ein -- bei neuen Festplatten führt Sie schon die Eingabe des Herstellernamens an die richtige Stelle.

Wie viel auch in diesen beiden Logdateien steht: Etwas finden Sie nicht darin, nämlich die Protokolle über den Start des grafischen Systems. Funktioniert das nicht, sollten Sie einen Blick in die Datei /var/log/XFree86.0.log werfen. Suchen Sie dort nach allen mit E: (E für Error=Fehler) beginnenden Zeilen. Selbst wenn Sie sich darauf nicht auf Anhieb einen Reim machen können, helfen sie bei der Fehlersuche: Füttern Sie einfach eine Suchmaschine mit der Fehlermeldung und geben Sie beim ersten Suchlauf ruhig Ihr Grafikkartenmodell mit an.

Wahrscheinlich ist der Fehler schon bei anderen Nutzern aufgetreten und bei einer Suchmaschine archiviert. Speziell die Newsgroup-Suche [6] von Google ist eine wahre Fundgrube für Erfahrungsberichte anderer Anwender. Markieren Sie die Meldung durch Ziehen mit gedrückt gehaltener linker Maustaste und fügen Sie sie mit einem Klick der mittleren Maustaste in das Suchfeld ein. Handelt es sich um eine Meldung aus den Log-Dateien des Systems, achten Sie darauf, dass Sie beim Kopieren der Fehlermeldung nicht auch das Datum und den Rechnernamen erwischen, dann hätte die Suche keinen Erfolg.

Vor allem bei Problemen mit dem grafischen System finden Sie so Tipps anderer Nutzer, die vielleicht nur eine Zeile in einer Konfigurationsdatei ändern mussten, um den Fehler abzustellen. So vielversprechend ein solcher Tipp auch aussieht -- legen Sie zuvor eine Sicherheitskopie jeder Konfigurationsdatei an, die Sie von Hand ändern. Am schnellsten geht das in einer KDE-Konsole. Werden Sie durch Eingabe von su und des root-Passwortes zum Administrator. Wechseln Sie danach in das Verzeichnis mit der Konfigurationsdatei. Fast alle Einstellungen liegen im Verzeichnis /etc und dessen Unterordnern. Das grafische System liest seine Einstellungen aus /etc/X11/XF86Config-4 (Mandrake Linux) oder /etc/X11/XF86Config (Red Hat und SuSE Linux).

Mit

cd /etc/X11

wechseln Sie ins richtige Verzeichnis,

cp XF86Config XF86Config.old

legt die Sicherheitskopie an.

Der Übersichtlichkeit halber sollten Sie für Backups immer dieselbe Dateiendung verwenden, die keinem anderen Programm zugeordnet ist. .old oder .orig bieten sich dafür an. Den Basisnamen (hier das XF86Config behalten Sie bei, dann sehen Sie auf den ersten Blick, um welches Backup es sich handelt.

Das Zurückspielen einer gesicherten Datei geht ebenso einfach: Wechseln Sie erneut in das richtige Verzeichnis und werden Sie mit su zum Administrator.

cp XF86Config.old XF86Config

spielt das Original zurück.

Recherche

Haben Sie ein allgemeines Problem, ist es nicht leicht, die richtigen Suchbegriffe zu finden. Oftmals liefert eine Suche mehrere Tausend Treffer. Sie erzielen die besten Ergebnisse, wenn Sie Ihr Anliegen in Form einer vollständigen Frage in die Suchmaske eingeben. Besonders häufige Wörter wie ein, der oder das filtert Google zwar automatisch aus, dennoch finden Sie so die besten Antworten. Können Sie zum Beispiel als normaler Benutzer nicht auf eine FAT-formatierte Windows-Partition schreiben, ist gleich das erste Suchergebnis bei Eingabe von Wie kann ein normaler Benutzer unter Linux auf eine fat Partition schreiben ein Volltreffer (Abbildung 4).

Abb. 4: Mit einer klar formulierten Frage ist oft schon das erste Suchergebnis ein Volltreffer: So erfahren Sie, wie Sie als normaler Nutzer Schreibrechte auf einer Windows-Partition bekommen.

Visite beim Spezialisten

Geizt die Suchmaschine Ihrer Wahl mit Antworten, gibt es vielleicht andere Linux-Nutzer, die das Problem kennen. Entweder wenden Sie sich an eine Newsgroup [7] oder an ein Web-Forum, in dem es um Linux geht [8]. Damit Sie brauchbare Antworten bekommen, sollten Sie ein wenig Sorgfalt auf die Formulierung Ihres Problems verwenden. Die Aussage "Programm A funktioniert nicht" ist so aussagekräftig wie "Hier ist ein Unfall passiert" an der Notrufsäule. Was bei Notrufen als die 5-W-Regel bekannt ist, gilt in abgewandelter Form auch für die Fehlerbeschreibung bei Linux-Problemen:

Am wichtigsten ist der vierte Punkt. Linux-Anfänger versuchen oft, die kryptischen Fehlermeldungen mit Ihren eigenen Worten zu umschreiben, etwa "Das Programm meldet, es könne eine Datei nicht finden". Das führt potenzielle Helfer jedoch leicht auf eine falsche Spur, wenn der Fragende die Meldung missinterpretiert hat.

Geht es um ein Hardware-Problem, fragen andere Nutzer gewöhnlich nach Auszügen aus der Log-Datei. Kopieren Sie in diesem Fall nicht die gesamte Datei: Niemand mag mehrere Tausend Zeilen fremder Systemprotokolle lesen. In den Log-Dateien vermerkt das System bei jedem Eintrag die Uhrzeit. Geht es Ihnen um ein nicht ansprechbares USB-Gerät, kopieren Sie nur die Zeilen, die das System in die Logs geschrieben hat, als Sie die Hardware angeschlossen haben.

Falls Sie selbst schon etwas unternommen haben, um einen Fehler zu beheben, teilen Sie das mit. Nichts ist für freiwillige Helfer ärgerlicher, als wenn sie viel Zeit für eine Antwort aufwenden, nur um von dem Fragenden zu erfahren, dass er das bereits erfolglos versucht hat.

Die Zeit heilt alle Wunden

Die schönsten Probleme sind die, die sich von selbst lösen. Manchmal hilft schon einmal Ausloggen und wieder Anmelden, manchmal tut ein Neustart das Gewünschte. Mit der unter Windows beliebten Praxis, das System einfach neu zu installieren, kommen Sie dagegen den meisten Linux-Problemen nicht bei: Das ist nur in ganz wenigen Fällen sinnvoll, wenn Sie etwa aus Versehen wichtige Systemdateien gelöscht oder geändert haben und sie nicht aus einem Backup wiederherstellen können. Besser ist es, die Ursache des Problems herauszufinden und vor allem zu verstehen. Danach haben Sie nicht nur Ihr Problem gelöst, sondern auch etwas über die Funktionsweise Ihres Linux-Systems gelernt: Den nächsten Fehler beheben Sie so um so leichter. (eba/amü)

Infos
[1] KDE-Mailing-Listen-Archiv: http://lists.kde.org/
[2] GNOME-Mailing-Listen-Archiv: http://mail.gnome.org/archives/
[3] Fehlerdatenbank der KDE-Desktop-Umgebung: http://bugs.kde.org
[4] Elisabeth Bauer: "Alles was Recht ist", EasyLinux 09/2003 S. 71 ff.
[5] Christian Baun: "Mit der Zeit gehen", EasyLinux 04/2004 S. 52 ff.
[6] Newsgroup-Suche von Google: http://groups.google.de
[7] Anja M. Wagner: "Newsgroups: unendliche Weiten", EasyLinux 12/2003 S. 44 ff.
[8] Diskussionsforum rund um Linux: http://www.linux-community.de

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2012 Linux New Media AG | Last modified: 2007-01-25 17:16

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]