ubuntuusers.de

Dateisystemcheck

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Partitions-Überprüfung

Wenn für die Partitionen von Ubuntu das Dateisystem ext3 oder ext4 verwendet wird, überprüft das System bei jedem 30. Start oder nach Ablauf eines bestimmten Zeitraums diese Partitionen automatisch, um sicherzustellen, dass sie keine Fehler enthalten. Diese Prozedur ist grob vergleichbar mit dem Systemcheck, den Windows nach einem nicht ordnungsgemäßen Beenden des Systems durchführt, erfolgt aber im Gegensatz auch ohne Systemabsturz (d.h. rein prophylaktisch). Für Partitionen, die nicht automatisch gemountet werden, wie Wechselmedien und verschlüsselte Partitionen (LUKS, VeraCrypt bzw. TrueCrypt), muss z. B. der – mit Vorsicht zu genießende – Befehl fsck manuell verwendet werden. Auch GParted enthält eine Check-Funktion.

Hinweis:

Im Folgenden muss das X in /dev/sdaX jeweils durch die korrekte Zahl ersetzt werden. Weitere Informationen liefert der Artikel Datenträger.

"mount count" anzeigen/ändern

Um feststellen zu können, wann die nächste Überprüfung ansteht, speichert das System den "mount count" im Dateisystem, also die Anzahl der Startvorgänge, die seit der letzten Überprüfung durchgeführt wurden. Anzeigen lässt sich dieser "mount count" mit folgender Eingabe [1]

sudo dumpe2fs -h /dev/sdaX | grep -i "mount count" 

oder alternativ:

sudo tune2fs -l /dev/sdaX | grep -i "mount count" 

Man erhält eine Ausgabe wie

dumpe2fs 1.40.2 (12-Jul-2007)
Mount count:              17
Maximum mount count:      30

Die Partition wurde also bereits 17 Mal eingebunden (siehe mount), und beim 30. Mal wird die Überprüfung durchgeführt werden. Es verbleiben also noch 13 Starts bis zum nächsten Dateisystemcheck. Nach der Überprüfung wird der Zähler automatisch auf 0 gesetzt.

Hinweis:

Seit Ubuntu 13.10 ist bei ext4-Partitionen standardmäßig "Maximum mount count: -1" gesetzt. Für Details siehe den Thread im Opensuse Forum 🇬🇧.

Will man den "mount count" manuell ändern, so kann man dies mit dem Befehl:

sudo tune2fs -C 20 /dev/sdaX 

tun, wobei 20 der neue Zählerstand ist. Natürlich kann man auch andere Zahlen eintragen. Zum Beispiel kann man beim nächsten Start eine Überprüfung erzwingen, indem man einen "mount count" angibt, der höher als der "maximal mount count" ist. Dies funktioniert übrigens auch mit dem ext2-Dateisystem.

Überprüfungs-Rhythmus ändern

Um den Wert für den Abstand der Überprüfung ("maximal mount count") zu ändern, gibt man den folgenden Befehl in einem Terminal [1] ein:

sudo tune2fs -c 60 /dev/sdaX 

Der obige Befehl stellt nun den Zeitpunkt der Überprüfung von jedem 30. Systemstart auf jeden 60. Start um. Natürlich kann auch jede beliebige andere Zahl verwendet werden.

Außerdem macht es Sinn, die Überprüfung zu unterschiedlichen Zeiten durchzuführen, also nicht alle Partitionen bei einem Systemstart. Dazu setzt man wie oben beschrieben für jede ext3/4-Partition einen anderen "mount count". Nun werden die Partitionen zu unterschiedlichen Zeitpunkten überprüft. Dadurch beschleunigt sich der Systemstart, da immer nur eine Partition überprüft wird.

Hier bieten sich Primzahlen an, um zu vermeiden, dass mehrere Prüfungen beim Systemstart zusammenfallen. Beispiel: Partition I Check nach dem 43. und Partition II nach dem 47. mount = gemeinsame, "zeitintensive" Prüfung erst nach 2021 mounts; zum Vergleich Partition I nach dem 20. und Partition II nach dem 50. = 100 mounts). Es reichen auch teilerfremde Zahlen, z.B. 39 und 45. Primzahlen:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 ...

