Filesystems

Dateisysteme - Das steckt hinter NTFS und Co.

14.09.2014 von Hermann Apfelböck
Windows, Linux oder Mac-OS: Alles, was am PC geschieht, setzt eine gespeicherte Datei voraus. Anhand von NTFS skizzieren wir, wie Betriebssysteme die Dateien verwalten.

Den meisten Platz auf Ihrer Festplatte belegen Benutzer- und Programmdateien. Diese Daten können Sie sich im Windows-Explorer oder über Anwendungsdialoge anzeigen lassen. Auf gewünschte Dateien greifen Sie über die Ordner- und Dateinamen zu. Doch was geschieht unter der Motorhaube des Betriebssystems, wenn Sie ein Verzeichnis öffnen oder eine Datei laden? Kurz: In diesem Beitrag erklären wir Ihnen die Logik des Dateisystems.

Foto: beawolf - Fotolia.com

Master File Table und Cluster

Die Tatsache, dass sich Dateien über Namen, Extensionen oder Datumsangaben aufrufen oder filtern lassen, ist ein scheinbar selbstverständlicher Systemservice. Intern erfordert das aber einigen Verwaltungsaufwand, denn das zugrunde liegende Dateisystem hat mit Namen nichts am Hut: Es verwaltet die Dateien anhand durchnummerierter Zuordnungseinheiten – Blöcke oder Cluster. Die Einteilung einer Festplattenpartition in solche Cluster erfolgt bei der Formatierung, wobei ein einzelner Cluster in der Regel die Größe von vier Kilobyte erhält. Kleinere oder größere Cluster sind optional möglich. Ebenfalls bei der Formatierung wird ein Verwaltungsregister erstellt, das künftig alle Dateien und Ordner aufnimmt. Unter Windows NT (XP, Vista, 7, 8) ist dies die versteckte Datei „$MFT“ im Root-Verzeichnis, die Master File Tabelle. Diese Mutter aller weiteren Dateien erhält vorab ein Achtel des kompletten Speicherplatzes reserviert.

Für den Benutzer stellen sich die Daten als hierarchisch strukturiert dar. Tatsächlich handelt es sich um einen Byte-Chaos, das nur durch das Master File Table und durch Zeiger auf die passenden Cluster geordnet wird. Programm, Text, Bild – alles liegt in kunterbuntem Nebeneinander auf der Platte, oft auch in Bruchstücken (Fragmenten).


Nicht einmal zwischen Ordner und Datei besteht ein fundamentaler Unterschied: Ein Ordner ist wie eine Datei auch nur ein Datensatz in der MFT, lediglich mit dem Attribut „Ordner“. Und das Ordnerattribut bedeutet nur, dass der Inhalt in der MFT (oder in zusätzlichen Clustern) lediglich aus weiteren Dateinamen besteht. Selbst der Partitionsname (Label) ist ein MFT-Datensatz und somit eine Datei.

Wenn möglich, schreibt das Dateisystem den kompletten Inhalt einer Datei oder eines Ordners direkt in das Master File Table. Da ein Datensatz in der MFT aber typischerweise nur ein KB (1024 Bytes) umfasst, gelingt dies nur bei sehr kleinen Dateien (kleiner als circa 800 Bytes) und nur bei Ordnern mit sehr wenigen Untereinträgen.

In den meisten Fällen muss der Dateiinhalt außerhalb der MFT in freien Festplatten-Clustern abgelegt werden. Der Datensatz der MFT enthält aber in jedem Fall an Byte-definierter Stelle den Dateinamen und weitere Eigenschaften wie das Erstelldatum, die Dateirechte, das Schreibschutzattribut oder das Attribut „Verschlüsselt“.

Teil eines MFT-Eintrags (vereinfacht): Das System muss den Dateiinhalt aus Clustern einsammeln. die MFT zeigt nur die Anzahl der Cluster und die Kennziffer des Start-Clusters. Bei fragmentierten Fateien notiert die MFT mehrere Cluster-Blöcke.

Suche nach Dateien und Ordnern

