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:

Dieser Artikel beschreibt für unter Ubuntu übliche Typen von Dateisystemen[3] wie beispielsweise ext2/3/4 oder XFS die beim Systemstart erfolgende automatische Überprüfung auf interne Fehler und ggf. Reparatur gefundener Fehler. Für bei Windows übliche Typen siehe Artikel: Windows-Partitionen unter Linux

Für Dateisysteme des Typs ext4 (Standard unter Ubuntu], ext3 oder XFS kann ein Dateisystemcheck durchgeführt werden, um sicherzustellen, dass das Dateisystem keine Fehler enthält. Diese Prozedur ähnelt dem Systemcheck, den Windows nach einem nicht ordnungsgemäßen Beenden des Systems durchführt.

Dieser Artikel legt den Fokus auf die reine Diagnose eines defekten Dateisystems. Die wichtigen Aspekte, wie man ein defektes Dateisystem heilen kann werden nicht hier, sondern anderen Stellen thematisiert:

Hinweis:

Im folgenden Text wird zur Identifizierung des zu prüfenden Dateisystems stets die Gerätedatei /dev/sda99 verwendet. Diese Angabe ist jeweils durch die im Einzelfall zutreffende Bezeichnung zu ersetzen. Die kann auch ganz anders lauten, z.B. /dev/nvme9n1p99, wenn es sich um eine NVME-SSD handelt. Weitere Informationen liefert der Artikel Datenträger.

Experten-Info:

Wenn das Dateisystem nicht direkt auf der Hardware, sondern in einer regulären Datei in einem anderen Dateisystem abgelegt ist, kann man die meisten Befehle aus diesem Artikel trotzdem anwenden. Man muss dann eben nur statt einer Gerätedatei die reguläre Datei angeben.

Man kann auch, z.B. wenn in einem Image eines Datenträgers mehrere Partitionen existieren, sich mit dem Befehl losetup für die Datei oder einen Teil aus der Datei eine Gerätedatei wie /dev/loop99 erstellen und diese verwenden.

Wann wird ein Dateisystemcheck durchgeführt?

Ab Ubuntu 12.04 führt Ubuntu standardmäßig keinen automatischen periodischen Dateisystemcheck mehr durch. Man kann aber mit den in diesem Artikel beschriebenen Methoden einen periodischen Dateisystemcheck konfigurieren.

Wird, z.B. beim Herunterfahren des Rechners, das Dateisystem[3] nicht sauber ausgehängt, wird das "dirty bit" gesetzt, welches eine automatische Überprüfung des Dateisystems bei der nächsten Einbindung, z.B. beim Neustart, erzwingt. Dieser Mechanismus ist bei Ubuntu standardmäßig immer aktiviert. Eine laufende Prüfung sollte man Durchlaufen lassen und nicht durch einem Druck auf Strg + C abbrechen.

Für manche Dateisysteme, jedenfalls bei ext, kann man im Dateisystem selbst einstellen, wann automatisch periodisch ein Dateisystemcheck durchgeführt wird. Möglich sind, auch in Kombination, automatische Checks nach einer bestimmten Anzahl von Einbindungen und nach Ablauf einer Zeitperiode.

⚓︎ Bei allen Dateisystemen, welche über die Datei /etc/fstab beim Systemstart automatisch eingebunden werden, kann man als Systemverwalter[4] mit einem Editor[2] in eben dieser Datei im 6. Feld (pass) durch Eintrag von 1 oder 2 festlegen, dass dieses Dateisystem regelmäßig geprüft werden soll. Ein Eintrag von 0 oder auch ein fehlender Wert verhindert dies.

Automatik

Generell muss in der Datei fstab die Überprüfung angefordert werden, wie vorstehend beschrieben.

Zusätzlich müssen im Dateisystem spezielle Parameter konfiguriert werden, dabei hängen die Details ab vom Typ des Dateisystems, wie anschließend beschrieben.

Konfiguration für ext

Die aktuelle Einstellung kann man auf einer Kommandozeile[1] mit Hilfe des Programms tune2fs abfragen und ändern. Das Programm ist unter Ubuntu standardmäßig installiert und benötigt erweitere Rechte[3].

Achtung!

Mit dem Programm tune2fs kann man die Funktionsweise seines Dateisystems erheblich ändern und es bei ungeschickter Anwendung auch zerstören.

