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

Dateisysteme überprüfen und wiederherstellen

Nur keine Panik!

von Marcel Hilzinger


Dank modernen Dateisystemen gehören manuelle Dateisystemchecks beinahe der Vergangenheit an. Trotzdem kann es vorkommen, dass der Rechner nicht mehr hochfährt und auf der manuellen Überprüfung beharrt. Dieser Artikel beschreibt, was in diesem Fall zu tun ist.

Irgendwann passiert es: der Rechner fährt nicht mehr hoch, sondern bleibt mit der Meldung stehen, dass mit dem Dateisystem etwas nicht in Ordnung sei. In Ihrem ersten Schreck starten Sie den Rechner neu, doch der Fehler bleibt. Hier heißt es, kühlen Kopf bewaren und bloß keine übereilten Schritte tun. In den meisten Fällen ist das Dateisystem überhaupt nicht beschädigt, sondern andere Fehler lösen die Routineüberprüfung aus. Haben sich wirklich Fehler im Dateisystem eingeschlichen, lassen sie sich meist durch entsprechende Tools beheben.

Das Dateisystem führt Tagebuch

Noch vor zwei Jahren stellte der regelmäßige Dateisystemcheck mehr die Regel als die Ausnahme dar. Heute gehört die manuelle Dateisystem-Überprüfung langsam aber sicher der Vergangenheit an. Zu verdanken ist dies den so genannten Journaling-Dateisystemen, wie Reiserfs und Ext3. Sie führen über jede Bewegung im Dateisystem ein Protokoll. Ziel des Dateisystems ist es dabei nicht etwa, Ihre Dateien auszuspionieren, sondern bei einem unerwarteten Absturz des Computers genau zu wissen, welche Dateien sich an welchem Ort befanden.

Bevor Sie irgendwelche Tätigkeiten am Dateisystem durchführen, müssen Sie sich über folgende Fragen im Klaren sein:

Die Antwort auf die erste Frage hängt von der verwendeten Linux-Distribution ab. Suse Linux benutzt standardmäßig Reiserfs, bei Mandrake Linux und Fedora Core 2 kommt Ext3 zum Einsatz.

Um die zweite Frage zu beantworten, öffnen Sie über [Alt-F2] und die Eingabe von xterm ein Terminalfenster. Geben sie hier den Befehl mount ein, listet das System alle eingehängten Dateisysteme (Partitionen) auf. Eine entsprechende Ausgabe ist in Kasten "Beispielausgabe von mount" zu sehen. Relevant für den Dateisystemcheck sind Zeilen, die mit /dev/hda beginnen. Dabei handelt es sich um Einträge für die erste Festplatte (Primary Master). Das entsprechende Dateisystem steht hinter type Möchten Sie nur die Einträge eines bestimmten Dateisystems anzeigen (etwa für Reiserfs unter Suse), geben Sie folgenden Befehl ein:

mount -l -t reiserfs

Für Mandrake Linux oder Fedora Core lautet der entsprechende Befehl mount -l -t ext3, da diese Distributionen Ext3 als Standard-Dateisystem verwenden.

Beispielausgabe von mount

