Die Dateisysteme von Windows

basic concepts of varios file systems of windows

Wie im Artikel über die Grundlagen von Dateisystemen erläutert, neigen Betriebssysteme dazu, die Liste der Dateisysteme, mit denen sie kompatibel sind, einzuschränken. Und im Fall der Microsoft Windows-Familie wird normalerweise zwischen zwei großen Dateisystemtypen gewählt: NTFS, das primäre Format, das die meisten modernen Versionen dieses Betriebssystems standardmäßig verwenden, und FAT, das vom alten MS-DOS geerbt wurde und exFAT als seine spätere Erweiterung hat. ReFS wurde auch von Microsoft als Format der neuen Generation für Server-Computer ab Windows Server 2012 eingeführt. HPFS, das von Microsoft zusammen mit IBM entwickelt wurde, ist nur auf sehr alten Maschinen mit Windows NT bis 3.5 zu finden. Lesen Sie weiter, um mehr über diese Formate zu erfahren und herauszufinden, wie sie im Vergleich zueinander stehen.


FAT/FAT32, exFAT

FAT (Akronym für File Allocation Table, englisch für Dateizuordnungstabelle) ist einer der einfachsten Dateisystemtypen, der seit den 1980er Jahren existiert und seine Wurzeln auf das alte MS-DOS-Betriebssystem von Microsoft zurückführt. Daher überrascht es nicht, dass FAT ursprünglich für Speicher mit geringer Kapazität entwickelt wurde.

Wie der Name schon sagt, basiert dieses Dateisystem tatsächlich auf einer Tabelle, die als Index für seinen Inhalt dient. Die gesamte Struktur Dateisystems ist in drei separate Bereiche angeordnet:

  • Der Bootsektor;

  • Die File Allocation Table (FAT);

  • Der Datenspeicherbereich.

Der Bootsektor ist der allererste Sektor in jeder mit FAT formatierten Partition, der wichtige Informationen über seine Organisation enthält.

Als Nächstes folgt die primäre File Allocation Table (FAT) sowie ihre Sicherungskopie, auf die zugegriffen werden kann, wenn beim Lesen des Originals ein Problem auftritt.

Der Großteil der Partition gehört zum Datenspeicherbereich, der in Cluster unterteilt wird. Ein Cluster besteht aus benachbarten Sektoren und dient als minimale Einheit für die Zuordnung von Dateien. Seine Größe ist fest, kann aber je nach Größe des Volumens und FAT-Version zwischen 512 Byte und 64 Kilobyte liegen. Eine Datei, egal wie klein sie ist, nimmt den gesamten Cluster ein, und der verbleibende unbelegte Speicherplatz wird verschwendet. Wenn mehrere Cluster für eine Datei erforderlich sind, können sie in einer aufeinanderfolgenden Kette zugewiesen oder über das gesamte Volumen verteilt werden, was zur Fragmentierung der Datei führt.

Jeder Cluster hat einen zugeordneten Eintrag in der File Allocation Table. Ein Nullwert darin zeigt an, dass der Cluster derzeit nicht verwendet wird, während ein Wert ungleich Null auf den nächsten Cluster derselben Datei oder einen speziellen Indikator für sein Ende zeigen kann.

Verzeichnisse existieren ebenso wie Dateien im Datenspeicherbereich. Sie bestehen aus 32 Byte langen Verzeichniseinträgen, von denen jeder eine Datei beschreibt, die in diesem Verzeichnis (oder seinem Unterverzeichnis) gespeichert ist. Neben dem Dateinamen, der Größe und anderen Attributen enthält der Verzeichniseintrag die Informationen über den ersten Cluster einer Datei. Folglich ist es möglich, unter Bezugnahme auf den entsprechenden Verzeichniseintrag herauszufinden, wo die erforderliche Datei beginnt, und jeder nächste Cluster kann durch die File Allocation Table gefunden werden, indem sie als verknüpfte Liste verwendet wird.

Im Laufe der Zeit wurde FAT mehrfach überarbeitet. Auf die Originalversion folgte FAT12, dann kam FAT16 und schließlich – FAT32. Die Zahlen in ihren Namen stehen für die Anzahl der Bits, die zur Adressierung eines einzelnen Clusters verwendet werden: 12 Bits bei FAT12, 16 Bits bei FAT16 und 32 Bits bei FAT32.

FAT12 und FAT16 wurden auf alte Disketten aufgebracht und finden heutzutage kaum noch Verwendung. Im Gegensatz dazu ist FAT32 immer noch weit verbreitet, hauptsächlich aufgrund seiner breiten Kompatibilität. Es kann von fast jedem Betriebssystem, einschließlich macOS und Linux, zugegriffen werden, was es zu einer guten Alternative für tragbare Geräte wie Speicherkarten und USB-Sticks macht. Das Format wird auch von Smartphones, Digitalkameras, Videorekordern, Spielekonsolen und anderen Geräten unterstützt.