Tabelle 1: Ausgewählte Optionen für tune2fs
Option Erklärung
-l Listet alle Einstellungen für dieses Dateisystem auf.
-c -1
-c 0
Deaktiviert die automatische Prüfung nach einer Anzahl von Einhängungen.
-c N N steht für eine positive ganze Zahl für den Wert des Parameters max-mount-count (Anzeige: "Maximum mount counts"). Die Prüfung erfolgt zukünftig automatisch bei der N-ten Einhängung.
-c random Wie vorstehend, der Wert N wird aber einmalig zufällig aus dem Bereich 20 bis 40 gewählt.
-i 0 Deaktiviert die automatische Prüfung nach Zeitablauf.
-i PERIODE Aktiviert die automatische Prüfung nach Zeitablauf. PERIODE ist eine positive ganze Zahl mit einem angehängten Buchstaben d (für Tage), w (für Wochen) oder m (für Monate) für den Parameter interval-between-checks.
-C M Verfälscht den Wert des Parameters mount-count (Anzeige: "Mount count") durch Setzen auf M, eine positive ganze Zahl. Dieser Parameter zählt normalerweise die Einhängungen ohne Prüfung und wird nach einer Prüfung auf 0 gesetzt.
-T Z Verfälscht den Wert des Parameters time-last-checked (Anzeige: "Last checked") durch Setzen auf Z, eine Ziffernfolge mit den Werten für Jahr, Monat, Tag, Stunde, Minute, Sekunde ohne Trennzeichen, z.B 2025022318 für den 23.2.2025 um 18 Uhr.

Die für diesen Artikel relevanten Parameter im Dateisystem sind:

  • Mount count: Anzahl der tatsächlich vollzogenen Einbindungen dieses Dateisystems, sofern man diese Zahl niemals selbst gesetzt hat.

  • Maximum mount count: Anzahl der Einbindungen, bei denen kein automatischer Dateisystemcheck erfolgt.

  • Last checked: Zeitpunkt der letzten tatsächlich durchgeführten Prüfung, unabhängig von deren Auslösegrund, sofern man diese Angabe niemals selbst gesetzt hat.

  • Check interval: Maximal zulässiger Zeitraum ohne Prüfung.

Man kann die aus der Ausgabe von "tune2fs -l" heraus filtern:

sudo tune2fs -l /dev/sda99 | grep -e 'ount count' -e interval -e checked 

Beispielausgabe:

Mount count:              212
Maximum mount count:      -1
Last checked:             Sun Oct  6 09:22:21 2019
Check interval:           0 (<none>)

Wenn man

  • 0 < max-mount-count ≤ mount-count oder

  • 0 < interval-between-checks ≤ jetzt - time-last-checked

einstellt, erfolgt bei der nächsten Einbindung eine Prüfung.

Prüfung nach Anzahl Einhängungen

  • Abfrage:

    sudo tune2fs -l /dev/sda99 | grep 'ount count' 

    Die -1 in der Zeile "Maximum mount count" bedeutet, dass eine automatische Prüfung nach einer bestimmten Anzahl von Einhängungen deaktiviert ist.

  • Mit der Option -cN kann man die automatische Prüfung bei Systemstart nach N (hier beispielhaft 25) Einhängungen aktivieren:

    sudo tune2fs -c 25 /dev/sda99 
  • Wieder deaktivieren kann man die automatische Prüfung durch Angabe von -1 oder 0 für die Anzahl:

    sudo tune2fs -c -1 /dev/sda99 

Zeitabhängige Prüfung

  • Abfrage:

    sudo tune2fs -l /dev/sda99 | grep -e interval -e checked 

    Der Wert 0 in der Zeile Check interval bedeutet, dass keine zeitabhängige Prüfung eingerichtet ist.

  • Zur Festlegung eines Zeitintervalls dient die Option -i:

    sudo tune2fs sudo tune2fs -i 3m /dev/sda99 

    Damit würde im Beispiel ein Intervall von 3 Monaten festgesetzt.

  • Zur Deaktivierung gibt man als Periode 0 an:

    sudo tune2fs sudo tune2fs -i 0 /dev/sda99 

Konfiguration für Windows-Dateisystem

Bei Dateisystemen der Typen FAT und exFAT kann zwar in der Datei fstab eine automatische Prüfung angefordert werden, jedoch fehlen den Dateisystemen Parameter zur Steuerung; daher kann über diesen Mechanismus keine automatische Prüfung erfolgen. → Spezielle Artikel zu Windows-Dateisystemen