Nehmen wir an, Sie klicken im Explorer auf eine Datei „Rechnung_034-2014.docx“. Woher weiß das System, dass es den Inhalt dieser Datei etwa aus den Clustern 12 057, 12 058 und 12 116 zu laden hat? Und woher weiß das System, welche Dateinamen es anzeigen soll, wenn Sie im Explorer auf „Dokumente“ klicken? Anhand der kompletten Pfadangabe beginnt die Suche immer auf der obersten Ebene in der MFT. Dort findet sich der Eintrag für den ersten Ordnernamen im Pfad, in dessen Inhalt geht die Suche dann weiter zum nächsten Unterordner gemäß Pfadangabe bis hinunter zur gesuchten Datei.

Das Ansteuern von Clustern außerhalb der MFT verläuft relativ simpel anhand eines Cluster-Zeigers, wie ihn die Abbildung auf dieser Seite skizziert: Zunächst steht die Anzahl der Cluster des gesuchten Cluster- Blocks. Es kann sich um einen einzigen Cluster oder um Tausende handeln. Danach erscheint in hexadezimaler Darstellung die Nummer des ersten Clusters in diesem Block. Wenn die Datei unfragmentiert ist, also der komplette Inhalt in einer zusammenhängenden Cluster-Folge abgelegt ist, genügt es, den Start-Cluster anzuspringen und ab dort die angegebene Anzahl von Clustern einzulesen. Bei fragmentierten Dateien folgt im MFT-Datensatz ein weiterer analoger Eintrag, wieder mit Cluster-Anzahl und dem nächsten Start-Cluster.

Zur Terminierung aller Cluster-Angaben steht in der MFT am Ende immer ein „00“. Sind für einen große Ordner oder für große fragmentierte Dateien viele Cluster-Blöcke notwendig, reicht ein MFT-Datensatz (mit einem KB) für diese Infos nicht mehr aus: Dann wird ein Hauptdatensatz als solcher markiert und der Rest der Infos in weitere Datensätze geschrieben. Für jede neue Datei und jeden Ordner muss die MFT um einen Datensatz erweitert werden. Wenn nicht mehr benötigte löschmarkierte Datensätze vorhanden sind, werden zunächst diese Datensätze neu überschrieben.

Trotzdem wächst die MFT beständig, denn Löschaktionen machen zwar Platz für neue Einträge, verkleinern aber nicht mehr den Umfang der MFT.

Visualisierte Dateiblöcke: Tools wie Diskview zeigen die (Un-)Ordnung der Dateifragmente auf dem Datenträger. Einblick in die MFT bieten nur spezialisierte Diskeditoren wie Winhex.

Checkdisk und Forensik

Wenn es nach Stromausfällen oder Abstürzen zu Fehlern in der Master-Dateitabelle kommt, sind die betroffenen Daten meist irreparabel geschädigt.

Mehrere Verbesserungen gegenüber älteren Dateisystemen verringern die Gefahr solcher Datenverluste: So führen NTFS oder Ext4 ein Journal über alle Schreibvorgänge, die eine Rückkehr zum letzten konsistenten Zustand erlauben. Das jüngere Transactional NTFS (seit Windows Vista) puffert zusammengehörige Schreibvorgänge, bis sichergestellt ist, dass die komplette Aktion erfolgreich zu Ende geführt werden kann.

Wenn ein System trotzdem Inkonsistenzen feststellt und Checkdisk-Reparaturen durchführt, ist danach zwar die Dateitabelle wieder in Ordnung, die eingesammelten Fragmente in Cluster-Größe sind aber in der Regel wertlos. Es erfordert die Kenntnis und Geduld eines IT-Forensikers, aus den Byte- Mustern von Clustern binäre Dateitypen zu erkennen und die passenden Fragmente in der richtigen Reihenfolge wieder zusammenzusetzen.

Praktische Hinweise zu Dateisystemen

Dateisysteme wie NTFS, Ext4 oder FAT32 unterscheiden sich deutlich. Mit der Wahl eines Dateisystems wird die Mehrzahl der PC-Nutzer aber nur selten konfrontiert. Selbst externe USB-Festplatten sind heute meist schon vorformatiert. Trotzdem lohnt es, wesentliche Vor- und Nachteile zu kennen:

NTFS

Dieser Artikel basiert auf einem Beitrag der PC-Welt. (mhr)