FAT32 bietet jedoch keine native Unterstützung für Speicherkapazitäten von mehr als 32 GB. Aus diesem Grund kann es auf Windows-kompatiblen externen Speichern oder Festplattenpartitionen mit einer Größe von weniger als 32 GB eingesetzt werden, wenn sie mit dem integrierten Tool dieses Betriebssystems formatiert werden, oder bis zu 2 TB, wenn andere Mittel zur Formatierung des Speichers verwendet werden. Das Dateisystem erlaubt auch nicht die Erstellung von Dateien, deren Größe 4 GB überschreitet.

Um dieses Problem zu beheben, wurde exFAT (Extended File Allocation Table) vorgestellt. Es hat keine realistischen Einschränkungen in Bezug auf die Größe und wird häufig auf externen Festplatten, SSDs, größeren USB-Sticks usw. verwendet. Die zugrunde liegende Technologie ist jedoch bereits veraltet und weist viele Einschränkungen auf, die sie für den überwiegenden Einsatz in modernen Computerumgebungen ungeeignet machen.

NTFS

NTFS (New Technology File System) wurde 1993 mit Windows NT eingeführt und ist derzeit das gebräuchlichste Dateisystem für Endbenutzercomputer unter Windows. Auch die Betriebssysteme der Windows Server-Reihe verwenden dieses Format.

NTFS ist in zahlreichen Aspekten zu einer erheblichen Verbesserung gegenüber FAT geworden. Es ist dank seiner Journaling-Funktionen ziemlich zuverlässig und unterstützt viele Features, einschließlich Zugriffskontrolle, Verschlüsselung, Dateikomprimierung usw. Außerdem verwendet es fortschrittlichere Datenstrukturen, die bessere Nutzung des Speicherplatzes ermöglichen und ihn weitaus weniger anfällig für Fragmentierung machen. Das gesamte Dateisystem stützt sich auf mehrere Dienstdateien:

  • Die $Boot-Datei;

  • Die $MFT-Datei (Master File Table);

  • Die $Bitmap-Datei;

  • Die $LogFile und andere.

Die $Boot-Datei nimmt am Bootvorgang teil und enthält viele wichtige Parameter Dateisystems.

Die Master File Table hat einen Eintrag für jede einzelne Datei im Dateisystem. Die Datensätze darin werden als Attribute bezeichnet und können alle Arten von Informationen enthalten, von der Namen, Größe, den Berechtigungen, der Erstellungs-/letzten Änderungszeit der Datei bis zu ihrem eigentlichen Dateninhalt. Wenn dieser Inhalt nicht klein genug ist, um in den MFT-Eintrag zu passen (der 1024 Byte groß ist), weist NTFS ihm außerhalb der MFT Cluster zu und erstellt Zeiger auf ihre Speicherorte. Auch andere Attribute können für den MFT-Eintrag zu groß sein, z. B. lange Dateinamen. Solche Attribute erhalten dann ebenfalls separate Cluster.

Die Cluster werden normalerweise in Sequenzen zugeordnet, die als Extents bezeichnet werden. NTFS versucht immer, den Inhalt in einem einzelnen Extent zu platzieren. Wenn jedoch keine zusammenhängenden Cluster verfügbar sind, wird an anderer Stelle ein neues Extent erstellt, indem eine Datei in Fragmente aufgeteilt wird.

Verzeichnisse in NTFS werden als Dateien gespeichert, aber anstelle von typischen Dateninhalten enthalten solche Dateien Listen mit Dateinamen und Referenzen, die diese Dateien identifizieren.

Die $Bitmap-Datei verfolgt den Status von Clustern. Jedes Bit darin repräsentiert einen Cluster und kann den Wert 1 haben, wenn der Cluster belegt ist, oder 0 – wenn der Cluster frei ist.

Bevor eine der entscheidenden Strukturen geändert wird, zeichnet NTFS diese Änderungen in der $LogFile auf. Solches Journal ermöglicht es, sie im Falle von Inkonsistenzen, die durch einen Absturz während ihrer Aktualisierung verursacht werden können, wiederherzustellen. Wenn während des normalen Betriebs ein Fehler auftritt, identifiziert NTFS den fehlerhaften Cluster, zeichnet ihn in der Datei $BadClus auf und kopiert die Daten an einen anderen Speicherort.