Bei Dateisystemen vom Typ NTFS ist grundsätzlich eine ähnliche Behandlung wie oben für ext beschrieben möglich, siehe dazu die speziellen Artikel über dieses Dateisystem.

Konfiguration für XFS, Btrfs u.a.

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung:

Periodische Prüfung einrichten

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 max-mount-count an, um zu vermeiden, dass mehrere Prüfungen beim Systemstart zusammenfallen. Beispiel: Partition sda99 Check nach dem 43. und Partition sda66 nach dem 47. Einhängevorgängen → gemeinsame, „zeitintensive“ Prüfung erst nach 2021 Einhängevorgängen.

Automatik übersteuern

Bei eingerichteter Automatik besteht gelegentlich der Wunsch, diese zu beeinflussen, beispielsweise sie einmalig oder dauerhaft auszuschalten oder eine beim nächsten Start anstehende Prüfung zu überspringen oder auch eine Prüfung zu erzwingen.

Die Automatik wird realisiert durch Units aus der Familie systemd-fsck, die systemd beim Systemstart automatisch nach den Angaben in der Datei fstab einrichtet. Diese Units und damit die Automatik kann man beeinflussen über die Parameter fsck.mode und fsck.repair für die Kommandozeile des Kernels lt. Tabelle 2.

Tabelle 2: Startparameter für systemd-fsck
Parameter Erklärung
fsck.mode=auto Vorgabe. Die Automatik entscheidet, ob geprüft wird oder nicht.
fsck.mode=force Es erfolgen Prüfungen unabhängig von der Automatik.
fsck.mode=skip Es erfolgen keinerlei Prüfungen.
fsck.repair=preen Vorgabe. Wenn bei einer Prüfung Fehler gefunden wurden, die automatisch korrigierbar sind, dann werden sie auch korrigiert.
fsck.repair=yes Wenn bei einer Prüfung Fehler gefunden wurden, dann erfolgt ein Reparaturlauf durch fsck. Dabei werden alle Fragen von fsck mit "yes" beantwortet.
fsck.repair=no Wenn bei einer Prüfung Fehler gefunden wurden, dann erfolgt ein Reparaturlauf durch fsck. Dabei werden alle Fragen von fsck mit "no" beantwortet.

Check erzwingen

  • Wenn einmal bei eingerichteter Automatik ein Dateisystemcheck außer der Reihe erforderlich sein sollte, kann man bei einer nicht lebenswichtigen Partition manuell einen solchen ausführen.

  • Bei einer lebenswichtigen Partition, die z.B. das Root-Dateisystem enthält, kann man ein Wartungssystem z.B. von DVD oder USB-Stick mit anderem Root-Dateisystem booten. In diesem ist das zu prüfende Dateisystem nicht lebenswichtig und kann daher wie vorstehend behandelt werden.

  • Man kann auch neu booten und dabei in GRUB 2 den Starteintrag editieren, indem man den Startparametern die Option fsck.mode=force hinzufügt. Dies betrifft dann allerdings nicht selektiv ein Dateisystem, sondern alle.

  • Man kann selektiv für ein Dateisystem einen Dateisystemcheck beim nächsten Neustart erzwingen, indem man die maximale Anzahl von Einbindungen auf 1 setzt. Bei Dateisystemen vom Typ ext geht das wie oben beschrieben (natürlich mit dem Wert 1 anstatt 25). Nach dem Neustart setzt man den Wert wieder auf den früheren, den man sich gemerkt hat.

⚓︎ Da letztlich die Auslösung eines Checks auf einem Vergleich der Werte im Dateisystem für max-mount-count und mount-count bzw. interval-between-checks und time-last-checked beruht, kann man auch mount-count bzw. time-last-checked ändern, um die Bedingung zur Auslösung eines Checks zu erfüllen. Man sollte dies nicht tun, da der Aufwand dafür nicht geringer als bei den vorstehend beschriebenen Methoden ist, man aber Information zum Dateisystem verliert.

Check einmalig verhindern

  • Einen „drohenden“ Dateisystemcheck kann man beim Neustart verhindern: Dazu ändert man in GRUB 2 den Starteintrag, indem man den Startparametern die Option fsck.mode=skip hinzufügt. Dies betrifft dann allerdings nicht selektiv ein Dateisystem, sondern alle.

  • Man kann auch vor dem Neustart im Dateisystem die Werte der Parameter max-mount-count und interval-between-checks beide auf 0 setzt. Bei Dateisystemen vom Typ ext geht das wie oben beschrieben. Nach dem Neustart setzt man die Werte wieder auf die früheren, die man sich gemerkt hat.