Überprüfung nach Zeitintervall

Neben dem "mount count" wird auch noch gespeichert, wann das Dateisystem das letzte Mal eingebunden wurde und wann es das letzte Mal überprüft wurde. Wenn eine gewisse Zeit (standardmäßig 180 Tage/6 Monate) vergangen ist, ohne dass das Dateisystem überprüft wurde, löst auch dies eine automatische Prüfung aus. So kann es sein, dass das Dateisystem automatisch überprüft wird, bevor der "mount count" sein erlaubtes Maximum erreicht. Der "mount count" wird dabei auch auf 0 zurückgesetzt.

Man hat hier ähnliche Möglichkeiten, dies anzeigen bzw. ändern zu lassen, wie beim "mount count". Letzte Prüfung, Zeitintervall und nächste geplante Prüfung kann man so anzeigen lassen:

sudo tune2fs -l /dev/sdaX | grep -i "check" 

Die Ausgabe sieht etwa so aus:

Last checked:             Sun Sep 25 18:52:54 2011
Check interval:           15552000 (6 months)
Next check after:         Fri Mar 23 17:52:54 2012

Das Dateisystem wurde also zuletzt am 25.9.2011 überprüft und die nächste Prüfung ist für den 23.3.2012, 6 Monate später, geplant. Der Zeitpunkt der letzten Prüfung kann so geändert werden:

sudo tune2fs -T now /dev/sdaX 

Statt now kann die Zeit auch in folgendem Format angegeben werden:

JJJJMMTT[SS[MM[SS]]]
steht für: Jahr-Monat-Tag-[Stunde-[Minute-[Sekunde]]]

Die Angaben in eckigen Klammern sind optional. Beispiel für den 13.10.2011 um 23:09 Uhr:

sudo tune2fs -T 201110132309 /dev/sdaX 

Man kann auch das Zeitintervall zwischen den Prüfungen ändern. So kann man beispielsweise angeben, dass die Überprüfung schon nach 3 Monaten stattfinden soll:

sudo tune2fs -i 3m /dev/sdaX 

Statt m für Monate kann man auch d für Tage (days) oder w für Wochen angeben.

Überprüfung abschalten

Achtung!

Die Überprüfung des Dateisystems kann zwar nervig sein, schützt aber vor inkonsistenten Dateisystemen und hält damit u.a. auch das System intakt. Es gibt so gut wie keine Szenarien, bei denen das Deaktivieren der Überprüfung zu empfehlen wäre.

Will man die Überprüfung komplett abstellen, so muss man eine Option in der Partitionstabelle in der Datei /etc/fstab bearbeiten. Dazu öffnet man die Datei mit einem Editor und Root-Rechten [2]. Die Datei könnte etwa so aussehen:

# /etc/fstab: static file system information.
#
# <file system> <mount point>  <type> <options>                         <dump> <pass>
proc            /proc          proc   defaults                          0      0
/dev/sdb1       /              ext3   defaults,errors=remount-ro        0      1
/dev/sdb5       /home          ext3   defaults                          0      2
/dev/sda1       /mnt/Windows   ntfs   noauto,ro,exec,utf8,uid=1000      0      0
/dev/sda5       /mnt/Daten     vfat   auto,rw,exec,user,utf8,uid=1000   0      0
/dev/sda6       /mnt/Musik     vfat   auto,rw,exec,user,utf8,uid=1000   0      0

Hier sucht man nun die Partition, für die man die Überprüfung abstellen will und ändert die letzte Zahl in der Spalte <pass> in eine 0 ab. Nun noch speichern und fertig. Ab sofort wird keine Überprüfung mehr durchgeführt.

Fehler sollen automatisch korrigiert werden

Nach dem Wechsel zu systemd können Kernelstartparameter übergeben werden in dem man in GRUB zusätzliche Bootoptionen hinzufügt. Siehe auch Bootoptionen.

Für eine Automatische Korrektur von Dateisystemfehlern startet man einen Editor mit Root-Rechten [2] und öffnet die Datei /etc/default/grub und fügt in der Zeile GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" die Option fsck.repair=preen ein. Die Zeile könnte danach also so aussehen:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash fsck.repair=preen"

