WikiDer > FAT16
FAT16 (16-bit Dateizuordnungstabelle) ist ein Dateisystem die unter anderem von MS-DOS und Microsoft Windows.
Wie der Name schon sagt, arbeitet FAT mit einer Tabelle, die an einem festen Ort auf der Festplatte gespeichert wird und die verfolgt, welche Teile der Festplatte von welchen Dateien verwendet werden. Der Tisch ist maximal 216 (65536) Positionen in der Größe und besteht aus 16-Bit-Zahlen. Im ursprünglichen Design entsprach jede Position in der Tabelle einem einzelnen 512-Byte-Sektor, der der Größe eines FAT16 . entsprichtPartition maximal 32 Megabyte betragen könnte. In der MS-DOS-Version 3.0 wurde es möglich, Sektoren zu sogenannten Cluster, ermöglicht Festplatten bis zu 2 GB verwendet werden (unter Windows NT bis 4 GB).
Benutzen
FAT16 wird von MS-DOS und Windows auf Festplatten verwendet und USBSticks bis 2 GB. Da Festplatten heutzutage viel größer als 2 GB sind, wird FAT16 nicht mehr verwendet, aber sie sind es FAT32 oder NTFS.
Wie funktioniert es?
Das FAT16-System besteht aus 3 Teilen:
- die Dateizuordnungstabelle (FAT)
- das Stammverzeichnis
- die Unterverzeichnisse
FETT
Die File Allocation Table, nach der das Dateisystem benannt ist, folgt unmittelbar auf die Bootsektor. In der Regel liegen zwei identische FATs direkt nebeneinander, so dass bei einer Beschädigung einer FAT immer eine Sicherungskopie zur Verfügung steht.
Die FAT-Tabelle enthält maximal 65.536 (216) Zahlen von jeweils zwei Bytes. Jede Zahl entspricht einem Cluster auf der Festplatte und zeigt den Status des entsprechenden Sektors oder Clusters mit einem reservierten Code an. Bei einem frisch formatierten Laufwerk ist dies hauptsächlich der Code "leer" oder möglicherweise "schlecht". Letzteres bedeutet, dass der Cluster beschädigt ist und nicht verwendet werden sollte.
Beim Anlegen einer Datei wird die Nummer der ersten Position in den Informationen zur Datei im Verzeichnis gespeichert. Wenn die Datei größer als ein Cluster ist, enthält die angegebene Position die Nummer des Clusters, in dem die Datei fortgesetzt wird, es wird wieder die Nummer des dritten Stücks angezeigt usw., bis ein Code anzeigt, dass das Ende der Datei abgeschlossen wurde erreicht. Beim Löschen einer Datei werden alle Positionen wieder als verfügbar markiert.
Vereinfachtes Beispiel, Code 0 ist leer und 99 ist "letzter Sektor". Ein Cluster ist nur 1 Sektor groß. Die Diskette ist zunächst leer.
Platz 1 2 3 4 5 6 7 8 9---------------------------------------------------- ----Wert 0 0 0 0 0 0 0 0 0
Nach dem Hinzufügen einer Datei, die auf Cluster 1 beginnt und drei Sektoren lang ist:
Platz 1 2 3 4 5 6 7 8 9---------------------------------------------------- ----Wert 2 3 99 0 0 0 0 0 0
Position 1 enthält daher die Nummer "2", die die Nummer des nächsten Clusters ist, in dem die Datei fortgesetzt wird. Position 2 enthält die Zahl „3“ und Position 3 enthält den Endcode „99“.
Nach dem Hinzufügen einer weiteren Datei, die bei 4 beginnt und zwei Sektoren lang ist:
Platz 1 2 3 4 5 6 7 8 9---------------------------------------------------- ----Wert 2 3 99 5 99 0 0 0 0
Nachdem Sie Datei 1 mit zwei Sektoren erweitert haben:
Platz 1 2 3 4 5 6 7 8 9---------------------------------------------------- ----Wert 2 3 6 5 99 7 99 0 0
In Wirklichkeit für den "letzten Sektor" in FAT16 statt 99, a hexadezimal Code verwendet zwischen FFF8ha und FFFFha.
Verzeichnisse
Alle Verzeichnis's haben die gleiche Form. Einfach ausgedrückt ist ein Verzeichnis eine Liste (die Verzeichniseinträge) von Dateinamen mit der Startclusternummer dieser Datei. Alle Verzeichniseinträge in FAT16 sind 32 Byte groß.
Es gibt einen Unterschied zwischen dem Root-Verzeichnis und allen anderen (Unter-)Verzeichnissen. Als Rest von MS-DOS Version 1 hat das Stammverzeichnis die Größe und befindet sich an einem festen Ort auf der Festplatte, im Gegensatz zu den späteren Unterverzeichnissen, die MS-DOS als normale Dateien behandelt, die Cluster zuweisen und freigeben können.Außerdem kann das Stammverzeichnis nur 512 Einträge enthalten, während andere Verzeichnisse können unbegrenzt erweitert werden.
Biene FAT32 diese Beschränkung für das Root-Verzeichnis wurde aufgehoben, da lange Dateinamen das Root-Verzeichnis schnell füllten.
Nur ein spezielles Bit im Attributbyte bestimmt, ob ein Eintrag ein Unterverzeichnis oder eine Datei ist. Verzeichniseinträge sehen ansonsten für Unterverzeichnisse und reguläre Dateien gleich aus, außer dass ein Unterverzeichnis nicht größengetrackt wird (es wird auf Null gesetzt). startet unmittelbar nach (der zweiten Kopie von) der FAT.
Ein Unterverzeichnis hat zwei spezielle Einträge. Dies sind das aktuelle Verzeichnis, gekennzeichnet durch Punkt (".") und das übergeordnete Verzeichnis (übergeordnetes Verzeichnis), gekennzeichnet durch Punkt-Punkt (..). Der obere Verzeichniseintrag ermöglicht dem Benutzer, sich im Verzeichnisbaum nach oben zu bewegen, da das Betriebssystem wie bei Dateien im Verzeichniseintrag die Startclusternummer findet, in der das höhere Verzeichnis gespeichert ist. Wenn das höhere Verzeichnis das Stammverzeichnis ist, ist seine Clusternummer 0.
Verzeichniseinträge
Ein Verzeichniseintrag ist 32 Byte groß und 512 / 32 = 16 Verzeichniseinträge passen in einen Block von 512 Byte. Jeder Verzeichniseintrag zeigt auf eine Datei auf der Festplatte oder auf ein anderes Verzeichnis auf der Festplatte. Ein Verzeichniseintrag sieht folgendermaßen aus:
| Position | Länge (Byte) | Beschreibung | |
|---|---|---|---|
| FETT | VFAT | ||
| 0 | 8 | Dateiname | |
| 8 | 3 | Erweiterung | |
| 11 | 1 | Attributbyte | |
| 12 | 2 | Startclusternummer (nur OSR2) | |
| 14 | 2 | nicht benutzt | Erstellungszeit (nur VFAT) |
| 16 | 2 | nicht benutzt | Erstellungsdatum (nur VFAT) |
| 18 | 2 | nicht benutzt | Datum zuletzt gelesen (nur VFAT) |
| 20 | 2 | Reserviert | |
| 22 | 2 | zuletzt beschriebene Zeit | |
| 24 | 2 | Datum zuletzt beschrieben | |
| 26 | 2 | Dateistart-Clusternummer | |
| 28 | 4 | Dateigröße in Bytes | |
Dateiname und Erweiterung
Der Dateiname und die Erweiterung werden im Namensfeld linksbündig ausgerichtet und nach rechts mit Leerzeichen aufgefüllt. Das erste Byte eines Dateinamens hat eine besondere Bedeutung und zeigt den Status des Verzeichniseintrags an.
Von einer gelöschten Datei erhält nur das erste Byte des Verzeichniseintrags einen Sonderwert (E5h). Alle anderen Informationen im Verzeichniseintrag bleiben unverändert und die Informationen in den Clustern auf der Platte werden nicht gelöscht.
Probleme
- Nach starkem Gebrauch einer Disc wird es zu zersplittert, was bedeutet, dass die Teile der Dateien auf der Festplatte nicht mehr zusammenhängen.
- Aufgrund der Art der Verwaltung kann es vorkommen, dass Reihen von Sektoren oder Clustern nicht als frei gekennzeichnet werden, aber über ein Verzeichnis nicht mehr erreichbar sind. Das nennt man verlorene Cluster. Durch Ausführen des chkdsk- oder ScandiskKommando könnten solche losen Stücke aufgespürt und wieder zugänglich gemacht werden.
- Aufgrund seiner starken Abhängigkeit vom Tisch wäre eine physische Beschädigung des Teils der Festplatte, auf dem er sich befindet, katastrophal. Um dies zu verhindern, wird immer ein Duplikat der Tabelle gespeichert.
- Gerade bei der Verwendung von großen Platten (und damit großen Clustern) geht viel Speicherplatz auf der Platte verloren, da der Speicherplatz immer in ganzen Clustern vergeben wird. Im Durchschnitt wird am Ende jeder Datei kein halber Cluster verwendet, dieser Platz kann nicht für andere Dateien verwendet werden.
- Die maximale Anzahl von Clustern beträgt 65.536, was bedeutet, dass sich auf einer Partition nie mehr als 65.536 Dateien befinden können.
- Das Stammverzeichnis kann nur 512 Einträge enthalten. Wenn Sie unter Windows versuchen, dort weitere Dateien oder Ordner abzulegen, erscheint die Meldung, dass die Festplatte voll ist. Dies tritt manchmal bei (älteren) USB-Sticks auf, die teilweise werkseitig mit FAT16 formatiert sind.
Einige dieser Probleme wurden mit dem Nachfolger von FAT16 behoben: FAT32.