Auch hier führen grundsätzlich Änderungen der Werte für mount-count bzw. time-last-checked zum Ziel, sind aber wie vorstehend beschrieben nicht sinnvoll.

Check dauerhaft ausschalten

Achtung!

Dateisystemchecks beim Neustart mag man zwar als nervig empfinden, sie schützen aber vor inkonsistenten Dateisystemen und halten das System intakt. Ihre permanente Deaktivierung ist nur dann zu empfehlen, wenn eine regelmäßige Überprüfung durch andere Maßnahmen sichergestellt wird.

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

  • Man kann selektiv für ein Dateisystem dauerhaft die Checks deaktivieren, indem man in der Datei fstab die Automatik entfernt.

  • Man kann für alle Dateisysteme dauerhaft die Checks deaktivieren, indem man die Bootoption fsck.mode=skip in die Standard-Bootoptionen aufnimmt. Bei Verwendung des Bootmanagers GRUB 2 (Standard bei Ubuntu) editiert[2] man hierzu die Datei /etc/default/grub mit erweiterten Rechten[4] und generiert die Startdatei für GRUB neu.

Manuelle Prüfung

Man kann die Prüfung auch sowohl für normale als auch verschlüsselte Partitionen manuell im Terminal[1] anstoßen.

Hinweis:

Generell sollte während der Prüfung die Partition nicht eingehängt sein, obwohl manche Typen von Dateisystemen das erlauben. Unter bestimmten Betriebsumständen, z.B. bei der Root-Partition oder einer verschlüsselten Partition, muss sogar diese unabhängig vom Typ während der Prüfung ausgehängt sein; d.h. zum Prüfen der Root-Partition muss man in ein Wartungssystem booten.

Die Prüfung und ggf. anschließende Reparatur erfolgt mit dem allgemeinen Befehl fsck, der zu jeder Standardinstallation gehört. Die verschiedenen Dateisysteme[3] bringen spezielle Prüfroutinen mit, beispielsweise fsck.ext4 für ext4, die von fsck automatisch aufgerufen werden, sofern es den Typ des zu prüfenden Dateisystems selbst erkennen kann. Es gibt daher beim Aufruf von fsck sowohl einige allgemein gültige Optionen, aber auch viele vom Typ des zu prüfenden Dateisystems abhängige spezielle und unterschiedlich benannte Optionen, über die man sich in der jeweiligen Manpage informieren sollte.

Zum Aufruf von fsck und fsck.* benötigt man erweiterte Rechte[4].

Normale Partition

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

sudo fsck /dev/sda99 

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.

Verschlüsselte Partition

Achtung!

Eine verschlüsselte Partition darf man niemals mit fsck bearbeiten!

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.

Die Anforderung, dass die mit LUKS verschlüsselte Partition nicht automatisch eingehängt wird, kann man bei einer externen Festplatte z.B. dadurch erreichen, indem man bei der Passwortabfrage auf "Abbrechen" klickt.

  1. Folgender Befehl entschlüsselt die Partition, ohne sie einzuhängen:

    sudo cryptsetup luksOpen /dev/sda99 lukstemp 

    Die Passphrase zum Entschlüsseln wird abgefragt.

  2. Die weitere Vorgehensweise hängt davon ab, ob man im verschlüsselten Bereich direkt nur ein einziges Dateisystem angelegt hat oder den Bereich mit LVM unterteilt hat.

    • Wurde der Name des logischen Volumens vergessen, lässt man sich diese anzeigen:

      sudo lvs 
    • Arbeitet man ohne LVM, dann ist im nächsten Befehl anstelle „NameDesLogischenVolumes“ einfach lukstemp zu verwenden.

  3. Nun kann man mit

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

    die Überprüfung mit automatischer Reparatur starten. Der Befehl funktioniert so nur für ein Dateisystem vom Typ ext4 – in anderen Fällen muss man sowohl ext4 als auch die Optionen anpassen.

  4. Entschlüsselte Partition wieder verschließen:

    sudo cryptsetup close lukstemp 

Interne Artikel

Spezielle Artikel zu Windows-Dateisystemen

Externe Verweise

Diese Revision wurde am 8. März 2025 09:36 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Dateisystem, ausbaufaehig