Bevor eine Partition benutzt werden kann, muß auf ihr zunächst ein Dateisystem angelegt werden. Unter DOS/Windows wird dieser Vorgang formatieren genannt, unter Unix heißt er korrekterweise Anlegen des Dateisystems. Der Befehl, mit dem dieser Vorgang gestartet wird ist mkfs (Make Filesystem).

Fehlerüberprüfung und Behebung im Dateisystem

Dateisysteme sind aus komplexen Zusammenhängen aufgebaut und haben für jede Veränderung eine ganze Reihe von Aktionen notwendig, bis die Veränderung tatsächlich fertiggestellt ist. Falls es während einer solchen Veränderung zu einem Systemabsturz, einem ungesicherten Stromausfall o.ä. kommt, so kann das System die anfallenden Arbeiten nicht mehr korrekt ausführen – es entstehen Inkonsistenzen im Dateisystem.

Unix-Dateisysteme sind verhältnismäßig stabil im Gegensatz zu anderen Dateisystemen, aber trotzdem natürlich nicht gefeit gegen solche Fehler. Aus diesem Grund gibt es seit dem Anfang der Unix-Dateisysteme ein Programm, das die Systeme überprüft und gegebenenfalls repariert – file system check kurz fsck

In der Regel werden die Dateisysteme beim Systemstart gecheckt, bevor sie gemountet sind. Das ist wichtig, weil das Überprüfen bereits gemounteter Systeme immer die Gefahr birgt, dass ein anderer User oder Prozess das System benutzt und verändert, während es überprüft wird. Dadurch können wieder neue Inkonsistenzen entstehen. Auch für eine manuelle Anwendung von fsck wird in den meisten Fällen das Dateisystem abgehängt und erst dann überprüft.

Eine Sonderrolle spielt in diesem Zusammenhang die Überprüfung des Wurzeldateisystems. Dieses System kann ja nicht abgehängt werden, schon aus dem Grund, dass das Programm fsck auf der Wurzelpartition gespeichert ist. Die Überprüfung und Reparatur des Wurzeldateisystems sollte daher grundsätzlich nur im Single-User Modus durchgeführt werden und evt. sollte das Dateisystem mit dem Befehl

mount -o ro,remount Gerätedatei

als Read-Only neu gemountet werden. Damit sollten alle denkbaren Fehler ausgeschlossen sein. Beim Systemstart wird daher auch zuerst das Wurzelsystem Read-Only gemountet, überprüft und erst dann wieder als Read-Write gemountet.

Die Überprüfung beim Systemstart

Jedesmal, wenn das System neu gebootet wird, werden alle Dateisysteme überprüft. In der Regel wird aber nur überprüft, ob sie sauber sind – nur wenn nicht wird die eigentliche Überprüfung gestartet. Das funktioniert aber nur bei der Verwendung des Ext2-Dateisystemtyps.

Dieser Typ hat im Superblock ein sogenanntes Valid-Flag (manchmal auch Clean-Flag genannt). Jedesmal, wenn ein Dateisystem gemountet wird, wird dieses Flag auf 0 gesetzt, erst beim ordentlichen Abhängen durch umount wird es wieder auf 1 gesetzt. Beim Systemstart überprüft das fsck-Programm also zunächst, ob dieses Flag auf 1 steht, wenn ja, so gilt das Dateisystem als sauber und wird nicht weiter überprüft (es sei denn die -f Option ist dem fsck.ext2 Programm mitgegeben).

Falls das System vorher nicht sauber heruntergefahren wurde, die Dateisysteme also das Clean-Flag nicht setzen konnten, erkennt das fsck Programm dies und überprüft die Dateisysteme.

Zusätzlich enthält der Superblock einer ext2-Partition noch einen Zähler, der beschreibt, wie oft das Dateisystem gemountet wurde, seit es das letzte Mal überprüft wurde. Nach 20 erfolgten Mounts wird das Dateisystem überprüft, auch wenn es das Clean-Flag gesetzt hat.