Der folgende Grundlagenbeitrag bespricht typische Linux-Probleme, deren Lösungen Sie kennen sollten. Diese Pannen sind keineswegs häufig, aber bei langfristiger Nutzung irgendwann akut – und dann zielsicher behebbar.
Diese kleine Sammlung von Linux-Problemen zeigt keine marginalen Störungen, die man tolerieren könnte. Es geht überwiegend um ernste Startprobleme, die eine normale Systembedienung verhindern. Linux-Neulinge sollten vor allem die Erkenntnis gewinnen, dass auch ohne grafische Oberfläche eine funktionierende Systembasis vorliegt, die Reparaturen erlaubt. Ferner gibt es Zugriffsmöglichkeiten über unabhängige Livesysteme, um von außen Dateien zu verändern oder ein System zum Start zu überreden.
Bootprobleme mit Grub-Bootloader
Dass ein Linux bei normaler Alltagsbenutzung plötzlich nicht mehr startet, ist äußerst selten. Banale Ursachen sind gelockerte Kontakte beim Stromstecker oder beim SATA-Datenkabel der internen Festplatte, dies am wahrscheinlichsten nach Transporten.
Es gibt aber ein sehr häufiges Szenario, das den Linux-Bootmanager Grub regelmäßig vernichtet – die nachträgliche Installation eines Windows-Systems. Das Windows-Setup ignoriert bei einer Parallelinstallation seit je konsequent vorhandene Linux-Systeme. Der Grub-Bootloader wird durch den Windows-Bootloader ersetzt, der nur Windows-Systeme bootet. Der Verlust des Linux-Bootmanagers bedeutet aber nicht das Ende der bestehenden Linux-Installationen. Von den möglichen Reparaturmaßnahmen empfehlen wir nachfolgend die einfachste, die auch jedem Linux-Einsteiger mühelos gelingt.
Schritt 1: Starten Sie den Rechner mit dem Tool Super Grub Disk . Der kleine Boothelfer durchsucht mit der Option „Detect and show boot methods“ alle angeschlossenen Datenträger nach bekannten Betriebssystemen und zeigt diese anschließend an. In der Liste markieren Sie dann das bootunfähige System und starten es mit der Eingabetaste. Die eigentliche Reparatur der Grub-Umgebung findet dann im gestarteten System statt (Schritt 2).
Wichtig für Schritt 1: Super Grub Disk kann mit Bios- und Uefi-Modus umgehen. Es ist aber wichtig, das Tool im richtigen Modus zu starten, denn nur dann wird die anschließende Reparatur gelingen. Wenn es sich bei Ihrem Bootproblem um das typische Szenario nach einem Windows-Setup handelt, ging offenbar eine Bios-Installation voraus (Uefi und sein GPT-Partitionsschema vermeiden das Problem). Um ganz sicher zu gehen, können Sie sich unter Windows, das ja starten sollte, mit dem Befehl „msinfo32“ unter „Systemübersicht –› BIOS-Modus“ vergewissern: Hier wird „Vorgängerversion“ stehen, wenn es sich um eine Installation im Bios-Modus handelt.
Schritt 2: Wenn das Linux-System nach der Starthilfe der Super Grub Disk wieder läuft, öffnen Sie ein Terminalfenster und geben dort die beiden Befehle
sudo grub-install –recheck /dev/sd[X]
sudo update-grub
ein. Anstatt des Platzhalters „[X]“ ist die Angabe der Datenträgerkennung nötig, die üblicherweise zum Booten dient. In den allermeisten Fällen ist dies der Datenträger „/dev/sda“, nämlich die erste interne Festplatte des Rechners. Der reparierte Grub-Bootloader berücksichtigt auch die Windows-Bootumgebung, sodass anschließend wieder alle Systeme startfähig sind.
Startprobleme mit Cinnamon & Co.
Streikt die Anzeige schon vor oder bei der Installation, handelt es sich um ein fundamentales Hardwareproblem. Gegenstand dieses Abschnitts sind jedoch Desktopprobleme, die nach längerer Nutzung eines Mint-Systems und erst nach der Anmeldung am System auftauchen (der Start zum Log-in-Bildschirm verläuft störungsfrei).
Ursache ist hier in der Regel eine fehlerhafte Konfiguration des Desktops – oder der Desktop fehlt nach unachtsamer Deinstallation eines Pakets komplett (siehe dazu den nächsten Abschnitt). Wechseln Sie mit Strg-Alt-F1 zur Textkonsole und melden Sie sich dort an. Beenden Sie zunächst den Window-Manager des grafischen Systems:
sudo service lightdm stop
Danach benennen Sie Ihr Home-Verzeichnis um, erstellen ein neues Home-Verzeichnis und setzen die Zugriffsrechte:
sudo mv /home/sepp /home/sepp.bak
sudo mkdir /home/sepp
sudo chown sepp:sepp /home/sepp
Den Namen unseres Beispielnutzers „sepp“ ersetzen Sie durch die Bezeichnung Ihres Benutzerkontos. Danach starten Sie wieder den Window-Manager:
sudo service lightdm start
Damit landen Sie am Anmeldebildschirm, melden sich dort an und testen das System. Wenn keine Probleme mehr auftauchen, ist der Fehler in den Konfigurationsdateien im Home-Verzeichnis nachgewiesen.
Die Maßnahme ist zunächst tiefgreifend, da sich die Oberfläche jungfräulich präsentiert und alle Anpassungen verloren sind. Sie können aber nun Ordner Stück für Stück aus der Sicherungskopie („[Benutzername]. bak“) in das neue Home-Verzeichnis kopieren. Die meisten Konfigurationsverzeichnisse beginnen mit einem Punkt, sind also versteckt und werden erst sichtbar, wenn Sie im Dateimanager „Ansicht –› Verborgene Dateien anzeigen“ wählen (Strg-H). Sinnvoll ist das Restaurieren vor allem für umfangreiche Verzeichnisse wie „.mozilla“ und „.thunderbird“. Bei vielen kleineren Programmen ist es oft einfacher, sie neu einzustellen, anstatt sich durch versuchsweises Kopieren auf detaillierte Suche der fehlerhaften Datei zu machen.
Startproblem: Die Oberfläche fehlt
Anfänger können den Fehler begehen, eine kleine Komponente deinstallieren zu wollen, und dabei die Meldung über zahlreiche Paketabhängigkeiten zu übersehen. Dies kann bei Desktopkomponenten zur kompletten Deinstallation der Oberfläche führen. Logischerweise geht es dann nach der Systemanmeldung nicht weiter.
Dieses Szenario ist wie folgt zu verifizieren und zu beheben: Wechseln Sie auch hier mit der Tastenkombination Strg-Alt-F1 auf eine Textkonsole und melden Sie sich an. Versuchen Sie dann, mit dem Befehl startx die Oberfläche zu starten. Wenn dann nur ein Mauszeiger auf leerer Oberfläche erscheint, ist offensichtlich kein grafischer Desktop verfügbar. Dies müssen Sie dann mittels des Befehls
sudo apt install cinnamon-desktop-environment
beheben (für Cinnamon). Die weiteren Mint-Desktops haben die Paketnamen „mintmeta- mate“ (Mate) und „xfce4“ (XFCE).
Startproblem mit Herstellergrafiktreibern
Die Installation eines proprietären Grafiktreibers des Herstellers („Systemeinstellungen –› Treiberverwaltung“) ist nicht immer erfolgreich.
In seltenen Fällen kann dies zu Darstellungsfehlern am Desktop führen oder sogar den Start der Oberfläche verhindern. Hier hilft es nur, die proprietären Treiber wieder zu deinstallieren, um zum Open- Source-Treiber zurückzukehren. Dies können Sie erneut in der virtuellen Konsole (Strg-Alt-F1) erledigen: Bei Grafiktreibern von Nvidia hilft der Befehl
sudo apt purge nvidia*
und bei Treibern von AMD verwenden Sie dieses Kommando:
sudo apt purge fglrx*
Nach einem Neustart wird der Desktop wieder funktionieren.
Anmeldekennwort vergessen
Bei selten genutzten Systemen kann es durchaus vorkommen, dass man sein Anmeldekennwort vergisst. Aber natürlich ist folgende Anleitung gewissermaßen auch eine Anleitung zum Einbruch. Denn in der Tat kann man sich an einem unverschlüsselten Linux-System ohne Kenntnis des Kennworts erfolgreich anmelden, indem man das Kennwort vorher entfernt.
Zunächst booten Sie den Rechner mit einem beliebigen Linux-Livesystem. Der Dateimanager des Livesystems wird die Festplatte(n) und Partition(en) des PCs anzeigen. Die Datei mit den Kennwörtern lautet „/etc/shadow“. Wenn Sie diese in einen beliebigen Editor laden, haben Sie Zeile für Zeile alle Systemkonten vor sich, stets mit führendem Kontonamen:
sepp:$Ld/1J5tZgk 2C[…]:17317:0:99999:7:::
Wenn Sie nach dem ersten Doppelpunkt bis zum zweiten Doppelpunkt alles löschen, ist das Passwort für dieses Konto entfernt. Danach (Speichern und Neustart des Systems) können Sie sich (in unserem Beispiel) als „sepp“ mit leerem Kennwort anmelden.
Fehlende Rechte auf Dateien und Ordner
Ein häufiges Szenario mangelnder Zugriffsrechte spielt sich im eigenen Home-Verzeichnis ab: Dort abgelegte Dateien oder Ordner verweigern dem Benutzer wegen fehlender Rechte den Zugriff. Auslöser sind meist mit dem root-Account oder über sudo ausgeführte Aktionen oder Scripts, die Ordner und Dateien anlegen. Die Lösung besteht in einer Änderung der Besitzrechte in der Kommandozeile mit dem Befehl chown. Generell dürfen Rechte an Dateien und Ordnern, die anderen Benutzern oder root gehören, auch nur wieder mit root-Privilegien geändert werden, deshalb verlangt dieser Befehl ein vorangestelltes sudo:
sudo chown [Benutzer] [Datei]
Dies ändert den Besitzer einer angegebenen, einzelnen Datei auf den angegebenen Benutzer. Ist eine ganze Ordnerstruktur mit Dateien und Unterverzeichnissen betroffen, so arbeitet chown mit dem Parameter „-R“
sudo chown -R [Benutzer] [Ordner]
auch rekursiv.
Probleme mit Anwendungssoftware
Bei Softwareproblemen ist das wichtigste Tool zum Aufspüren von Fehlerquellen das Terminal. Programme öffnen beim Start „stdout“ für Ausgaben und „stderr“ für eventuelle Fehlermeldungen. Starten Sie fehlerhafte Programme daher im Terminal, dann lesen Sie hier alle Startmeldungen und mögliche Fehler der Software. Falls Sie einen Programmnamen nicht wissen, ermitteln Sie ihn über seine Verknüpfung unter „/usr/share/applications“ sowie „/usr/ local/share/applications“. Den Namen laufender Programm können Sie auch durch den Befehl xprop im Terminal und anschließenden Klick auf das Programmfenster ermitteln (in der Zeile „WM_CLASS“.
Die Fehlermeldungen zeigen typische Fehlerbilder: Fehlende Bibliotheken können Abstürze sofort nach dem Start verursachen. Gerade Python- und Perl-Scripts mit grafischer Oberfläche bauen meist auf einer größeren Zahl von Bibliotheken (Modulen) auf. Ein Merkmal dieser Fehler ist die Reproduzierbarkeit bei jedem Aufruf. In der Fehlermeldung selbst wird in der Regel allerdings lediglich der sehr spezielle Methoden- oder Modulname ersichtlich. Der Lösungsweg ist daher eine Suche im Web mit genauem Wortlaut der Fehlermeldung. Hier ist dann meist schnell ermittelt, welches Paket nachinstalliert werden muss.
Verabschiedet sich ein Programm mit der Meldung „Segfault“, so wurde es nach einem Speicherzugriffsfehler beendet. Der Auslöser kann ein Bug sein und ist dann bei jedem Aufruf reproduzierbar. Sporadische Segfaults in unterschiedlichen Situationen sprechen hingegen eher für ein Hardwareproblem (Speicherfehler oder überhitzte CPU). Stürzen Programme ab, die bestimmte Merkmale der Hardware nutzen, etwa Open GL für die Grafikausgabe oder einen Netzwerkchip, dann liefert ein Blick in die Kernel-Meldungen mehr Informationen. Der Befehl dmesg -T zeigt alle Meldungen der Kernel-Logfiles mit Zeitstempel an. Hier finden Sie auch Fehlermeldungen und Warnhinweise zu allen Geräten und Treibern. Die Eingabe
dmesg -T -l err
reduziert die Ausgabe auf Fehler und filtert zahlreiche normale Meldungen weg, wie sie der Kernel etwa für die Initialisierung von Geräten protokolliert.
Defekte Datenträger
Linux-Distributionen bieten ein Arsenal an Tools zur Datenrettung bei defekten Dateisystemen. Dabei gilt es, mit den Reparaturaktionen den Schaden nicht noch zu vergrößern. Je nach Schwere des Defekts sind bei der Wahl der Rettungsmethode zwei Szenarien zu unterscheiden:
1. Das Linux-System kann den Datenträger ohne Fehlermeldung einhängen, aber einige Dateien sind nicht mehr lesbar. Typisch ist dieses Fehlerbild für optische Medien, USB-Sticks und Speicherkarten, wenn Partitionstabelle und Dateisystem noch weitgehend intakt sind, einzelne Sektoren jedoch nicht mehr. In diesem Fall stehen die Chancen gut, per Software einen Großteil der Daten vom Laufwerk zu retten.
2. Es wird kein Dateisystem erkannt und das System weigert sich, den Datenträger einzuhängen. Der mount-Befehl meldet ein ungültiges Dateisystem und einen unlesbaren Superblock („mount: wrong fs type, bad option, bad superblock“).
Safecopy: Wenn der Datenträger noch eingehängt wird und der Zugriff auf eine Handvoll Dokumente scheitert, dann genügt es in vielen Fällen, gezielt die gewünschten Dateien vom Datenträger zu holen. Dafür gibt es das spezialisierte Kommandozeilentool Safecopy, das Sie in Linux Mint mit
sudo apt-get install safecopy
nachinstallieren. Zum Auslesen einzelner Dateien geben Sie Quellpfad und Ziel an:
safecopy /pfad/dokument.pdf ~/dokument_rettung.pdf
Das Tool liest die Quelldateien Byte für Byte. Was unlesbar bleibt, füllt es mit Nullen auf. Diese Methode eignet nicht natürlich nicht für jeden Dateityp. Am besten arbeitet das Tool bei einfachen Textdateien, aber auch Bildformate und Sounddateien verzeihen den Ausfall einiger Bytes.
ddrescue: Bei unerkannten Dateisystemen liefert der Befehl dmesg nach dem Anstecken des Datenträgers dmesg alle Kernel-Fehlermeldungen. Zwar muss nicht immer ein physikalischer Schaden der Grund defekter Dateisysteme sein, aber es lässt sich auch nie ausschließen. Dann empfiehlt es sich, nicht direkt mit dem Laufwerk zu arbeiten, sondern zuerst ein Abbild mit Datenrettungstools zu erstellen. Das geeignete Programm dafür ist ddrescue. In Linux Mint ist ddrescue Teil des größeren Programmpaket gddrescue, das mit
sudo apt-get install gddrescue
schnell nachinstalliert ist.
Um einen beschädigten Datenträger auszulesen, benötigten Sie den Gerätenamen, den Sie mit dem Kommando lsblk -p herausfinden.
Damit kein anderes Programm auf das Laufwerk zugreift, muss es vor dem Auslesen ausgehängt sein. ddrescue arbeitet in mehreren Durchgängen, da beim ersten Leseversuch eine Logdatei mit fehlerhaften Blöcken erstellt wird, die erst im zweiten Durchgang gelesen werden. Folgender Befehl liest das Laufwerk „/dev/sdc1“ in die Datei „image.img“ aus und protokolliert Lesefehler in der Datei „fehler.log“.
sudo ddrescue -n /dev/sdc1 image.img fehler.log
Wenn ddrescue sich über Lesefehler beschwert, dann setzen Sie das Tool in einem zweiten Durchlauf nochmal auf die Disk an, um möglichst alle Blöcke in der Logdatei gezielt zu retten:
sudo ddrescue -d /dev/sdc1 image.img fehler.log
Je nach Kapazität und Fehlermenge kann dieser Prozess viele Stunden dauern. Das Image lässt sich wie ein Laufwerk behandeln und Sie können das Werkzeug fsck zum Beheben von Dateisystemfehlern anwenden. Dabei müssen Sie die zum Dateisystem passende Variante verwenden. Für FAT/FAT32 ist dies die Variante fsck.fat, die Sie mit
sudo fsck.fat image.img
aufrufen, während Ext4 die Variante fsck.ext4 benötigt. Gelingt die Wiederherstellung, dann können Sie die Imagedatei einhängen und auf deren Inhalt zugreifen. Erstellen Sie dazu im Home-Verzeichnis einen neuen Ordner (etwa „Image“), und hängen Sie das ISO-Image mit
sudo mount image.img /home/ benutzer/image
dort ein.