Nach erfolgreichen Speichern muss Grub noch erneuert werden:

sudo update-grub 

Sollte bei der Dateisystemüberprüfung beim Start des Systems ein Fehler festgestellt werden wird dieser jetzt automatisch korrigiert soweit möglich.

Für weitere Informationen siehe auch

man systemd-fsck 

Manuelle Prüfung

Prüfung beim Systemstart

Um alle ext3-/ext4-Partitionen beim nächstem Start zu prüfen, hilft folgender Befehl:

sudo touch /forcefsck 

Nach dem Start wird /forcefsck gelöscht, sodass die Überprüfung nur einmal stattfindet und der "mount count" wieder zurückgesetzt wird.

Prüfung in der Konsole

Achtung!

fsck darf niemals auf eingehängte oder verschlüsselte Partitionen angewandt werden. Eingehängte Partitionen müssen zunächst ausgehängt werden, ist das nicht möglich, kann ein Live-System (z.B. Knoppix) gebootet- und von dort aus geprüft werden. Verschlüsselte Partitionen müssen entschlüsselt werden ohne sie einzuhängen, anschließend kann fsck auf die zugewiesene Gerätedatei im Device Mapper angewandt werden (siehe Dateisystemprüfung einer LUKS-verschlüsselten Partition).

Im Terminal [1] (vom installierten System oder von einer Live-CD aus gestartet) können Dateisysteme mit dem folgenden Kommando überprüft werden:

fsck /dev/sdaX 

wobei X durch die Bezeichnung der betreffenden Partition zu ersetzen ist (a steht für die 1. Festplatte). Ist man sich nicht sicher, welche Partition betroffen ist, hilft der Befehl blkid weiter. Hierbei werden zunächst keine Reparaturen vorgenommen oder es erfolgt zumindest für jeden Reparaturschritt eine Rückfrage.

Verschiedene Dateisysteme können gezielt mit Kommandos wie fsck.ext4, fsck.ext3 oder fsck.reiserfs getestet werden. Für die eigentliche oder auch automatische Reparatur müssen je nach Dateisystemtyp Optionen hinzugefügt werden. Welche dies sind, wird beim Ergebnis der Überprüfung angezeigt. Der Test kann dann mit diesen Optionen wiederholt werden.

Experten-Info:

Auskunft über alle möglichen Optionen liefern die englischen Anleitungen, die z.B. mit

man fsck.ext4 

oder über die grafische Onlinehilfe aufgerufen werden können.

Konkretes Praxis-Beispiel: Pflicht-Überprüfung für die Haupt-Partition (die beispielsweise sda1 heißt und vom Typ ext4 ist). Man startet den Rechner mit der Ubuntu-CD, Knoppix oder einer anderen Live-CD und kann nun die Haupt-Partition in Ordnung bringen, denn die Partition darf nicht gemountet sein.

sudo fsck.ext4 -v -f -c /dev/sda1 

Wenn sehr viele Fragen mit j beantwortet werden müssen, kann man mit Strg + C abbrechen und den Befehl mit dem zusätzlichen Parameter -y noch einmal starten.

Dateisystemprüfung einer LUKS-verschlüsselten Partition

Für die Prüfung darf die Partition nicht eingehängt sein! Dies kann bei einer externen Festplatte z.B. dadurch erreicht werden, dass die Festplatte angeschlossen wird, dann in der Passwortabfrage aber auf "Abbrechen" geklickt wird. Mit folgendem Befehl kann die Partition nun entschlüsselt werden, ohne sie einzuhängen:

sudo cryptsetup open /dev/sdb1 lukstemp 

Die Passphrase zum Entschlüsseln wird abgefragt. Nun kann man mit

sudo fsck.ext4 -pfv -C0 /dev/mapper/NameDesLogischenVolumes 

die Überprüfung mit automatischer Reparatur starten. Wurde der Name des logischen Volumens vergessen, können diese mit

sudo lvs  

angezeigt werden. Mit

sudo cryptsetup close lukstemp 

wird die entschlüsselte Partition wieder geschlossen.

Diese Revision wurde am 12. Januar 2020 01:11 von Helferlein erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Server, System