Raspbian Filesystem automatisch prüfen und reparieren

Dieser Artikel ist inzwischen weitgehend überholt, da der wesentliche Befehl bzw. die wesentliche Einstellung fsck.repair=yes inzwischen in der Steuerdatei cmdline.txt enthalten ist.

Filesystem nach Stromausfall kaputt?

Ganz schlimm ist das plötzliche Abschalten des Pi durch Stecker ziehen oder einen Stromnetzausfall. Das führt öfter zu unvollständig geschlossenen Dateien. Im schlimmsten Fall bootet der Pi dann nicht. Hier zeige ich euch, wie man ein defektes Filesystem reparieren kann.

Manuelle Reparatur mit fsck

Mit dem Kommando
fsck
kann man ein Dateisystem (engl. Filesystem) überprüfen und notfalls reparieren. Blöderweise darf das Filesystem dabei nicht gemounted sein. Also bräuchte man zumindest einen SD Kartenleser und eine zweite funktionierende Raspbian SD Karte. Mit der anderen System SD Karte wird der Pi gebootet. Mittels Kartenleser inkl. eingelegter nicht funktionierender SD Karte wird die defekte Karte dann geprüft. Das ganze ist etwas kompliziert – mir jedenfalls zu kompliziert. Anleitungen gibts im Web.

Einmalige Reparatur

Möchte man die Root Partition nur einmalig während des nächsten Bootvorgangs checken und reparieren, reicht es, im Hauptverzeichnis eine Datei mit Namen
forcefsck
anzulegen. Der dazu nötige Befehl lautet

Das funktioniert natürlich nur, wenn der Pi noch starten konnte und ich das Shell Kommando absetzen kann. Immerhin werde so noch offene Dateien wieder ordnungsgemäß geschlossen.

Automatische Reparatur

Startet der Pi überhaupt nicht, können wir folgendes versuchen: Steckt die SD Karte in einen PC – ob direkt in einen SD Kartenslot oder einen USB Kartenleser ist egal. Die /root Partition können wir damit zwar nicht ansehen, die Boot Partition hingegen schon.

Das Verzeichnis /boot der Karte bekommt im PC beim Einstecken einen Windows Laufwerksbuchstaben verpasst und kann unter Windows gelesen und beschrieben werden. Dort die Datei cmdline.txt editieren und noch den Text
fsck.repair=yes
am Ende der Zeile dranhängen. Das geht mit dem Texteditor von Windows (aber bitte nicht mit Word o.ä.) oder besser und sicherer mit einem Editor, der Linux Zeilenumbrüche beherrscht.

Die Datei cmdline.txt besteht aus einer einzigen – unter Umständen sehr langen – Zeile. Keinesfalls Zeilenumbrüche einfügen!

Die Karte wieder in den Raspi stecken und neu starten.  Beim Hochfahren aber noch vor dem Mounten wird dann jedes Mal die Root Partition automatisch geprüft und ggf. repariert. Der Bootvorgang dauert dadurch minimal länger.

Gerade bei Servern, die vielleicht auch irgendwo anders stehen oder generell headless betrieben werden,  macht so ein Eintrag Sinn.

Nachdem ich gestern meine erste SD Karte mit dem neuen Raspbian "Stretch" gebrannt habe, muss ich feststellen, dass

fsck.repair=yes
bereits standardmäßig in die cmdline.txt Datei eingetragen wird. Bei den älteren Wheezy und Jessie Versionen war das nicht so, hier nützt der Beitrag also noch etwas.

Natürlich kann es auch aus anderen Gründen zu Problemen mit der SD Karte kommen. Z.B. wenn sie verschlissen ist und einer oder mehrere Datenblöcke nicht mehr gelesen werden können. Dann hilft dieser Beitrag nur wenig, da er ja nur das Filesystem reparieren hilft – also die logische Zuordnung der einzelnen Datenblöcke, nicht aber physische Medienfehler. Wie man generell den Verschleiß einer SD Karte minimieren kann, steht in diesem Beitrag meines Blogs.

 

 

Schreibe einen Kommentar

Ich freue mich über Lob und Kritik.
Falls du Probleme mit der hier vorgestellten Anleitung hast und nicht weiter kommst:
Bitte das Problem oder die Fehlermeldung(en) möglichst genau beschreiben, auch an welcher Stelle (z.B. in welchem Node oder Befehl) und unter welchen Umständen der Fehler auftritt.
Gerne kannst du mir auch ein Mail schreiben. Die Adresse findest du im Impressum.
Ich gebe mir viel Mühe, meinen Lesern weiterzuhelfen. Je konkreter du bist, desto einfacher und schneller kann ich versuchen zu helfen.
Deine E-Mail-Adresse wird nicht veröffentlicht.
Erforderliche Felder sind mit * markiert