/dev/hda3 on / type reiserfs (rw,commit=600)
proc on /proc type proc (rw)
tmpfs on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/hda5 on /home type reiserfs (rw,commit=600)
/dev/hdc on /media/cdrecorder type subfs (ro,nosuid,nodev,fs=cdfss,procuid,iocharset=utf8)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
usbfs on /proc/bus/usb type usbfs (rw

Lies: Partition on Mountpunkt type Dateisystem (Mount-Opitionen)

Ein Crash, was nun?

Nach einem Systemabsturz überprüft sowohl Reiserfs als auch Ext3, ob mit dem Dateisystem alles in Ordung ist. Unter Fedora Core erscheint dann die Meldung: Ihr System ist wahrscheinlich nicht korrekt heruntergefahren worden. Drücken Sie Y innerhalb von 5 Sekunden um die Prüfung des Dateisystems zu forcieren. Drücken Sie die [Y]-Taste nicht, startet das System ohne Dateisystemcheck. Bei Suse Linux meldet Reiserfs Filesystem is NOT clean und führt dann automatisch Reparaturarbeiten durch. Die entsprechenden Meldungen finden Sie nach dem Start des Rechners auch in den Systemprotokollen (siehe separaten Artikel in der Titel-Rubrik).

Unter Suse Linux findet zudem bei jedem Systemstart ein Schnellcheck des Dateisystems statt. Der Vorteil dieser Methode ist, dass das System echte Fehler -- etwa durch defekte Hardware -- frühzeitig erkennt. Als Nachteil müssen Suse-Benutzer leicht längere Startzeiten in Kauf nehmen.

Eingreifen müssen Sie erst, wenn die automatische Dateisystem-Überprüfung fehlschlägt. Der Bootprozess stoppt dann, und Sie erhalten eine entsprechende Fehlermeldung. Bei Mandrake Linux lautet sie: Fehler beim Kontrollieren des Dateisystems entdeckt, wollen Sie reparieren (J/n). Drücken Sie hier die [J]-Taste und melden Sie sich als Benutzer root am System an: Give root password for maintenance (or type Control-D for normal startup). Nach erfolgreichem Login steht auf der Shell (Dateisystem-Reparatur) 1 #. Die Zahl vor der Raute erhöht sich mit jedem Befehl um Eins. Sobald Sie sich mit exit wieder abmelden, startet der Rechner neu. Die entsprechende Fehlermeldung für Suse Linux finden Sie in Kasten "Fsck-Fehlermeldung bei Suse Linux".

Fsck-Fehlermeldung bei Suse Linux

fsck failed. Please repair manually and reboot. The root
file system is currently mounted read-only. To remount it read-write do:

        bash# mount -n -o remount,rw /

Attention: Only CONTROL-D will reboot the system in this
maintenance mode. shutdown or reboot will not work.

Give root password for login:

Falscher Alarm

Sehr häufig werden Dateisystemchecks nicht durch tatsächliche Fehler hervorgerufen, sondern durch Fehler in der Datei /etc/fstab. Diese Datei erhält Informationen darüber, welche Dateisysteme der Kernel wohin einhängen soll. Enthält sie einen Fehler (zum Beispiel einen Eintrag für eine Partition, die es auf Ihrem System gar nicht gibt), versucht das entsprechende Programm vergebens die Überprüfung durchzuführen. Es scheitert und fordert Sie dann auf, den Check von Hand durchzuführen.

Sie sollten deshalb vor dem Dateisystemcheck mit less /etc/fstab einen Blick auf die Partitionstabelle werfen. Finden Sie darin Fehler, editieren Sie einfach die Datei. Dazu gehen Sie folgendermaßen vor:

  1. Gelingt der Rechnerstart nicht, mountet Linux das Dateisystem read-only. Um die Datei /etc/fstab zu editieren müssen Sie zunächst das Wurzelverzeichnis les- und schreibbar mounten. Der entsprechende Befehlt lautet:
    mount -o rw,remount -n /
  1. Da sich das System noch mitten im Bootprozess befindet, sind noch nicht alle Programme verfügbar. Sie kommen deshalb nicht darum herum, den Editor Vi zu benutzen. Mit vi /etc/fstab öffnen Sie die Partitionstabelle. Drücken Sie jetzt die Taste [I], bis am unteren Bildrand der Eintrag --EINFÜGEN-- erscheint (in der Regel genügt ein einmaliges Drücken der Taste). Bewegen Sie dann mit den Pfeiltasten den Kursor zu der Stelle, die Sie editieren möchten.
  1. Überprüfen Sie bei jedem Eintrag, ob das richtige Dateisystem angegeben ist (dritte Spalte). Sind Sie sich nicht sicher, versuchen Sie es mit auto als Dateisystemtyp. Haben Sie eine Festplatte aus dem Rechner entfernt, beinhaltet die Partitionstabelle vemutlich überflüssige Zeilen. Löschen Sie diese gegebenenfalls.
  1. Korrigieren Sie alle Fehler und drücken Sie anschließend [Esc], gefolgt von :wq um zu speichern und Vi zu verlassen (der Doppelpunkt ist wichtig). Haben Sie sich beim Editieren vertippt, drücken Sie ebenfalls [Esc], dann lassen sich die Fehler über mehrmaliges Drücken der Taste [U] wiedergutmachen.
  1. Geht überhaupt nichts mehr, drücken Sie so lange die [Esc]-Taste, bis der Rechner piepst. Dann schreiben Sie :q!, um den Editor ohne Speichern zu verlassen und versuchen es nochmals.

Alternativ bietet sich der Weg über eine Live-CD an, wie zum Beispiel Knoppix. Hier müssen Sie das Wurzelverzeichnis zunächst als root mounten, dann editieren Sie die Partitionstabelle mit dem Editor Ihrer Wahl. Dabei können Ihnen auch die Fstab-Einträge der Live-CD hilfreich sein.

Suse Linux bietet auch einen vollständigen grafischen Systemcheck mit YaST. Das Programm überprüft sämtliche Dateisysteme auf dem Rechner, und modifiziert auch die Datei /etc/fstab automatisch. Starten Sie dazu Ihre Suse Linux Distribution von der ersten CD/ DVD und wählen Sie den Menüpunkt Installation aus. Nach der Auswahl der Sprache erscheint der auf Abbildung 1 gezeigte Dialog. Hier wählen Sie Reparatur des installierten Systems und klicken auf OK.

Abb. 1: Suse Linux bietet auch einen grafischen Systemcheck inklusive Reparatur an.

Auf dem folgenden Bildschirm (Abbildung 2) wählen Sie am besten die Automatische Reparatur aus. Suse Linux überprüft dann sämtliche Dateisysteme, den Bootloader und alle installierten Pakete auf Fehler. Möchten Sie nur die Dateisysteme überprüfen, klicken Sie auf Benutzerdefinierte Reparatur und wählen dann die entsprechenden Punkte aus.

Abb. 2: Die Systemreparatur von YaST bietet drei unterschiedliche Modi an.

Ernstfall

Sind Sie sich sicher, dass die Datei /etc/fstab keine Fehler mehr enthält, starten Sie das System neu. Bleibt der Rechner wieder hängen, kommen Sie nicht um den manuellen Dateisystemcheck herum. Beginnen Sie mit der Überprüfung des Wurzelverzeichnisses. Geben Sie dazu den Befehl mount aus, und merken Sie sich welches Dateisystem in / eingehängt ist (in Kasten "Beispielausgabe von mount" ist es /dev/hda3). Starten Sie nun den Dateisystemcheck für Reiserfs (Suse Linux) mit reiserfsck /dev/hda3. Bei Mandrake Linux und Fedora Core lautet der entsprechende Befehl fsck.ext3 -f /dev/hda3. In beiden Fällen müssen Sie /dev/hda3 durch das Wurzelverzeichnis Ihres Rechners ersetzen.

Reiserfsck fragt zur Sicherheit noch einmal nach, ob Sie den Vorgang wirklich durchführen möchten. Tippen Sie Yes, startet es die Überprüfung, die aus zwei Schritten besteht. Zunächst kontrolliert das Programm die interne Beschaffenheit des Dateisystems (Checking internal tree), dann ob alle Dateien den richtigen Namen tragen (Checking semantic tree). Findet es Fehler fragt das Programm nach, ob Sie die Dateien wiederherstellen möchten. Hier sollten Sie mit [Y] antworten. Dateiresten, die Reiserfsck nicht wiederherstellen kann (weil der Check zum Beispiel keinen Dateinamen dazu findet), verschiebt es in das Verzeichnis /lost+found. Ein Blick in dieses Verzeichnis lohnt sich also nach der Dateisystem-Überprüfung. Finden Sie auf Ihrem Rechner kein solches Verzeichnis, brauchen Sie sich keine Sorgen zu machen. Im Gegensatz zu Ext3 legt Reiserfs /lost+found nämlich erst dann an, wenn es das Verzeichnis wirklich benötigt.

Bei fsck.ext3 verläuft der Check in fünf Durchgängen. Auch dieses Programm überprüft zunächst die interne Datenstruktur und versucht dann eventuelle verlorene Dateien wieder herzustellen. Dateien, die das Tool keinem Verzeichnis zuorden kann, verschiebt es ebenfalls nach /lost+found. Nach erfoglreicher Überprüfung des Wurzelverzeichnisses sollte sich Ihr Rechner wieder normal hochfahren lassen. Kontrollieren Sie nun auch die übrigen Partitionen.

Finden fsck.ext3 oder reiserfsck Probleme, die die Tools nicht selber lösen können, ist eventuell nicht nur das Dateisystem, sondern auch die Festplatte selbst beschädigt. In diesem Fall besteht noch die Möglichkeit, die ganze Partition auf eine intakte Platte zu spiegeln (ein so genanntes Image zu erstellen). Dieses Abbild lässt sich dann wie ein normales Dateisystem mounten und überprüfen. Sie verhindern damit, dass das Fsck-Programm beim Reparieren durch Schreibzugriffe auf die defekte Platte mehr Schaden als Nutzen anrichtet. Dazu sollten Sie sich allerdings an einen erfahrenen Linux-Benutzer wenden. (mhi)

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 | © 2021 COMPUTEC MEDIA GmbH | Last modified: 2007-04-05 11:10

[Linux-Magazin] [LinuxUser] [Linux-Community]