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:

  1. Ein Terminal öffnen

  2. Einen Editor öffnen

Inhaltsverzeichnis
  1. Wann wird ein Dateisystemcheck durchgeführ...
  2. Periodischen Dateisystemcheck für ext eins...
    1. periodische Prüfung einrichten
    2. zeitabhängige Prüfung einrichten
    3. periodische Prüfung wieder entfernen
  3. Dateisystemcheck erzwingen
    1. Bootparameter
    2. mount count ändern
    3. Zeitpunkt der letzten ändern
  4. Überprüfung immer deaktivieren
    1. über systemd
    2. in /etc/fstab
  5. Manuelle Prüfung
    1. normale Partition
    2. Dateisystemprüfung einer LUKS-verschlüss...
  6. Links

Für Dateisysteme mit Journal-Funktionalität wie ext4 (der Standard unter Ubuntu], ext3 oder XFS kann ein Dateisystemcheck durchgeführt werden, um sicherzustellen, dass das Dateisystem keine Fehler enthält. Diese Prozedur ist grob vergleichbar mit dem Systemcheck, den Windows nach einem nicht ordnungsgemäßen Beenden des Systems durchführt.

Hinweis:

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

Wann wird ein Dateisystemcheck durchgeführt?

Ab Ubuntu 12.04 führt Ubuntu standardmäßig keinen automatischen, periodischen Dateisystemcheck für Partitionen mit ext-Dateisystem durch.

Wird beim Herunterfahren / Neustart des Rechners das Dateisystem nicht sauber ausgehängt, wird das "dirty bit" gesetzt, welches eine automatische Überprüfung des Dateisystems beim nächsten Start erzwingt. Sollte die Prüfung laufen, ist es empfehlenswert, diese Durchlaufen zu lassen und nicht zu unterbrechen, um die Konsistenz des Dateisystems sicherzustellen. Will man die Prüfung nichts desto trotz abbrechen, kann man diese mit einem Druck auf Strg + C beenden.

Periodischen Dateisystemcheck für ext einstellen

Die aktuelle Einstellung kann man mit Hilfe des Programms tune2fs abfragen und ändern. Das Programm ist unter Ubuntu standardmäßig installiert. Der Befehl lautet:

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

Die Ausgabe sieht wie folgt aus:

Mount count:              259
Maximum mount count:      -1

Das Dateisystem wurde bisher 259 mal eingehängt. Die -1 in der Zeile Maximum mount count bedeutet, dass eine automatische Prüfung nach X Einhängevorgängen deaktiviert ist.

Um zu prüfen, ob ggf. eine zeitabhängige Prüfung eingerichtet ist, dient der folgenden Befehl:

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

Die Ausgabe sieht so aus:

Last checked:             Sun Dec 13 17:56:05 2020
Check interval:           0 (<none>)
Checksum type:            crc32c
Checksum:                 0x583e7585

Das Dateisystem wurde zuletzt am Sonntag den 13.12.2020 um 17.56 Uhr geprüft. Der Wert 0 in der Zeile Check interval bedeutet, dass keine zeitabhängige Prüfung eingerichtet ist.

periodische Prüfung einrichten

Um eine automatische Prüfung bei Systemstart nach X Einhängevorgängen einer Partitionen festzulegen, nutzt man den folgenden Befehl:

sudo tune2fs -c 25 /dev/sdaX 

Mit der Option -c wird der mount count festgelegt. Hier würde die Partition sdaX also bei bei jedem 25. Einhängevorgang geprüft.

Besitzt das System mehrere zu prüfenden Partitionen (z.B. eine Root- und eine Home-Partitionen) kann es gegebenenfalls sinnvoll sein, die Werte für beiden Partitionen so zu wählen, dass die Prüfung möglichst selten gleichzeitig erfolgt. Ein Grund dafür wäre, dass je nach Größe der Partition der Prüfvorgang länger dauern kann und den Systemstart entsprechend verzögert. Hier bieten sich Primzahlen als "mount count" an, um zu vermeiden, dass mehrere Prüfungen beim Systemstart zusammenfallen. Beispiel: Partition sdaX Check nach dem 43. und Partition sdaY nach dem 47. Einhängevorgängen → gemeinsame, "zeitintensive" Prüfung erst nach 2021 Einhängevorgängen.

zeitabhängige Prüfung einrichten

Um ein Zeitintervall für periodische Prüfungen festzulegen dient der folgenden Befehl:

sudo tune2fs -i 3m /dev/sdaX 

Damit würde ein Intervall von 3 Monaten festgesetzt. Statt m für Monate kann man auch d für Tage (d wie "days") oder w für Wochen angeben.

periodische Prüfung wieder entfernen

Hat man eine periodische Prüfung in Abhängigkeit von der Anzahl der Einhängevorgänge angegeben, kann man diese Prüfung mit

sudo tune2fs -c -1 /dev/sdaX 

wieder deaktivieren.

Hat meine eine periodische Prüfung in Abhängigkeit eines Zeitintervalls festgelegt, kann man diese Prüfung mit

sudo tune2fs -i 0 /dev/sdaX 

wieder deaktivieren.

Dateisystemcheck erzwingen

Es gibt mehrere Möglichkeiten, einen Dateisystemcheck zu erzwingen.

Bootparameter

Möchte man den Dateisystemcheck beim Systemstart erzwingen, trägt man die Bootoption fsck.mode=force ein.

mount count ändern

Hat man eine periodische Prüfung in Abhängigkeit von den Einhängevorgängen festgelegt, dann kann man den "mount count" manuell ändern, und zwar auf eine Zahl, die größer ist als die Anzahl der Einhängevorgänge bis zur nächsten Prüfung.

Beispiel: Man hat den "mount count" auf 25 festgesetzt. Der Befehl

sudo tune2fs -C 26 /dev/sdaX 

setzt den "mount count" manuell auf 26, d.h. beim nächsten Systemstart wird ein Dateisystemcheck durchgeführt.

Zeitpunkt der letzten ändern

Hat man eine periodische Prüfung in Form eines Zeitintervalls festgelegt, dann man man den Zeitpunkt der letzten Prüfung wie folgt ändern:

sudo tune2fs -T JJJJMMTT[HH[MM[SS] now /dev/sdaX 

JJJJMMTT ist dabei durch ein Datum im Format JahrMonatTag anzugeben, also z.B. 20211224 für den 24.12.2021. Optional können noch Stunde (HH), Minute(MM) und Sekunde (SS) angegeben werden. So würde z.B. der Befehl

sudo tune2fs -T 20201224141430 /dev/sdaX 

den Zeitpunkt der letzten Prüfung auf den 24.12.2020 um 14.15 Uhr und 30 Sekunden setzen. Setzt man den Zeitstempel des letzten Checks auf einen Zeitpunkt vor dem aktuellen Zeitpunkt minus Intervall, wird beim nächsten Start des Systems ein Dateisystemcheck ausgeführt.

Möchte man den nächsten Check verzögern, kann now als Datum / Zeit angegeben werden, welches die letzte Prüfung auf das aktuelle Datum und die aktuelle Uhrzeit setzt.

Überprüfung immer deaktivieren

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 permanente Deaktivieren der Überprüfung zu empfehlen wäre.

Es gibt zwei Wege, den Dateisystemcheck immer zu deaktivieren, also auch bei gesetztem "dirty bit".

über systemd

Die unter systemd zuständig Unit für die Dateisystemcheck ist systemd-fsck-root.service für die Root-Partition bzw. systemd-fsck@.service für alle anderen Partitionen. Deren Verhalten kann über ein Bootoption gesteuert werden.

Möchte man den Dateisystemcheck immer unter unterbinden, trägt man die Bootoption fsck.mode=skip ein.

in /etc/fstab

Man öffnet die Partitionstabelle in der Datei /etc/fstab mit einem Editor und Root-Rechten [2]. Die Datei könnte etwa so aussehen:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda7 during installation
UUID=2f2f9aed-e4db-4ddf-9078-f18314eaf136 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda2 during installation
UUID=E04C-B889  /boot/efi       vfat    umask=0077      0       1
# /home was on /dev/sda9 during installation
UUID=a43fb1f2-0d28-4fe3-9bc8-a6ec66f05683 /home           ext4    defaults        0       2
# swap was on /dev/sda6 during installation
UUID=95096c9c-64ae-4e05-9f9d-f0447efeeabf none            swap    sw              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.

Manuelle Prüfung

Man kann die Prüfung auch manuell im Terminal anstoßen, sowohl für normale als auch verschlüsselte Partitionen. Für die Prüfung darf die Partition nicht eingehängt sein, d.h. zum Prüfen der Root-Partition muss man von einem Live-System booten.

Achtung!

fsck darf niemals auf eingehängte und verschlüsselte Partitionen angewandt 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).

normale Partition

Im Terminal [1] kann das Dateisystem einer Partition mit dem folgenden Kommando überprüft werden:

fsck /dev/sdaX 

fsck ermittelt selbstständig das Dateisystem und führt dann das passende Programm wie fsck.ext4, fsck.ext3 oder fsck.xfs aus. 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. Eine Übersicht über die Optionen findet man in der jeweiligen Manpage zu den Befehlen.

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 luksOpen /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.