Vor kurzem wurde der Code für das Journaling Filesystem Ext3fs fest in die offiziellen Kernel-Sourcen übernommen - ein Grund mehr, den Nachfolger vom Ext2fs etwas genauer unter die Lupe zu nehmen. Bevor wir uns mit Ext3fs genauer beschäftigen, soll zunächst geklärt werden, welche Bedeutung Dateisysteme haben und welche Probleme auftreten können.
Arbeitsweise
Als Dateisystem wird ein Standard bezeichnet, der angibt, wie Daten auf einem Datenträger abgelegt und später wieder gefunden werden können. Die Frage ist dabei, wie die Speicherung technisch realisiert wird, wie dem Computer also gesagt wird, dass an einer bestimmten Position auf dem Datenträger eine bestimmte Datei liegt.
Linux' bisheriges Standard-Dateisystem Ext2fs besteht im Inneren aus einer Struktur aus "Metadaten"; diese beinhalten neben dem Superblock, welcher Informationen über freien Speicherplatz auf dem Datenträger bereithält, auch die sogenannten "Inodes", die Eigenschaften (Zugriffsrechte, Datei-Attribute, Eigentümer usw.) der einzelnen Dateien im System speichern. In den "Inodes" wird auch der physikalische Ort jeder Datei auf einem Laufwerk gespeichert. So wird ein Überschreiben von Daten verhindert. Ein Dateisystem erlaubt es also, den verfügbaren Speicherplatz eines Datenträgers logisch zu verwalten.
Probleme
Wenn ein Dateisystem unsachgemäß behandelt wird, endet dies häufig in Beschädigungen der Daten ("Daten-Korruption"). Hier unterscheidet man zwischen zwei Typen:
- Beschädigung von einzelnen Dateien im System
- Beschädigung der Metadaten Beschädigungen an Dateien im System können z. B. entstehen, wenn ein Benutzer an einem Dokument arbeitet und unerwartet der Strom ausfällt. Wurde das Dokument vorher nicht gespeichert, gehen die letzten Änderungen verloren; ansonsten gibt es jedoch keine Auswirkungen. Ein Problem kann aber dann entstehen, wenn der Strom genau in dem Moment ausfällt, in dem die Datei geschrieben wird: Das Dateisystem befindet sich in einem "undefinierten" Zustand. Die Datei ist nur unvollständig gespeichert worden und ist damit möglicherweise gar nicht mehr lesbar.
Wirklich gefährlich wird es erst, wenn bei einem Absturz neben einzelnen Dateien auch die Metadaten des Dateisystems beschädigt werden. Der Benutzer kommt mit den Metadaten zwar normalerweise nicht direkt in Kontakt - sie werden nur von Programmen wie chown und chmod verändert. Dennoch kann eine Beschädigung der Metadaten fatale Folgen haben - im schlimmsten Falle können (System-) Programme mit den gefundenen Daten nichts mehr anfangen, so dass das gesamte System unbenutzbar wird.
Um Daten-Korruption vorzubeugen oder bereits beschädigte Daten zu reparieren, bringt jedes Dateisystem ein Check-Tool (fsck, "filesystem check") mit sich (siehe Tabelle "Dateisysteme und ihre Check-Tools"). Dieses wird vor jedem Mountender Partition gestartet, um Fehler aufzuspüren und zu beheben.
Dateisysteme und ihre Check-Tools
| Ext2fs | e2fsck oder fsck.ext2 |
| Ext3fs | fsck.ext2 oder fsck.ext3 |
| ReiserFS | reiserfsck |
| XFS | xfs_repair |
| JFS | fsck.jfs |
Dateisystem-Check mit e2fsck
# e2fsck -f /dev/sda6 e2fsck 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sda6: 14624/128768 files (5.1% non-contiguous), 67124/257032 blocks