Aufgrund seiner funktionsreichen und effektiven Organisation eignet sich NTFS gut für den internen Einsatz in Windows-Computern. Andererseits benötigen Geräte wie Speicherkarten oder USB-Flash-Laufwerke möglicherweise ein leichteres Dateisystem, auf das außerhalb der reinen Windows-Umgebung zugegriffen werden kann.

ReFS

ReFS (Resilient File System) ist die neueste Entwicklung von Microsoft, die mit Windows Server 2012 veröffentlicht und später zu Windows 8.1 hinzugefügt wurde. Jetzt ist es auch für Windows 11 verfügbar.

ReFS wurde entwickelt, um bestimmte Mängel von NTFS zu beheben, insbesondere in Bezug auf Datenbeschädigung. Dank des Copy-on-Write-Mechanismus ist es viel fehlertoleranter. Bei der Bearbeitung der vorhandenen Metadaten speichert ReFS eine Kopie davon an einem anderen Ort auf dem Speichermedium und aktualisiert die Kopie, anstatt sie an Ort und Stelle zu überschreiben, und verknüpft diese geänderte Kopie mit der entsprechenden Datei. Daher wird eine beträchtliche Menge älterer Kopien an verschiedenen Orten gespeichert, was es einfach macht, die Integrität des Dateisystems zurückzubringen und Datenverlust zu verhindern. ReFS verwendet auch Prüfsummen, die es ihm ermöglichen, mögliche Datenbeschädigungen umgehend zu erkennen. 

Die Architektur von ReFS unterscheidet sich absolut von anderen Windows-Formaten. Es verwendet B+-Bäume als gemeinsame Struktur, um sowohl Metadaten als auch die Daten von Dateien darzustellen. Solcher Baum besteht aus der Wurzel, inneren Nodes und Blättern. Jeder Baumnode hat eine geordnete Liste von Schlüsseln oder Zeigern zu den Nodes der niedrigeren Ebene (Blätter).

Solches Design macht ReFS zu einem optimalen Format für große Speicher und Hochverfügbarkeitssysteme. Aber trotz seiner klaren Vorteile kann es noch nicht so stabil wie NTFS sein und Kompatibilität mit anderen Windows-basierten Geräten bieten.

HPFS

HPFS (High Performance File System) wurde von Microsoft in Zusammenarbeit mit IBM entwickelt und 1989 mit OS/2 1.20 als Dateisystem für Server, das im Vergleich zu FAT eine deutlich bessere Leistung bieten konnte, auf den Markt gebracht.

Im Gegensatz zu FAT, das einfach einen beliebigen ersten freien Cluster auf der Festplatte für das Dateifragment zuweist, versucht HPFS, Dateien in zusammenhängenden Blöcken anzuordnen oder zumindest sicherzustellen, dass ihre Fragmente (als Extents bezeichnet) möglichst nahe beieinander platziert werden.

Am Anfang von HPFS gibt es drei Steuerblöcke, die 18 Sektoren belegen: den Bootblock, den Superblock und den Ersatzblock.

Der verbleibende Speicherplatz wird in Teile zusammenhängender Sektoren unterteilt, die als Bänder bezeichnet werden und jeweils 8 MB einnehmen. Ein Band hat seine eigene Sektorzuordnungs-Bitmap, die zeigt, welche Sektoren darin belegt sind (1 – belegt, 0 – frei).

Jede Datei und jedes Verzeichnis hat eine eigene in der Nähe davon sich befindende F-Node – diese Struktur enthält die Informationen über den Speicherort einer Datei und ihre erweiterten Attribute. Ein spezielles Verzeichnisband, das sich in der Mitte der Festplatte befindet, wird zum Speichern von Verzeichnissen verwendet, während die Verzeichnisstruktur selbst ein ausgewogener Baum mit alphabetischen Einträgen ist.

Dennoch hatte HPFS erhebliche Einschränkungen und wurde schließlich obsolet. Die native Unterstützung dafür wurde von Windows ab NT 4 entfernt.

Hinweis: Informationen zu den Perspektiven der Datenwiederherstellung auf den von Windows verwendeten Dateisystemen finden Sie in den Artikeln zu Datenrettungsspezifikationen verschiedener Betriebssysteme und Möglichkeiten zur Datenwiederherstellung. Ausführliche Anweisungen und Empfehlungen finden Sie in der Anleitung zur Datenwiederherstellung unter Windows.

Wenn Sie sich für die nativen Formate anderer gängiger Betriebssysteme interessieren, lesen Sie bitte den entsprechenden Artikel:

Letzte Aktualisierung: 20. April 2023

Wenn Ihnen dieser Artikel gefällt, teilen Sie ihn in sozialen Medien: