AA-pflaster-taste_PO19055.jpg

© Gernot Krautberger, Fotolia

Inode in Not

Dateisysteme verarzten mit E2fsprogs

19.03.2009
Mit den richtigen Werkzeugen fühlen Sie Ihrem Dateisystem auf den Zahn, beseitigen Inkonsistenzen und restaurieren beschädigte Dateien.

Dateisysteme verhalten sich in freier Wildbahn eher unauffällig. Sie rücken schlagartig erst dann in den Fokus des Benutzers, wenn sie den Geist aufgeben, beim Booten plötzlich stundenlange Selbsttests durchführen oder den Bootvorgang abbrechen. Einsteiger glauben dann mitunter, ihr Rechner sei gerade dabei, sich selbst zu zerstören – dabei gelten diese Checks als Features und nicht als Bugs (und man kann sie abstellen bzw. ihren Turnus ändern).

Zunächst stellt sich die Frage, wie inkonsistente Dateisysteme überhaupt entstehen. Das von den großen Linux-Distributionen (OpenSuse, Ubuntu, Debian) verwendete Dateisystem Ext3 bringt eine Funktion namens Journaling mit. Die Systeme führen quasi Buch über ihre Transaktionen. Die bestehen aus mehreren Schritten, die zusammenhängen: Beim Anlegen einer Datei werden neue Inodes angelegt, Verzeichnisse zugeordnet, Blöcke auf der Festplatte reserviert, Metadaten geschrieben und einiges mehr. Erst nach dem Abschluss dieser Schritte schreibt Ext3 die Daten vom Journal in das Dateisystem.

Kann Ext3 einen solchen Zyklus nicht abschließen, weil jemand zum Beispiel spontan die Stromversorgung des Rechners kappt, schreibt es die Änderungen später noch einmal vom Journal auf die Platte. So gelangen keine inkonsistenten Daten auf die Festplatte. Zur Pflege des Dateisystems prüfen Distributionen wie Ubuntu und Debian regelmäßig die Konsistenz des Dateisystems. Opensuse verzichtet darauf, überprüft aber bei jedem Bootvorgang ein bestimmtes Flag. Signalisiert das ein nicht korrekt heruntergefahrenes System, startet automatisch eine Dateisystemprüfung via Fsck.

Im Zweifelsfall können Sie eine Wartung aber auch manuell erzwingen, wenn Sie nicht sicher sind, ob das Dateisystem konsistent ist. Standardmäßig hängt Ubuntu 8.10 Dateisysteme beim Auftreten eines Fehlers im Lesemodus ein. Das bewirkt die Option error=remount-ro in der Datei /etc/fstab. Unter Opensuse 11 fährt das Betriebssystem hingegen im Fehlerfall mit dem Mounten fort.

TIPP

Überprüft Ihr Linux bei jedem Booten ausführlich das Dateisystem, trägt daran nicht selten ein falscher Eintrag in der Datei /etc/fstab Schuld. Wenn sich das dort angegebene Dateisystem nicht mounten lässt, startet die Überprüfung automatisch.

Wartungszyklus

Ubuntu 8.10 überprüft das Dateisystem standardmäßig nach 32 Neustarts oder spätestens nach einem halben Jahr, falls der Rechner ständig oder sehr selten läuft. Um vorab nachzusehen, wann es wieder einmal soweit ist, öffnen Sie eine Konsole und geben mount ein. So stellen Sie erstmal fest, welche Partition Sie gerade nutzen. Auf ihr befindet sich auch das Root-Dateisystem (Listing 1). Befindet sich Ihr Home-Verzeichnis auf einer eingehängten externen Partition, verrät Ihnen der Befehl auch, wie diese heißt.

Listing 1
$ mount
/dev/sda6 on / type ext3 (rw,relatime,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
lrm on /lib/modules/2.6.24-23-generic/volatile type tmpfs (rw)
/dev/sda7 on /home/public type ext3 (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw)

Ihre Root-Partition (/) befindet sich vermutlich unter /dev/sdXN, wobei das X für einen zusätzlichen Buchstaben, das N für eine Ziffer steht. Die Partition heißt also beispielsweise sda6 oder sdb4. Wir gehen in den folgenden Beispielen davon aus, dass Ihre Root-Partition auf /dev/sda6 liegt. Geben Sie nun tune2fs -l /dev/sda6 ein, so erhalten Sie als Ausgabe die Informationen im Superblock Ihrer Festplatte (Listing 2).

Tune2fs führen Sie sowohl unter Opensuse als auch unter Ubuntu stets mit Root-Rechten aus. Das Programm gehört zu den E2fsprogs (http://e2fsprogs.sf.net), einer Sammlung von Werkzeugen, die bei der Pflege und Verwaltung des Dateisystems helfen. Das gesuchte Intervall für die Dateisystemprüfung (Check interval) zeigt Listing 2, das aber nur für Ubuntu 8.10 gilt.

Listing 2
# tune2fs -l /dev/sda6
tune2fs 1.40.8 (13-Mar-2008)
Filesystem volume name:   <none>
Last mounted on:          <not available>
[…]
Mount count:              30
Maximum mount count:      32
Last checked:             Sat Jan 31 22:36:57 2009
Check interval:           15552000 (6 months)
Next check after:         Thu Jul 30 23:36:57 2009
[…]

Das Check interval verrät, dass Ubuntu die Festplatte alle 6 Monate (der Wert davor gibt die entsprechende Sekundenzahl an) überprüft. Alternativ wartet die Distribution bis zum 32. Mountvorgang, bevor sie einen Check beginnt (Maximum mount count). Die Angabe hinter Mount count verrät, dass das Dateisystem bis jetzt 30 mal gemountet wurde (die Zahl kann bei Ihnen abweichen). Bei Opensuse lesen Sie an dieser Stelle andere Werte (Listing 3): Es gibt weder ein Prüfintervall, noch eine maximale Anzahl an Mounts, nach der Opensuse das Dateisystem überprüft.

Listing 3
[…]
Mount count:              16
Maximum mount count:      -1
Last checked:             Sat Jan 31 22:36:57 2009
Check interval:           0 (none)
[…]

Wollen Sie nun das Dateisystem beim nächsten Booten prüfen, geben Sie unter Ubuntu tune2fs -C 32 /dev/sda6 ein. Damit setzen Sie den Wert für Mount count auf 32 und erreichen so die maximale Anzahl an Mount-Vorgängen. Nach dem Neustart unterbricht Ubuntu den Bootvorgang: Unter dem Bootsplash erscheinen die folgenden zwei Zeilen, wobei YY% den Fortschritt des Konsistenzchecks zeigt.

Routine check of drives: /dev/sda6 YY%
Press ESC to skip

Mit [Esc] überspringen Sie die Prüfung bei Bedarf: Gemäß Murphy's Law treten die Routinechecks besonders gern genau dann auf, wenn Sie gerade vor vollem Saal eine Präsentation zeigen wollen.

Bei Opensuse setzen Sie zunächst über tune2fs -c 32 /dev/sda6 die maximale Mount-Anzahl auf 32 und forcieren über tune2fs -C 32 /dev/sda6 einen Check beim nächsten Booten. Opensuse 11 verzichtet dann auf den Bootsplash und zeigt den Fortschritt auf der Kommandozeile an. Mit [Strg]+[C] unterbrechen Sie den Prozess.

Reparatur

Weist das Dateisystem tatsächlich Fehler auf, kommt e2fsck zum Einsatz. Diesen Reparaturbefehl dürfen Sie nicht auf ein eingehängtes Root-Dateisystem anwenden, das Sie sonst stark beschädigen könnten. Daher booten Sie den Rechner von einer Live-CD (etwa Ihrer Opensuse- oder Ubuntu-Installations-CD/DVD). Nach dem Hochfahren öffnen Sie eine Konsole und geben folgenden Befehl ein:

$ sudo e2fsck -C0 -p -f -v /dev/sda6

Die Zeile handelt einen Großteil aller Problemfälle bei Konsistenzprüfungen ab. Dank der Option -f überprüfen Sie auch saubere und ausgehängte Dateisysteme, der Schalter -v macht das Kommando redseliger. Über den Parameter -C0 erhalten Sie einen hübschen Fortschrittsbalken für die Aktion, und -p repariert das Dateisystem automatisch und ohne Ihr weiteres Zutun (Abbildung 1).

Abbildung 1: Ein Befehl, sie alle zu prüfen: Mit einer handvoll angehängter Parameter löst E2fsck die meisten auftretenden Inkonsistenzen vollautomatisch auf.

Geben Sie zusätzlich die Option -c an, nutzt die Software das Programm badblocks, um per Read-only-Test defekte Blöcke zu identifizieren und zu markieren. Diese kommen quasi in Quarantäne: Das Dateisystem übergibt sie an einen speziellen "Bad Block Inode" und verwendet sie zukünftig nicht mehr. Der Vorgang kann sich etwas hinziehen. Geben Sie die Option -c doppelt an, erfolgt der Badblocks-Test im nicht-destruktiven Lese-/Schreibmodus (Abbildung 2).

Abbildung 2: Per Badblocks-Option identifiziert E2fsck die schlechten Blöcke auf einer Festplatte und stellt sie unter Quarantäne.

Erscheint nach dem oben genannten Befehl die Fehlermeldung Run fsck MANUALLY, müssen Sie stärkere Geschütze auffahren. Der Befehl sudo e2fsck -f -v -y /dev/sda6 legt nicht zuzuordnende Dateien und Verzeichnisse im Ordner /lost+found ab. Das bedeutet unter Umständen, dass es bereits Dateien und Ordner gibt, die sich nicht mehr im Dateisystem befinden: Sie sollten also spätestens jetzt die wichtigsten Daten sichern. Der Schalter -y sorgt dafür, dass Sie nicht jede einzelne Inode-Verschiebung per Tastendruck absegnen müssen. Da das Tool die Namen der verlorenen Dateien nicht rekonstruieren kann, durchforsten Sie lost+found anschließend am besten mit Konqueror oder Nautilus, die Sie mit Root-Rechten aufrufen. Bei der Identifikation von Dateien hilft ansonsten auch der Befehl file.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Umstieg auf das Ext3-Dateisystem
    Dateisysteme mit Journal erleichtern den Umgang mit Linux: Stürzt der Rechner ab, muss man beim Neustart nicht die langwierige Überprüfung der Dateisysteme mit "fsck" abwarten. Wir helfen bei der Umstellung auf Ext3fs und zeigen auch den Weg zurück.
  • Dateisysteme aufsetzen, konfigurieren und warten mit Bordmitteln
    Mit ein paar einfachen Shell-Befehlen legen Sie die Grundlage für jede moderne Linux-Distribution: das Dateisystem.
  • Festplatten und Dateisysteme
    Wer heute mit einem handelsüblichen Computer arbeitet, verwendet automatisch auch eine Festplatte. Wie die Dateien dort gespeichert werden und welche Möglichkeiten dabei geboten werden, weiß hingegen kaum jemand. Dieser Artikel will etwas Licht ins Dunkel bringen.
  • Dr. Linux
    Komplizierte Organismen, wie Linux-Systeme es nun einmal sind, haben so ihre ganz eigenen Wehwehchen. Dr. Linux beobachtet die Patienten in den Linux-Newsgruppen, stellt Rezepte für aktuelle Probleme aus und alternative Heilmethoden vor.
  • Integrität gespeicherter Daten sicherstellen
    Enthält die Festplatte defekte Speicherblöcke, hilft das beste Backup nichts: Es speichert dann nur fehlerhafte Dateien. Abhilfe schafft regelmäßige Kontrolle.
Kommentare

Infos zur Publikation

title_2014_10

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...