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“. 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.
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 für Windows: Aufgrund der Anforderungen eines Multiuser- Systems mit Rechteverwaltung erlaubt neueres Windows für die Systempartition nur noch das angestammte Dateisystem NTFS. Auf anderen Partitionen wird NTFS bei der Formatierung vorgeschlagen.

Ext4 für Linux: Linux-Systeme legen – aus ähnlichen Gründen wie Windows-NTFS – ihr angestammtes Ext4 (Ext2, Ext3) als Dateisystem nahe. Eine andere Wahl ist zwar möglich, aber eigentlich nicht zu empfehlen.

FAT32 für Datenaustausch: Bei der Formatierung externer USBDatenträger kann das alte und einfache FAT32 als kleinster gemeinsamer Nenner häufig erste Wahl sein. FAT32 kennt keine Rechteverwaltung, und jedes Windows, Linux, Mac-OS liest und beschreibt FAT32-Datenträger problemlos. Die maximale Dateigröße beträgt vier GB.

exFAT: Unter jüngerem Windows lassen sich externe Datenträger mit exFAT formatieren, das unter anderem das Dateigrößenlimit von FAT32 aufhebt. exFAT-Volumes sind aber für die meisten Nicht-Windows-Systeme nicht lesbar.

Wichtige Dateisysteme unter Linux

Name

Hersteller

Unterstützt von

Maximale Dateigröße

Maximale Partitionsgröße

Maximale Länge (Dateiname)

Metadaten

Journaling

Anmerkungen

exFAT

Microsoft

Windows (theoretisch Linux, Mac-OS)

16 EB

512 TB

255 Zeichen

nein

nein

ungeeignet als Austauschformat

Ext2

Remy Card u.a.

Linux, BSD, (Windows und Mac mit Zusatztreiber)

16 GB bis 2 TB

2 TB bis 32 TB

255 Zeichen

ja

nein

veralteter Linux-Standard

Ext3

Stephen Tweedie u. a.

Linux, BSD, (Windows und Mac mit Zusatztreiber)

16 GB bis 2 TB

2 TB bis 32 TB

255 Zeichen

ja

ja

lange Linux-Standard

Ext4

Kollektiv

Linux, (Mac-OS mit Zusatztreiber)

16 GB bis 16 TB

2TB bis 32 TB

255 Zeichen

ja

ja

aktueller Linux-Standard

BTRFS

Oracle

künftige Linuxdistributionen

16 EB

16 EB

255 Zeichen

ja

ja

evtl. künftiger Linux-Standard

JFS

IBM

Linux, OS/2

4 PB

32 PB

255 Zeichen

ja

nur Metadaten

Linux-Live-Systeme oft ohne JFS-Unterstützung

Reiser FS

Namesys (Firma des Namensgebers)

Linux, BDS, (Windows mit Zusatztreiber)

4−8 GB

16 TB

255 Zeichen

ja

ja

wird nicht weiterentwickelt

ReFS

Microsoft

Windows 8 Server, künftige Windows-Desktop-Versionen

16 EB

16 EB

255 Zeichen

ja

ja

künftiger Windows-Standard

FAT32

Microsoft

Windows, Linux, OS X

4 GB

2 TB

256 Zeichen

nein

nein

einfaches Austauschformat

NTFS

Microsoft

Windows, Linux, OS X

16 EB

16 EB

255 Zeichen

ja

ja