Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. WeltenzyklopÀdie
  2. File Allocation Table
File Allocation Table 👆 Click Here!
aus Wikipedia, der freien EnzyklopÀdie
(Weitergeleitet von FAT16)

File Allocation Table (kurz FAT [fĂŠt], englisch fĂŒr Dateizuordnungstabelle) bezeichnet eine ursprĂŒnglich 1977 von Microsoft entwickelte, weit verbreitete Familie von Dateisystemen, die zum Industriestandard erhoben wurde und bis heute auch ĂŒber Betriebssystemgrenzen hinweg als fast universelles Austauschformat dient. Wesentliche Erweiterungen wurden auch von Seattle Computer Products, Compaq, Digital Research und Novell eingebracht. Als proprietĂ€re Nachfolger entwickelte Microsoft NTFS und exFAT.

Hintergrund

[Bearbeiten | Quelltext bearbeiten]

Das FAT-Dateisystem wurde ursprĂŒnglich 1977 in einer 8-Bit-Variante von Marc McDonald fĂŒr Microsofts Standalone Disk BASIC-80 fĂŒr 8080-Prozessoren entwickelt, 1978 auf einer DEC PDP-10 unter Zuhilfenahme eines 8086-Simulators fĂŒr Standalone Disk BASIC-86 portiert und 1979 fĂŒr Microsofts Betriebssystem MDOS/MIDAS adaptiert.

Ebenfalls 1979 wurde Standalone Disk BASIC-86 von Bob O’Rear auf eine von Seattle Computer Products (SCP) entwickelte S-100-Bus-Hardware-Plattform angepasst. Bei dieser Gelegenheit wurde Tim Paterson auf das Dateisystem aufmerksam, das er 1980 als konzeptionelle Grundlage seines 12-Bit-Dateisystems fĂŒr SCPs Betriebssystem QDOS wĂ€hlte, welches, umbenannt in 86-DOS, von Microsoft zunĂ€chst lizenziert, aufgekauft und daraufhin 1981 die Ausgangsbasis fĂŒr MS-DOS und PC DOS 1.0 wurde.

Zu der Familie der FAT-Dateisysteme gehören:

  • FAT12 wird fĂŒr jede DOS-Diskette verwendet (u. a. unter Windows, aber auch z. B. macOS), findet sich aber auch auf SD-Karten geringer SpeicherkapazitĂ€t. Der Atari ST benutzt ein fast identisches Dateisystem und kann FAT12-Disketten lesen und beschreiben.
  • FAT16 wird auf allen Arten von mobilen DatentrĂ€gern (außer Disketten) mit einer GrĂ¶ĂŸe von bis zu 2, selten bis 4 GiB verwendet. FAT16 findet auch auf GerĂ€ten mit SD-Karten der Version 1.0/1.1 mit bis zu 4 GB SpeicherkapazitĂ€t Verwendung, wie beispielsweise Ă€ltere Digitalkameras.
  • FAT32 wird z. B. in allen Arten von mobilen Speichern von mehr als 2 GiB KapazitĂ€t genutzt. Unter Windows 9x ab Version 95b und einigen spĂ€teren DOS-Systemen diente es auf Festplatten als Ersatz fĂŒr FAT16 und wird auf vielen SDHC-Karten mit SpeicherkapazitĂ€ten bis zu 32 GB verwendet. FAT32 ist das Dateisystem der EFI-Systempartition (ESP).
  • TFAT (Transaction-safe FAT) ist eine Variante von FAT, die von Microsoft unter Windows CE und Windows Mobile eingesetzt wird.
  • FAT+ (FAT32+/FAT16+) ist eine rĂŒckwĂ€rtskompatible Erweiterung von FAT32 (und theoretisch auch FAT16B), die die maximale GrĂ¶ĂŸe einer Datei von 4 GiB auf 256 GiB erhöht.

An FAT angelehnte Neuentwicklungen:

  • exFAT ist ein speziell fĂŒr Flash-Speicher entwickeltes Dateisystem mit einer theoretischen maximalen DateigrĂ¶ĂŸe von 16 EiB, das sich konzeptionell entfernt an FAT anlehnt. Es ist bei SDXC-Speicherkarten das im Standard vorgeschriebene Dateisystem. In exFAT ist TexFAT, Transaction-safe exFAT, als Option inkludiert.

Typen

[Bearbeiten | Quelltext bearbeiten]

Die Varianten von FAT sind aufbauende Weiterentwicklungen, wobei die Datenstrukturen vor allem an die grĂ¶ĂŸere SpeicherkapazitĂ€t von Festplatten angepasst wurden. Das 2006 speziell fĂŒr Flash-Speicher eingefĂŒhrte exFAT ist hingegen eine Neuentwicklung.

Überblick
Eigenschaft FAT12 FAT16 FAT32 exFAT
Bits je Cluster in Zuordnungstabelle 12 16 32 32
Maximale DateigrĂ¶ĂŸe 4 GiB (232 B)−1 B * 4 GiB−1 B 4 GiB−1 B 16 EiB (264 B)−1 B
Anzahl der Cluster max. 4084 (212−12) 4085 bis 65.524 (216−12) 65.525 bis 268.435.444 (228−12) max. 4.294.967.296 (232)
* 
Durch VolumengrĂ¶ĂŸe begrenzt

FAT12

[Bearbeiten | Quelltext bearbeiten]

Mit der 1980 erschienenen ersten Version von QDOS bzw. 86-DOS wurde FAT12 als Dateisystem fĂŒr 8,0″- und 5,25″-Disketten eingefĂŒhrt. Erst ab 86-DOS 0.42 vom Februar 1981 wiesen die internen Ordnungsstrukturen ein Format auf, das dem spĂ€teren FAT12-Format in MS-DOS und PC DOS in allen wesentlichen Punkten glich. Aufgrund abweichender logischer Geometrien und der Tatsache, dass der BIOS Parameter Block (BPB) erst mit DOS 2 eingefĂŒhrt wurde, können jedoch (mit Ausnahme von SCP MS-DOS 1.25) weder MS-DOS noch PC DOS auf Disketten zugreifen, die unter 86-DOS formatiert wurden.

Anfangs wurden keine Unterverzeichnisse verwaltet. Das Ànderte sich mit MS-DOS Version 2.0.

FAT12 wird nur auf DatentrĂ€gern bzw. Partitionen bis zu einer GrĂ¶ĂŸe von 16 MiB eingesetzt; es ist bis heute auf allen FAT-formatierten 3,5″-Disketten im Einsatz.

Merkmale:

  • 12-Bit-Clusternummern, mit denen 212 = 4096 Cluster angesprochen werden können. Die Nummerierung der Cluster beginnt auf Disketten bei der Nummer 2.
  • Es werden nur Dateinamen im Schema 8.3 (acht Zeichen fĂŒr den Dateinamen und drei Zeichen fĂŒr die Dateinamenserweiterung) unterstĂŒtzt.
  • Die ClustergrĂ¶ĂŸe betrĂ€gt 512 Byte bis 4096 Byte.
  • Das Hauptverzeichnis (Root-Directory) der Partition ist auf eine GrĂ¶ĂŸe von 14 Clustern beschrĂ€nkt, dadurch ergibt sich eine maximale Anzahl von 224 EintrĂ€gen (Verzeichnisse und/oder Dateien). Normalerweise wird der erste Eintrag durch die Bezeichnung des DatentrĂ€gers belegt.
  • UnterstĂŒtzt werden die Dateiattribute „SchreibgeschĂŒtzt“, „Versteckt“, „System“ und „Archiv“.
  • UnterstĂŒtzung fĂŒr Passwörter und Zugangsberechtigungen fĂŒr Dateien oder Ordner ist in Microsoft-Betriebssystemen nicht implementiert, ist jedoch optional unter allen Betriebssystemen verfĂŒgbar, die die entsprechenden FAT-Erweiterungen von Digital Research und Novell unterstĂŒtzen.

FAT16

[Bearbeiten | Quelltext bearbeiten]
FAT16
Hersteller Microsoft
VollstÀndige Bezeichnung File Allocation Table
Erstveröffentlichung 1984 (MS-DOS 3.0)
Maximalwerte
GrĂ¶ĂŸe einer Datei 2 GiB (NT: 4 GiB)
GrĂ¶ĂŸe des Dateisystems 2 GiB (NT: 4 GiB)
Eigenschaften
Datumsangaben einer Datei Änderung
Datumsbereich 1. Januar 1980 bis 31. Dezember 2107
Dateiattribute schreibgeschĂŒtzt, versteckt, System-Datei, Archiv
UnterstĂŒtzende Betriebssysteme auf zahlreichen Systemen implementiert

FAT16 ist ein Dateisystem, das 1983 zu FAT12 dazukam. Durch die zunehmende GrĂ¶ĂŸe der eingesetzten Festplatten wurde eine Erweiterung des Adressraumes notwendig. Nun waren selbst mit 512-Byte-Clustern zumindest theoretisch insgesamt 32 MiB große Platten verwaltbar.

Die ursprĂŒngliche FAT16-Implementierung verwendete auf partitionierten Medien in der Regel (abhĂ€ngig vom jeweiligen DOS-OEM) den Partitiontyp 04h und einen noch vergleichsweise kurzen BIOS Parameter Block (BPB) im Bootsektor. Dessen genauer Aufbau und Inhalt hing insbesondere bei DOS 2.x noch stark von der verwendeten DOS-Version ab, er enthielt jedoch in allen FĂ€llen nur einen 16-Bit breiten Eintrag fĂŒr die Sektorenanzahl, was die GrĂ¶ĂŸe von FAT16-Laufwerken auf 32 MiB bis 512 MiB beschrĂ€nkte (je nach Betriebssystemversion). Mit OS/2 Release 1 wurde ein Enhanced BIOS Parameter Block (EBPB) eingefĂŒhrt, erkennbar am Signaturbyte 28h (fĂŒr DOS-BPB-Version 4.0) an Offset +26h. Mit EinfĂŒhrung von DOS 3.31 wurde dieser durch den nochmals erweiterten, heute allgemein fĂŒr FAT12 und FAT16 verwendeten Extended BIOS Parameter Block (XBPB) mit Signatur 29h (fĂŒr DOS-BPB-Version 4.1) an Offset +26h ersetzt. EBPB und XBPB zeichnen sich u. a. dadurch aus, dass der Eintrag fĂŒr die Zahl der Sektoren auf 32-Bit Breite wuchs, womit erstmals FAT16-Laufwerke mit bis zu 2 GiB, spĂ€ter 4 GiB, möglich wurden, auch wenn die damaligen Betriebssysteme davon noch keinen Gebrauch machen konnten. Diese grĂ¶ĂŸere Variante von FAT16 wurde in Entwicklerkreisen „BigDOS“ genannt, daher stammt auch ihr offizieller Name FAT16B. Da Ă€ltere Betriebssysteme mit diesem neuen Typ nicht arbeiten konnten, wurde fĂŒr die Verwendung auf partitionierten Medien auch ein neuer Partitionstyp (06h) dafĂŒr definiert. Die alte FAT16-Variante wird zwar nach wie vor unterstĂŒtzt, findet aber (bis auf die forcierte Erzeugung von sehr kleinen FAT16-Partitionen mit dem Partitionstyp 04h) in der Praxis keine Verwendung mehr, da spĂ€testens seit DOS 5 bei der Erzeugung von FAT12- und FAT16-Partitionen gleichermaßen nur noch Bootsektoren mit XBPB geschrieben werden, um einige neue Betriebssystemfunktionen optimal zu unterstĂŒtzen. Die Tatsache, dass es eigentlich zwei FAT16-Typen gibt, ist in der Allgemeinheit nicht mehr prĂ€sent, mehr noch, da FAT12 fast nur noch fĂŒr Disketten verwendet wird, wird heute FAT oft fĂ€lschlicherweise nur mit FAT16 (und das auch nur in der beschriebenen FAT16B-Variante) gleichgesetzt, obwohl darunter eigentlich mehrere FAT12- und FAT16-Typen zu verstehen wĂ€ren. Allerdings benötigt das Server-Betriebssystem Novell-NetWare bis zur Version 4.0 noch eine bis zu 16 MiB große „DOS“-Bootpartition, die (automatisch) mit FAT12 erzeugt wurde.

Erfolgt der Zugriff ĂŒber Logical Block Addressing (LBA), wird eine FAT16-Partition auch als FAT16X bezeichnet.

FAT16 hat folgende Merkmale:

  • Rund 65.000 Datei-EintrĂ€ge sind maximal möglich,[1] davon ĂŒblicherweise 512 im Stammverzeichnis (obwohl dies variabel ist, ist 512 de facto der einzige anzutreffende Wert).[2]
  • Maximal 512 EintrĂ€ge pro Unterverzeichnis, bei Verwendung von LFN entsprechend weniger.
  • Es können 216 âˆ’ 12 = 65.524 Cluster angesprochen werden (12 Cluster reserviert FAT16, deshalb nicht 65.536).
  • 8.3-Dateinamensformat; LFN möglich.
  • Die PartitionsgrĂ¶ĂŸe ist unter MS-DOS und Windows 9x (die auf DOS basieren) bei der Neuanlage unter FDISK auf 2 GiB begrenzt, bei der Anlage mit Fremdprogrammen können sie knapp unter 4 GiB verwalten. Windows NT, FreeDOS und Enhanced DR-DOS können FAT16-Partitionen mit der maximalen GrĂ¶ĂŸe erzeugen und verwalten (ClustergrĂ¶ĂŸe 64 KiB).
  • Die Cluster sind je nach PartitionsgrĂ¶ĂŸe zwischen 512 Byte und maximal 32 KiB (Windows NT und Enhanced DR-DOS maximal 64 KiB) groß.
  • Dateien dĂŒrfen bis 2 GiB groß werden, unter Windows NT und Enhanced DR-DOS 4 GiB.
  • Das Haupt-(Root-)Verzeichnis muss sich an einer bestimmten Position auf dem DatentrĂ€ger befinden. Seine GrĂ¶ĂŸe wird bei Erstellung des Dateisystems festgelegt, d. h., es kann nicht wachsen.

Eine Weiterentwicklung erfolgte mit FAT32.

FAT32

[Bearbeiten | Quelltext bearbeiten]
FAT32
Hersteller Microsoft
VollstÀndige Bezeichnung File Allocation Table
Erstveröffentlichung 1996 (Windows 95B)
Maximalwerte
GrĂ¶ĂŸe einer Datei 4 GiB minus 1 Byte
Anzahl aller Dateien 268.435.456 (228)
GrĂ¶ĂŸe des Dateisystems 2 TiB (bei typischen 512 Bytes SektorgrĂ¶ĂŸe),

16 TiB bei 4 KiB SektorgrĂ¶ĂŸe

Eigenschaften
Datumsbereich 1. Januar 1980 bis 31. Dezember 2107
Zeitstempel-Auflösung 2 s[3]
Dateiattribute schreibgeschĂŒtzt, versteckt, System-Datei, Archiv
UnterstĂŒtzende Betriebssysteme neben Windows 9x auch Windows NT ab 2000; auf zahlreichen Systemen implementiert

FAT32 ist ein von Microsoft entwickeltes Dateisystem, das im Sommer 1996 mit Windows 95B eingefĂŒhrt wurde und die VorgĂ€ngerversion FAT16 ergĂ€nzt.

Partitionen kleiner als 512 MiB werden nach wie vor mit FAT16 erzeugt, von 512 MiB bis 2 GiB hat man die Wahl, ab 2 GiB wird FAT32 benutzt. Die Adressierung arbeitet mit 32 Bits, wovon 4 Bits reserviert sind, so dass 228 = 268.435.456 Cluster adressiert werden können.

FAT32 kann außerdem mit allen Windows-Versionen seit Windows 95B sowie â€“ anders als NTFS â€“ problemlos auch mit FreeDOS und Enhanced DR-DOS verwendet werden. Da Windows je nach Version von Haus aus nur wenige Dateisysteme unterstĂŒtzt, wird FAT32 trotz seiner BeschrĂ€nkungen zum Datenaustausch sowohl mit anderen Windows-Systemen als auch mit Nicht-Windows-Systemen (z. B. macOS, Linux) eingesetzt, z. B. auf USB-Speichersticks und mobilen Festplatten.

Spielekonsolen wie beispielsweise die PlayStation 3 oder digitale Satellitenreceiver setzen bei extern angeschlossenen Festplatten hĂ€ufig FAT32 als Dateisystem voraus.

Ein Nachteil eines standardkonformen FAT32-Dateisystems ist, dass nur Dateien erstellt werden können, die kleiner als 4 GiB sind.[4] (Mit FAT32+ kann das Limit auf 256 GiB angehoben werden.)

Da bis zu einer PartitionsgrĂ¶ĂŸe von 8 GiB ein Cluster nur 4 KiB groß ist (bei der Standardformatierung), werden diese „kleinen und alten“ Platten verhĂ€ltnismĂ€ĂŸig besser ausgenutzt als mit FAT16, wo ein Cluster bis zu 32 KiB belegt (unter Windows NT wie beispielsweise Windows 2000 FAT16-ClustergrĂ¶ĂŸe maximal 64 KiB).

Erfolgt der Zugriff ĂŒber Logical Block Addressing (LBA), wird eine FAT32-Partition auch als FAT32X bezeichnet.

FAT32 hat folgende Merkmale:

  • Es werden bis zu 228 = 268.435.456 Cluster verwendet.
  • Die maximale DateisystemgrĂ¶ĂŸe hĂ€ngt von der SektorengrĂ¶ĂŸe des verwendeten Mediums ab. Bei Festplatten, die typischerweise 512 Bytes SektorengrĂ¶ĂŸe haben, betrĂ€gt die maximale GrĂ¶ĂŸe 2 Tebibyte; bei DatentrĂ€gern, die 4 KiB SektorengrĂ¶ĂŸe verwenden, betrĂ€gt die maximale GrĂ¶ĂŸe 16 Tebibyte. Die GrĂ¶ĂŸe ist primĂ€r durch das vier Bytes große Gesamtsektoranzahl-Feld (Offset 20h) im Bootsektor begrenzt.
  • Die Cluster sind je nach PartitionsgrĂ¶ĂŸe zwischen 512 Byte und maximal 32 KiB groß.
  • Dateien dĂŒrfen max. bis zu 4 GiB − 1 Byte (= 4.294.967.295 Byte) groß werden. Diese Grenze ist eine Folge des nur 4 Byte breiten Feldes fĂŒr die DateigrĂ¶ĂŸe in der Directory-Tabelle.
  • Es können maximal 228 Dateien abgelegt werden; da jede Datei mindestens einen Cluster belegt, beschrĂ€nkt die maximale Anzahl der Cluster die maximale Anzahl Dateien.
  • Das Haupt-(Root-)Verzeichnis muss sich nicht an einer bestimmten Position auf dem DatentrĂ€ger befinden und hat vor allem keine festgelegte GrĂ¶ĂŸe; bei den anderen FAT-Varianten wird die maximale Anzahl der EintrĂ€ge im Hauptverzeichnis bei der Formatierung festgelegt (und kann nachtrĂ€glich nicht geĂ€ndert werden).

Praxis-Limitierungen:

  • Alte DOS-/Windows-Versionen (bis einschließlich Windows 95A, Windows NT bis Version 4.0, MS-DOS bis 6.22, PC DOS bis 2000, DR-DOS bis 7.03) können nicht darauf zugreifen. FĂŒr Windows NT 4.0 kam, etwas verspĂ€tet, ein vollwertiger kostenloser Treiber. FĂŒr beliebige DOS-Systeme ab 3.3 kann der von Matthias Paul fĂŒr DR-DOS entwickelte dynamisch ladbare DRFAT32-Treiber verwendet werden, der FAT32-Laufwerke ĂŒber das Redirector-Interface als (erweiterte) CD-Extension mit vollem Schreib-/Lesezugriff in das System einbindet.
  • Unter Windows 2000 und Nachfolgern darf der Benutzer mit der eingebauten Funktion „Formatieren“ maximal 32 GiB große FAT32-Dateisysteme neu erstellen, auch das Kommandozeilen-Programm format.com hat diese BeschrĂ€nkung. Allerdings erlaubt die explizite Wahl von FAT32 als Dateisystem durch die FS-Option eine Formatierung von DatentrĂ€gern selbst grĂ¶ĂŸer als 32 GiB (format /FS:FAT32). Der Zugriff auf grĂ¶ĂŸere FAT32-Dateisysteme, die mit alternativen Werkzeugen erstellt wurden, ist aber immer möglich. Mit zusĂ€tzlichen Programmen kann man jedoch auch unter Windows 2000 oder höher Partitionen grĂ¶ĂŸer als 32 GiB mit FAT32 erstellen und formatieren.[5]
  • Unter Windows 10 ist das Formatieren mit FAT32 ĂŒber die Eingabeaufforderung möglich.[6]
  • Das Festplatten-Dienstprogramm von Mac OS X Tiger 10.4 und neuer sowie das Linux-Programm mkdosfs (in Verbindung mit fdisk) können auf Festplatten, die grĂ¶ĂŸer als 32 GiB sind, eine oder mehrere FAT32-Partitionen mit mehr als 32 GiB KapazitĂ€t erzeugen.
  • Es gibt mehrere moderne DOS-Systeme, die FAT32 nativ unterstĂŒtzen: MS-DOS 7.10/8.00 (Teil von Windows 9x), Enhanced DR-DOS (Fan-Projekt mit Verbesserungen fĂŒr OpenDOS 7.01), FreeDOS, PC DOS 7.10 (inoffizielles Update der letzten Version von PC DOS) und ROM DOS.
  • Das Speichern von Meta-Informationen fĂŒr Dateien in Extended Attributes ist nicht mehr möglich.
  • Microsofts Spezifikation verbietet aus genannten GrĂŒnden der Geschwindigkeit und KompatibilitĂ€t ĂŒber 2 MB lange Dateiordner, welches einen Ordner auf 65.534 8.3-DateinameneintrĂ€ge (jeweils 32 Bytes) beschrĂ€nkt (zwei EintrĂ€ge sind bereits durch . und .. reserviert). Die Verwendung von langen Dateinamen (LFN, das beinhaltet Dateinamen in Kleinbuchstaben) reduziert die Anzahl.[7]

Da auch in aktuellen Windows-Installationen FAT32 und NTFS koexistieren können, ist zu beachten, dass bei der Übertragung von Dateien von NTFS auf FAT32 sowohl NTFS-Streams als auch die Berechtigungen verloren gehen, was je nach Anwendungszweck sinnvoll oder störend sein kann.

Erweiterungen

[Bearbeiten | Quelltext bearbeiten]

VFAT und LFN

[Bearbeiten | Quelltext bearbeiten]

VFAT (Virtual File Allocation Table) ist eine Erweiterung des FAT-Formats zur Verwendung langer Dateinamen, die auf FAT12, FAT16 und (seit dessen EinfĂŒhrung im Jahr 1996) auch auf FAT32 angewendet werden kann. Gelegentlich wird im Sprachgebrauch auch fĂ€lschlich VFAT mit FAT32 gleichgesetzt.

LFN steht fĂŒr long filenames, lange Dateinamen, die durch VFAT in allen klassischen FAT-Dateisystemen implementiert sind.

Siehe auch: 8.3#LFN

Die Designer von Windows 95 hatten das Ziel, die Nutzung von langen Dateinamen zu ermöglichen, obwohl die auf MS-DOS aufbauenden Versionen das unter der NT-Serie dafĂŒr vorgesehene Nachfolge-Dateisystem NTFS nicht unterstĂŒtzen. Das wird durch einen Trick im Layout des Dateisystems erreicht. Einerseits wird zur Wahrung der KompatibilitĂ€t jeder Dateiname wie bisher im 8.3-Format gespeichert – bei Namen, die lĂ€nger als acht Buchstaben bzw. drei Buchstaben fĂŒr die Erweiterung nutzen wird jedoch ein verkĂŒrztes Alias in der Form xxxxxx~1.xxx verwendet, wobei die Nummer bei Bedarf (wenn eine solche Datei bereits existiert) hochgezĂ€hlt wird. Der eigentliche Name selbst wird immer zusĂ€tzlich gespeichert und bei langen Namen ĂŒber mehrere VerzeichniseintrĂ€ge verteilt und miteinander verkettet. Der Trick besteht darin, dass diese zusĂ€tzlichen VFAT-Dateinamen jeweils eine Kombination von Dateiattributen aufweisen, die von Ă€lteren Systeme als ungĂŒltig angesehen und daher ignoriert werden, wĂ€hrend diese die kurzen 8.3-Dateinamen ohne Probleme nutzen können.

Da die VFAT-EintrĂ€ge jedoch auch das „Volume Label“-Attribut verwenden, kann es bei Ă€lterer Software vorkommen, dass ein Teil eines der langen Dateinamen fĂ€lschlicherweise als DatentrĂ€gerbezeichnung (englisch Volume Label) verarbeitet wird. So zeigen Ă€ltere DOS-Versionen, darunter jedes MS-DOS vor Version 7.1, beim dir-Befehl solche EintrĂ€ge auch als Bezeichnung fĂŒr das jeweilige Laufwerk an. Das kann nur verhindert werden, indem ein volume label vergeben wird, das jedoch an erster Stelle in der Verzeichnisliste stehen muss. Eine DatentrĂ€gerbezeichnung lĂ€sst sich z. B. direkt beim Formatieren vergeben, kann jedoch auch gleich danach mit dem label-Befehl vergeben werden, womit sichergestellt ist, dass dies der erste Dateiname mit Volume-Dateiattribut ist.

Das endgĂŒltige Format erlaubt bis zu 255 Zeichen lange Dateinamen (wobei der Name inklusive Speicherpfad bis zu 260 Zeichen enthalten kann) und nutzt Unicode in der Kodierung UCS-2 als Zeichensatz.

In bisher in FAT nicht genutzten Bereichen des Eintrages mit dem 8.3-Dateinamen werden nun auch Zeitstempel-Dateiattribute fĂŒr den Erstellungszeitpunkt und jenen des letzten Zugriffes gespeichert, vergleichbar mit Modification, Access, Change unter Unix.

UnterstĂŒtzung in Betriebssystemen

[Bearbeiten | Quelltext bearbeiten]

Windows for Workgroups 3.11 unterstĂŒtzt VFAT optional, jedoch nur fĂŒr Festplatten und ohne die Möglichkeit langer Dateinamen.

VFAT wird in Windows 95 und höher und in Windows NT 3.5 und höher unterstĂŒtzt.

Unter Linux wird die VFAT-Erweiterung vollstĂ€ndig unterstĂŒtzt.

UMSDOS

[Bearbeiten | Quelltext bearbeiten]

In den frĂŒhen 1990er Jahren wurde von vielen Linux-Distributionen die UMSDOS-Erweiterung fĂŒr FAT16 eingesetzt, um Linux zu installieren, ohne das Festplattenlaufwerk neu partitionieren und formatieren zu mĂŒssen. UMSDOS fĂŒgt zu einem FAT-Dateisystem eine darĂŒberliegende Unix-kompatible Schicht hinzu. Diese verwaltet Dateien, die den Namen --linux-.--- tragen. Darin werden Benutzerrechte und auch lange Dateinamen gespeichert.

In Linux 2.6.11 wurde UMSDOS aus dem Kernel entfernt, da es nicht mehr weiterentwickelt wurde. Es gibt als Ersatz ein POSIX-Overlay-Dateisystem, das FUSE verwendet und ĂŒber einem normalen FAT-Dateisystem „eingeblendet“ werden kann.

UVFAT

[Bearbeiten | Quelltext bearbeiten]

UVFAT existierte nur fĂŒr eine kurze Zeit und hat die VFAT-Erweiterung zur Speicherung langer Dateinamen genutzt, wĂ€hrend der UMSDOS-Mechanismus fĂŒr die unter allen FAT-Versionen fehlenden Benutzerrechte verwendet wurde. So waren unter Linux angelegte lange Dateinamen auch unter modernen Windows-Versionen lesbar und umgekehrt. Die Entwicklung wurde bereits vor derjenigen der UMSDOS-Erweiterung wieder eingestellt.

Aufbau

[Bearbeiten | Quelltext bearbeiten]

Ein FAT-Dateisystem gliedert sich in fĂŒnf Bereiche:

Überblick ĂŒber die Struktur innerhalb einer FAT-Partition
Inhalt Bootsektor FS Informations Bereich

(nur FAT32)

Ggf. weitere reservierte Bereiche File Allocation Table (FAT) Nummer 1 File Allocation Table Nummer 2 (& ggf. weitere) Root-Verzeichnis (nur FAT12/FAT16) Datenbereich (fĂŒr Dateien und Ordnerstrukturen) ... (bis zum Ende der Partition)
GrĂ¶ĂŸe in Sektoren (Anzahl an reservierten Sektoren) (Anzahl von FATs) × (Sektoren pro FAT) (Anzahl an Root Verzeichnissen × 32) / (Bytes pro Sektor) (Anzahl von Clustern) × (Sektoren pro Cluster)

Alle Mehrbyte-Werte (16/32 Bit) sind im Little Endian gespeichert, d. h. niederwertigste Bytes zuerst.

Bootsektor

[Bearbeiten | Quelltext bearbeiten]

Der Bootsektor kann x86-Maschinencode (Bootloader) enthalten, der das Betriebssystem laden soll. An anderen Stellen enthĂ€lt er Informationen ĂŒber das FAT-Dateisystem.

Offset
(hex)
LĂ€nge
(dec)
Inhalt
00 3 x86-Maschinencode. In der Regel eine Sprunganweisung zum Boot-Code, um die Datenbytes im Bootsektor zu ĂŒberspringen.
Beispiel: EB 3C 90; fĂŒr x86-Prozessoren hat dieser Code die folgenden Anweisungen: JMP SHORT 003C; NOP.
03 8 OEM-Name (mit Leerzeichen aufgefĂŒllt). MS-DOS ermittelt anhand dessen, welche Struktur die ĂŒbrigen Daten im Bootsektor haben[8][9]. Übliche Werte sind IBM  3.3 (mit zwei Leerzeichen zwischen „IBM“ und „3.3“) und MSDOS5.0. Im Prinzip ist der Name frei definierbar, Formatierungsprogramme verwenden hĂ€ufig ihre eigenen Namen.
0B 2 Byte pro Sektor (GĂŒltige Werte sind: 512, 1024, 2048 und 4096. In der Regel ist der Wert 512.)
0D 1 Sektoren pro Cluster (Zweierpotenz zwischen 1 und 64, ggf. auch 128)
0E 2 Anzahl reservierter Sektoren (inkl. Bootsektor, also stets mind. 1)
10 1 Anzahl der FAT-Kopien (in der Regel: 2)
11 2 Maximale Anzahl an VerzeichniseintrÀgen im Stammverzeichnis (Ungenutzt bei FAT32 und stets 0000hex)
13 2 Gesamtsektoranzahl des Mediums max. 65535, bei grĂ¶ĂŸeren Medien ist dieser Wert 0, und der eigentliche Wert steht als 4-Byte-Wert an Offset 20hex. Bei FAT32 stets ungenutzt.
15 1 Media Descriptor Byte[10]. Gilt als veraltet und wird ab Windows Server 2003 nicht mehr beachtet.
F0 Beidseitig, 80 Spuren, 18/36 Sektoren pro Spur (1440 KiB- sowie 2880 KiB-3Âœâ€ł-Diskette)
F8 Festplatte
F9 Beidseitig, 80 Spuren, 9/15 Sektoren pro Spur (720 KiB-3Âœâ€ł- bzw. 1200 KiB-5ÂŒâ€ł-Diskette)
FA Einseitig, 80 Spuren, 8 Sektoren pro Spur (320 KiB-3Âœâ€ł- bzw. -5ÂŒâ€ł-Diskette).
Wird auch fĂŒr Ramdisks verwendet
FB Beidseitig, 80 Spuren, 8 Sektoren pro Spur (640 KiB-3Âœâ€ł- bzw. -5ÂŒâ€ł-Diskette)
FC Einseitig, 40 Spuren, 9 Sektoren pro Spur (180 KiB-5ÂŒâ€ł-Diskette)
FD Beidseitig, 40 Spuren, 9 Sektoren pro Spur (360 KiB-5ÂŒâ€ł-Diskette)
Beidseitig, 77 Spuren, 26 Sektoren pro Spur (500 KiB-8″-Disketten)
FE Einseitig, 40 Spuren, 8 Sektoren pro Spur (160 KiB-5ÂŒâ€ł-Diskette)
Einseitig, 77 Spuren, 26 Sektoren pro Spur (250 KiB-8″-Disketten)
Beidseitig, 77 Spuren, 8 Sektoren pro Spur (1200 KiB-8″-Disketten)
Die beiden 8″-Disketten-Formate wurden darin unterschieden, ob Lesezugriffe auf die Seite 2 erfolgreich sind.
FF Beidseitig, 40 Spuren, 8 Sektoren pro Spur (320 KiB-5ÂŒâ€ł-Diskette)
16 2 Anzahl der Sektoren pro FAT. (Bei FAT32 ungenutzt und stets 0000hex, siehe Offset 24hex.)
18 2 Sektoren pro Spur
1A 2 Anzahl der Seiten bzw. Schreib-Lese-Köpfe
1C 4 Anzahl der „versteckten“ Sektoren vor dem Bootsektor. Bei Festplatten ist das die Anzahl der Sektoren zwischen Master Boot Record und dem Bootsektor der Partition. Bei nicht partitionierten Medien (ohne MBR) stets 0.
20 4 Gesamtsektoranzahl, falls grĂ¶ĂŸer als 65535

Anschließend unterscheiden sich die Daten je nach FAT-Variante. Bei FAT12 und FAT16 folgt diese Datenstruktur:

Offset
(hex)
LĂ€nge
(dec)
Inhalt
24 1 Physische BIOS-Laufwerksnummer (00hex bei Disketten, 80hex, 81hex, 
 bei Festplatten). Ist nur fĂŒr Bootlaufwerke relevant, da diese Nummer beim Booten fĂŒr BIOS-Aufrufe zum Zugriff auf das Medium benutzt wird.
25 1 Reserviert. Dieses Byte wird oft benutzt, um ein möglicherweise beschÀdigtes Dateisystem zu markieren.
26 1 Erweiterte Bootsignatur
27 4 Dateisystem-ID (Seriennummer). Wird beim Anlegen des Dateisystems erzeugt und dient der Unterscheidung verschiedener Medien (z. B. bei Wechselmedien)
2B 11 Name des Dateisystems (durch Leerzeichen aufgefĂŒllt). Veraltet. Wurde durch einen speziellen Verzeichniseintrag im Stammverzeichnis abgelöst
36 8 FAT-Variante, mit Leerzeichen aufgefĂŒllt, z. B. FAT12   , FAT16   .
3E 448 x86-Maschinencode des Bootloaders
1FE 2 BIOS-Bootsektorsignatur. EnthĂ€lt die beiden Werte 55hex AAhex, anhand derer das BIOS beim Booten einen gĂŒltigen Bootsektor erkennt.

FAT32 benutzt eine davon abweichende Struktur ab Offset 24hex:

Offset
(hex)
LĂ€nge
(dec)
Inhalt
24 4 Anzahl der Sektoren pro FAT
28 2 FAT Flags
2A 2 FAT-32-Version. Bei Microsoft stets 0000hex. (optional 0001hex fĂŒr FATplus)
2C 4 Clusternummer, an der das Stammverzeichnis beginnt. Meistens 2
30 2 Sektornummer des „FS Information Sector“ (In der Regel 1)
32 2 Sektornummer der Bootsektorkopie (in der Regel: 6; Microsoft empfiehlt, keinen anderen Wert zu benutzen.)
34 12 reserviert fĂŒr spĂ€tere Erweiterungen, derzeit stets 0
40 1 Physische BIOS-Laufwerksnummer
41 1 Reserviert. Dieses Byte wird oft benutzt, um ein möglicherweise beschÀdigtes Dateisystem zu markieren.
42 1 Erweiterte Bootsignatur
43 4 Dateisystem-ID (Seriennummer)
47 11 Name des Dateisystems (ungenutzt)
52 8 FAT-Version. Stets FAT32   
5A 420 x86-Maschinencode des Bootloaders
1FE 2 BIOS-Bootsektorsignatur. EnthĂ€lt die beiden Werte 55hex AAhex, anhand derer das BIOS beim Booten einen gĂŒltigen Bootsektor erkennt.

Reservierte Sektoren

[Bearbeiten | Quelltext bearbeiten]

Zwischen Bootsektor und der ersten FAT können Sektoren reserviert werden, die vom Dateisystem nicht benutzt werden. Dieser Bereich kann von einem Bootmanager oder fĂŒr betriebssystemspezifische Erweiterungen genutzt werden. Auf den meisten FAT12- oder FAT16-Dateisystemen existieren – außer dem Bootsektor – keine weiteren reservierten Sektoren. Die FAT folgt somit direkt im Anschluss an den Bootsektor. FAT32-Dateisysteme enthalten in der Regel noch einige Erweiterungen zum Bootsektor sowie eine komplette Sicherungskopie des Bootsektors und der Erweiterungen.

FAT

[Bearbeiten | Quelltext bearbeiten]

Die FAT ist eine Art Tabelle fester GrĂ¶ĂŸe, in der ĂŒber die belegten und freien Cluster eines FAT-Dateisystems Buch gefĂŒhrt wird. Ein Cluster ist die aus einem oder mehreren Sektoren bestehende Zuordnungseinheit, die von einer Datei belegt werden kann. Der Datenbereich ist in eine feste Anzahl von Clustern eingeteilt. Zu jedem dieser Cluster existiert ein Eintrag in der FAT, der Folgendes angeben kann:

  • Der Cluster ist nicht belegt, also frei.
  • Das Medium ist an der Position dieses Clusters beschĂ€digt.
  • Der Cluster ist von einer Datei belegt:
    • Der FAT-Eintrag zum nĂ€chsten Cluster der Datei hat die Nummer x, das heißt: der nĂ€chste Cluster der Datei ist der Cluster mit der Nummer x − 2.
    • Das ist der letzte Cluster der Datei.

Die GrĂ¶ĂŸe (in Bit) und der Wertebereich der TabelleneintrĂ€ge unterscheiden sich zw. FAT12, FAT16 und FAT32 wie folgt:

Bedeutung Wert (hex)
FAT12 FAT16 FAT32
freier Cluster 000 0000 00000000
defekter Cluster FF7 FFF7 0FFFFFF7
letzter Cluster einer Clusterkette FF8
FFF FFF8
FFFF 0FFFFFF8
0FFFFFFF
sonstiger Cluster einer Clusterkette 002
FF6 0002
FFF6 00000002
0FFFFFF6

Die Lage der belegten Cluster einer Datei können aus den Adressen der zugehörigen FAT-EintrÀge berechnet werden. Die FAT-EintrÀge bilden eine einfach verkettete Liste.

Wegen ihrer grundlegenden Bedeutung fĂŒr das Dateisystem existieren in der Regel zwei Kopien der FAT, um bei Datenverlust noch immer eine funktionsfĂ€hige zweite FAT zu haben. Mit diversen Programmen ist so eine Datenwiederherstellung in vielen FĂ€llen möglich.

Auf Installationsdisketten oder mit Spezialprogrammen formatierten Medien findet man manchmal keine zweite FAT, wodurch der verfĂŒgbare Speicherplatz etwas grĂ¶ĂŸer wird. Theoretisch ist es auch möglich, ein Dateisystem mit mehr als zwei FAT-Kopien zu formatieren. Diese Dateisysteme können zwar in der Regel von jedem Betriebssystem gelesen werden, jedoch wird die dritte (und jede weitere FAT-Kopie) bei Schreibzugriffen meist nicht aktualisiert, so dass bei BeschĂ€digung der ersten beiden FATs oft keine Reparatur unter Zuhilfenahme der weiteren Kopien möglich ist.

Stammverzeichnis und Unterverzeichnisse

[Bearbeiten | Quelltext bearbeiten]

Das Stammverzeichnis (englisch root directory), auch Wurzelverzeichnis oder Hauptverzeichnis genannt, ist eine Tabelle von VerzeichniseintrĂ€gen. Jede Datei oder Unterverzeichnis wird in der Regel durch je einen Verzeichniseintrag reprĂ€sentiert. Die bei Windows 95 eingefĂŒhrte Erweiterung um „lange Dateinamen“ benutzt jedoch ggf. mehrere VerzeichniseintrĂ€ge pro Datei bzw. Verzeichnis, um die langen Dateinamen unterzubringen.

Das Stammverzeichnis folgt bei FAT12 und FAT16 direkt der FAT und hat eine feste GrĂ¶ĂŸe und damit eine Maximalanzahl an VerzeichniseintrĂ€gen. Diese wird beim Formatieren des Dateisystems festgelegt und kann spĂ€ter – außer mit Spezialsoftware – nicht mehr geĂ€ndert werden.

Bei FAT32 hat das Stammverzeichnis eine variable GrĂ¶ĂŸe und kann an einer beliebigen Position des Datenbereichs beginnen.

Je nach Medientyp gibt es unterschiedliche VorgabegrĂ¶ĂŸen fĂŒr das Stammverzeichnis. Mit speziellen Formatierungsprogrammen lĂ€sst sich jedoch die GrĂ¶ĂŸe des Stammverzeichnisses frei wĂ€hlen. So besitzen beispielsweise Installationsdisketten, die nur sehr wenige Archivdateien enthalten, oft ein minimales Stammverzeichnis, das nur einen Sektor groß ist und somit nur Platz fĂŒr 16 VerzeichniseintrĂ€ge bietet.

Medientyp Speicher-
kapazitÀt
Anzahl der
VerzeichniseintrÀge
Sektoren fĂŒr
Stammverzeichnis
8″ SD einseitig 250 KiB 68
8″ SD beidseitig 500 KiB 68
8″ DD beidseitig 1200 KiB 192
5ÂŒâ€ł DD einseitig 160 KiB 64 4
5ÂŒâ€ł DD einseitig 180 KiB 64 4
5ÂŒâ€ł DD beidseitig 320 KiB 112 7
5ÂŒâ€ł DD beidseitig 360 KiB 112 7
5ÂŒâ€ł HD beidseitig 1200 KiB 224 14
3Âœâ€ł DD beidseitig 720 KiB 112 7
3Âœâ€ł HD beidseitig 1440 KiB 224 14
3Âœâ€ł ED beidseitig 2880 KiB 240 15
Festplatten variabel 512 32

Ein Verzeichniseintrag besteht aus 32 Bytes.

Offset (hex) LĂ€nge (in Byte) Inhalt
00 8 Dateiname ohne Erweiterung
Die nicht genutzten Bytes werden mit Leerzeichen aufgefĂŒllt.
08 3 Erweiterung
Die nicht genutzten Bytes werden mit Leerzeichen aufgefĂŒllt.
0B 1 Dateiattribute.
Bit 0: SchreibgeschĂŒtzt; Bit 1: Versteckt; Bit 2: Systemdatei; Bit 3: Volume-Label; Bit 4: Unterverzeichnis; Bit 5: Archiv; Bit 6–7: ungenutzt
Die zusĂ€tzlichen Pseudo-VerzeichniseintrĂ€ge fĂŒr VFAT (siehe weiter unten) haben das Attribut 0x0F (SchreibgeschĂŒtzt, Versteckt, Systemdatei, Volume-Label)
0C 1 reserviert
0D 1 Erstellzeitpunkt in 10ms. Von 0 bis 199
0E 2 Erstellzeitpunkt (Format wie Zeit der letzten Änderung bei Offset 0x16)
10 2 Erstelldatum (Format wie Datum der letzten Änderung bei Offset 0x18)
12 2 Datum des letzten Zugriffs (Format wie Datum der letzten Änderung bei Offset 0x18)
14 2 Bei FAT32 die oberen beiden Bytes des Clusters
16 2 Zeit der letzten Änderung
(5 / 6 / 5 Bits fĂŒr Stunde / Minute / Sekunden)
Die Auflösung der Sekunden betrĂ€gt 2 s (0..29)
18 2 Datum der letzten Änderung
(7 / 4 / 5 Bits fĂŒr Jahr / Monat / Tag)
Jahr: Jahr seit 1980; z. B. fĂŒr 2007 = 27
1A 2 (Offset des Start-Clusters) + 2
1C 4 DateigrĂ¶ĂŸe in Byte

Zusammenspiel: Soll nun eine Datei gelesen werden, wird der zugehörige Verzeichniseintrag herausgesucht. Neben den Attributen kann hier nun der Startcluster selektiert werden. Die weiteren Cluster werden dann ĂŒber die FAT herausgesucht. Am Ende terminiert die Weitersuche jener FAT-Tabelleneintrag, welcher den Wert FFFFFFh enthĂ€lt.

Ein Unterverzeichnis wird als normale Datei angelegt, außer dass der Eintrag im ĂŒbergeordneten Verzeichnis mit dem entsprechenden Bit markiert ist. Der Aufbau der EintrĂ€ge ist mit jenen des Hauptverzeichnisses identisch. Da die Cluster der Unterverzeichnisse ĂŒber die FAT verknĂŒpft werden, können sie beliebig wachsen und haben keine Begrenzung in der Zahl der verwaltbaren Dateien.

Abweichungen

[Bearbeiten | Quelltext bearbeiten]

Dateisystem des Atari ST

[Bearbeiten | Quelltext bearbeiten]

Der Atari ST benutzt fĂŒr Disketten eine Variante des FAT12-Dateisystems und kann daher unter MS-DOS formatierte und beschriebene Disketten lesen und schreiben. UrsprĂŒnglich konnten auf dem Atari formatierte Disketten nicht unter MS-DOS benutzt werden, wohl aber unter MS-DOS formatierte und danach auf dem Atari beschriebene Disketten. Diese InkompatibilitĂ€ten wurden in spĂ€teren GEMDOS-Versionen behoben. Die Unterschiede der Atari-Implementierung im Einzelnen:[11]

  • UrsprĂŒnglich standen in den ersten Bytes des ersten Sektors einer bootfĂ€higen Atari-Diskette die Opcodes eines Assemblerbefehls fĂŒr den Motorola-68000-Prozessor, nĂ€mlich eine Sprunganweisung („bra“ fĂŒr „branch always“), um den BPB zu ĂŒberspringen. Da diese Opcodes jedoch in vielen Betriebssystemen als Kennung verwendet werden, um ein gĂŒltiges BPB-Format zu erkennen, wurde dort ab TOS 1.04 der relevante Teil eines x86-CPU-Opcodes geschrieben.
  • Das OEM-Label beginnt bei Atari-Disketten an Offset 2 statt 3 im Bootsektor, und es ist nur sechs statt wie sonst acht Bytes lang. In den drei hinzugewonnenen Bytes speichern Ataris eine Seriennummer, die den Wechsel von Disketten auch ohne Disketten-Wechsel-Signal sicherstellen sollen. Da das OEM-Label in vielen Microsoft-Betriebssystemen aber tatsĂ€chlich zur Erkennung des vorliegenden BPB-Formats herangezogen wird, kann ein „unĂŒbliches“ OEM-Label diverse Wechselwirkungen hervorrufen, die ein Medium unter diesen Systemen nicht mehr lesbar erscheinen lassen oder bei Schreibversuchen die Datenstrukturen im Dateisystem zerstören. Solange die BPB-EintrĂ€ge nicht vom Microsoft-Standard abweichen, stellt das jedoch kein Problem dar.
  • Das Media-ID-Byte wurde ursprĂŒnglich bei der Formatierung nicht korrekt gesetzt, was dazu fĂŒhren konnte, dass Medien unter anderen Betriebssystemen nicht erkannt wurden, insbesondere da auch das BPB-Format nicht exakt identisch ist.
  • Der Atari-Bootsektor ist, wenn die Diskette bootfĂ€hig ist, mit einer PrĂŒfsumme gegen Bitfehler gesichert. Die Summe aller 16-Bit-Big-Endian-Worte des Bootsektors muss 123416 ergeben, sonst wird der Bootsektor von Ataris als ungĂŒltig betrachtet. Um auf die richtige PrĂŒfsumme zu kommen, wurde der Wert an Offset +1FE16 passend verĂ€ndert. Da dieser jedoch normalerweise die Signatur 5516, AA16 enthĂ€lt (die einen IBM-kompatiblen Bootsektor anzeigen soll) und diese von einigen Systemen ausgewertet wird, sollte stattdessen ein unbenutztes Byte im Codebereich zum Ausgleich verĂ€ndert werden.
  • Atari GEMDOS unterstĂŒtzt, wie auch viele Versionen von MS-DOS bis 3.x, nur ClustergrĂ¶ĂŸen bis 4 KB.

Beispiele

[Bearbeiten | Quelltext bearbeiten]

DOS- bzw. Windows-Diskette mit FAT12

[Bearbeiten | Quelltext bearbeiten]
Offset Wert Bedeutung
000h–1FFh Bootsektor
0Bh–0Ch 00h02h=512 512 (=200h) Bytes pro Sektor, das höherwertige Byte steht hinten, also 0+2×256
0Dh 01h=1 1 Sektor pro Cluster (ein Eintrag im FAT bezieht sich jeweils auf einen Cluster)
0Eh–0Fh 01h00h=1 1 reservierter Sektor, also hier nur der Bootsektor (Lage 000h bis 1FFh)
10h 02h=2 2 File Allocation Tables sind vorhanden (normal)
11h–12h E0h00h=224 maximal 224 (=00E0h) VerzeichniseintrĂ€ge im Stammverzeichnis, das Stammverzeichnis belegt 14 Sektoren
13h–14h 40h0Bh=2880 2880 (=0B40h) Sektoren (zu je 512 Bytes, s. o.), also 1440 KiB = 1440 · 210 = 1474560 Byte
15h F0h 3,5-Zoll-Diskette, doppelseitig, 18 bzw. 36 Sektoren (in diesem Fall 18 Sektoren, siehe Wert unter 18h)
16h–17h 09h00h=9 9 Sektoren pro FAT. Die beiden FATs liegen direkt nach dem Bootsektor (Sektor 0, dem einzigen reservierten Sektor) folglich auf den Sektoren 1–9 (200h bis 13FFh) und 10–18 (1400h bis 25FFh)
18h–19h 12h00h=18 18 Sektoren pro Spur (die Anzahl der Spuren ergibt sich aus der Gesamtsektorenanzahl 2880, verteilt auf zwei Seiten (s. u.), dividiert durch 18 Sektoren pro Spur hier also zu 80 Spuren)
1Ah–1Bh 02h00h=2 zwei Seiten bzw. Schreib-Lese-Köpfe: Die Geometrie ergibt sich damit also zu: 2 Seiten (heads) × 80 Spuren (tracks) pro Seite × 18 Sektoren (sectors) pro Spur × 512 Bytes pro Sektor.
1Ch–1Fh 00h00h00h00h=0 kein versteckter Sektor vor dem Bootsektor
24h 00h=0 Physische Laufwerksnummer (0h bei Disketten)
36h–3Dh 46h41h
 46h 41h 54h 31h 32h =„FAT12“ (kann, muss aber nicht dort eingetragen sein)
1FEh–1FFh 55hAAh Signatur des Bootsektors, muss dort stehen, damit er als gĂŒltig anerkannt wird
200h–13FFh F0hFFh
 Erste FAT. Als Beispiel sind hier die ersten Bytes aufgefĂŒhrt:
F0 FF FF 03 40 00 05 60 00 FF 8F 00 09 A0 00 0B
Jeweils 3 Bytes beziehen sich auf 2 Cluster. Die Halbbytes ab cd ef stehen fĂŒr die 12-Bit Zahlen dab efc. Die ersten beiden EintrĂ€ge sind PseudoeintrĂ€ge, die eigentliche Nummerierung beginnt mit 2. Die Bytefolge im Beispiel entspricht also der Liste FF0 FFF 003 004 005 006 FFF 008 009 00A 00B. Cluster 2 wird ĂŒber 3, 4, 5, 6 fortgesetzt und endet in Cluster 6 (Eintrag FFF = −1) Cluster 7 wird in 8, 9, A, B fortgesetzt.
1400h–25FFh F0hFFh
 Zweite FAT. Sie enthĂ€lt dasselbe:
F0 FF FF 03 40 00 05 60 00 FF 8F 00 09 A0 00 0B
2600h–41FFh [
] Stammverzeichnis (root directory): Es belegt 14 Sektoren (s. o.) und enthĂ€lt EintrĂ€ge, die auch im Hexdump lesbar sind (in kurzem 8.3 und evtl. langem Format).
4200h–45FFh [
] Datenbereich: Datencluster Nr. 2 und 3 der Diskette. (Jeder Datencluster ist hier einen Sektor groß, wie unter 0Dh festgelegt.)
4600h–49FFh [
] Datencluster 4 und 5 der Diskette.

Derivate

[Bearbeiten | Quelltext bearbeiten]

Von FAT gibt es Derivate, die jedoch nicht aufbauend oder nicht vollstĂ€ndig kompatibel mit FAT12/16/32 sind. So kann TFAT zwar als regulĂ€res FAT-Dateisystem gelesen werden, die Funktion zur Erhaltung der Konsistenz ist jedoch nicht verfĂŒgbar. Bei FAT+ sind InkompatibilitĂ€ten mit Systemen, die Dateien > 4GiB nicht unterstĂŒtzen, zu erwarten, wĂ€hrend es in allen anderen FĂ€llen vollstĂ€ndig kompatibel bleibt. exFAT, das an moderne Erfordernisse angepasst wurde, hat einen komplett neu entwickelten Aufbau und benötigt einen neuen Dateisystem-Treiber, da die Datenstrukturen des Dateisystems auf einem Speichermedium mit FAT keine Gemeinsamkeiten hat.

TFAT

[Bearbeiten | Quelltext bearbeiten]

TFAT (Transaction-safe File Allocation Table) bietet insbesondere fĂŒr mobile GerĂ€te mit fest eingebautem Flash-Speicher Schutz vor BeschĂ€digungen des Dateisystems, zum Beispiel wenn wĂ€hrend einer Schreiboperation die Stromversorgung des GerĂ€tes ausfĂ€llt.

DafĂŒr wird die FAT doppelt gefĂŒhrt: einmal als FAT1 mit den aktuellen Dateizuordnungen und einmal als FAT0 mit dem letzten als konsistent bekannten Stand des Dateisystems. FAT0 wird erst nach erfolgreichem Abschluss einer Transaktion aktualisiert, indem FAT1 nach FAT0 kopiert wird. Eine Transaktion ist beispielsweise das Anlegen einer neuen Datei.

WĂ€hrend des Ablaufs einer Transaktion werden Änderungen am Dateisystem in neu angelegten Clustern gespeichert und FAT1 wird entsprechend angepasst. So kann im Fehlerfall eine unvollstĂ€ndig ausgefĂŒhrte Transaktion durch Kopieren von FAT0 nach FAT1 rĂŒckgĂ€ngig gemacht und das Dateisystem auf den Stand von vor Beginn der Transaktion zurĂŒckversetzt werden.

Das rechnerische Limit fĂŒr TFAT-Partitionen liegt bei einer SektorgrĂ¶ĂŸe von 512 Byte bei 2 TiB.

TFAT ist zwar explizit fĂŒr nicht entfernbaren Speicher gedacht, kann jedoch auch mit Wechselspeichermedien verwendet werden. Allerdings kann es zu Problemen kommen, wenn ein TFAT-Medium in einem anderen GerĂ€t ohne UnterstĂŒtzung fĂŒr TFAT verwendet wird. Es ist dann zwar prinzipiell möglich auf das Medium zuzugreifen, aber weil es dabei wie ein normales FAT-Medium behandelt wird, erfolgen SchreibvorgĂ€nge nicht transaktionssicher. Auch können aufgrund von Unterschieden in den Datenstrukturen mit TFAT erstellte Verzeichnisse nicht von FAT-Systemen gelöscht werden.

TFAT wird ĂŒblicherweise nicht von Desktopsystemen unterstĂŒtzt. UnterstĂŒtzt wird es von Microsoft fĂŒr MobilgerĂ€te seit Windows Mobile 6.5 und Windows CE ab Version 6.0.[12]

exFAT

[Bearbeiten | Quelltext bearbeiten]

exFAT (Extended File Allocation Table) ist ein speziell fĂŒr Flash-Speicher entwickeltes Dateisystem. EingefĂŒhrt wurde es 2006 mit Windows CE 6.0. exFAT soll dort eingesetzt werden, wo NTFS nur schwer oder gar nicht implementierbar ist und zugleich die BeschrĂ€nkungen von FAT32 – insbesondere maximale DateigrĂ¶ĂŸe von 4 GiB – vermieden werden sollen.

Windows Vista ab Service Pack 1, Windows 7 und neuere Windows-Versionen unterstĂŒtzen exFAT nativ,[13] fĂŒr Windows XP ab SP2 hat Microsoft ein Aktualisierungspaket.[14] Auf Apple-Computern wird exFAT ab Mac OS X Snow Leopard, Version 10.6.5, vollstĂ€ndig unterstĂŒtzt.[15] Am 27. August 2019 veröffentlichte Microsoft die Spezifikationen fĂŒr exFAT und erklĂ€rte, eine Implementation von exFAT im Linux-Kernel zu unterstĂŒtzen und die Patente daran ĂŒber das Open Invention Network freizugeben.[16] In der Folge wird exFAT vom Linux-Kernel ab Version 5.4 direkt unterstĂŒtzt,[17] in Kernel 5.7 wurde der bis dahin verwendet exFAT-Code durch einen von Samsung entwickelten und bereits auf Smartphones verwendeten, besseren Treiber ersetzt.[18] Zuvor gab es bereits einen proprietĂ€ren Linux-Treiber des Unternehmens Tuxera[19] sowie einen von der Firma Samsung unter der GPLv3 lizenzierten Treiber fĂŒr FUSE.[20][21][22]

Im Rahmen der Spezifikationen fĂŒr die Memory-Stick-XC- und SDXC-Flashspeicher-Kartentypen wird die Verwendung von exFAT vorgeschrieben; die Speicherkarten können zwar prinzipiell auch mit einem anderen Dateisystem formatiert werden, sind dann aber nicht standardkonform und daher nicht in jedem GerĂ€t (wie z. B. Digitalkamera) verwendbar.

Die Vorteile gegenĂŒber vorherigen Versionen sind:

  • Theoretische maximale DateigrĂ¶ĂŸe von 64 ZiB,[23] empfohlene maximale DateigrĂ¶ĂŸe 512 TB (maximale PartitionsgrĂ¶ĂŸe).
  • Ein Cluster darf maximal 32 MiB groß sein (theoretisch jedoch bis zu 2255 Bytes).
  • Es wurde eine separate Tabelle („Bit-Karte“) eingefĂŒhrt, welche die freien Cluster effizienter indiziert. Ein Bit wird jeweils einem Cluster zugeordnet. Dies wurde bei FAT32, FAT16 und FAT12 von der viel grĂ¶ĂŸeren Fragmenttabelle (oder „Fragmentkarte“) ĂŒbernommen, mit jeweils 32, 16, und 12 Bits pro Cluster; daher die Namen. Bei exFAT werden nur Cluster fragmentierter Dateien in der Fragmenttabelle aufgezeichnet.[24]
  • Das Dateisystem unterstĂŒtzt erweiterte Zugriffsrechte (ACL).
  • Es werden auch Transaktionen unterstĂŒtzt (nur mit TexFAT).

Nachteile:

  • Bei Dateisystemen ab 32 GB ist die Standard-ClustergrĂ¶ĂŸe 128 KB. Das bedeutet, dass selbst kleine Dateien immer mindestens 128 KB Platz auf dem Dateisystem belegen.[25]
  • Bestehende Dateisysteme können praktisch nicht vergrĂ¶ĂŸert oder verkleinert werden.

FAT+

[Bearbeiten | Quelltext bearbeiten]

FAT+ ist eine Idee von Udo Kuhnt (u. a. Enhanced DR-DOS), Luchezar Georgiev (u. a. 4DOS ab 7.50.1) und Jeremy Davis (u. a. Mitentwicklung am FreeDOS-Kernel), FAT32 und FAT16B rĂŒckwĂ€rtskompatibel so zu erweitern, dass auch Dateien ĂŒber 4 GiB gespeichert werden können. Ermöglicht wird damit auf einem bestehenden FAT32- und (theoretisch auch) FAT16-Dateisystem eine maximale DateigrĂ¶ĂŸe von 256 GiB –1 Byte.[26]

Die Erweiterung wird nur von sehr wenigen Betriebssystemen unterstĂŒtzt. Neben Enhanced DR-DOS gibt es beispielsweise auch einen universellen FAT-IFS-Treiber von Netlabs fĂŒr OS/2 und Windows NT.[27] Um zu verhindern, dass es zu KompatibilitĂ€tsproblemen kommt, kann bei der FAT+-Erweiterung die „Minor“-Version bei FAT32 von „0.0“ auf „0.1“ angehoben werden. Betriebssysteme, die FAT+ nicht unterstĂŒtzen, sollten dann FAT32+-Dateisysteme nicht mehr einhĂ€ngen können. Bei FAT16, das keine Versionsnummer nutzt, ist das allerdings nicht möglich. Wie ein System auf Dateien grĂ¶ĂŸer als 4 GiB reagiert, wenn es FAT+ nicht unterstĂŒtzt, wurde nicht getestet.[26]

FAT+ wurde 2017 von Tuxera, der Firma hinter NTFS-3G, auf dem Flash Memory Summit in Santa Clara als Alternative zu exFAT vorgestellt[28] und wird fĂŒr Universal Flash Storage auf eingebetteten Systemen angeboten.[29]

Siehe auch

[Bearbeiten | Quelltext bearbeiten]
  • Liste von Dateisystemen

Weblinks

[Bearbeiten | Quelltext bearbeiten]
  • FĂŒr das FAT32-Dateisystem geltende BeschrĂ€nkungen. Archiviert vom Original am 10. Januar 2015; abgerufen am 21. Juni 2025. 
  • Microsoft Extensible Firmware Initiative FAT32 File System Specification. (DOC; 219 kB; Abgerufen am 21. Juni 2025englisch). 
  • Working with File Systems. Abgerufen am 21. Juni 2025 (englisch). 
  • Programm zum Erstellen von FAT32-Partitionen > 32 GiB (getestet bis 2 TiB). Archiviert vom Original am 12. November 2020; abgerufen am 21. Juni 2025 (englisch). 
  • Extended FAT File System. Abgerufen am 21. Juni 2025 (englisch). 

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ Je nach Quelle sind es entweder maximal 65.536 oder 65.460 Dateien, die mit FAT16 maximal möglich sind:
    • Resource Kit – Working with File Systems. In: Windows XP Documentation. Microsoft, 11. September 2009, abgerufen am 23. MĂ€rz 2021 (englisch): „Table 13-7 FAT16 Size Limits 
 Files per volume: Approximately 65,536 (216 files)“ 
    • Jarret W. Buse: File Allocation Table (FAT). (Forum-Posting) linux.org, 21. August 2013, abgerufen am 23. MĂ€rz 2021 (englisch): „TYPE [–] Max File Size [–] Max Number of Files 
 [TYPE:] FAT16 [Max File Size:] 2 GB [Max Number of Files:] 65,460“ 
  2. ↑ Peter Gallagher: Things I've learnt...: The FAT16 File System (with SD cards). (Blog) 14. MĂ€rz 2011, abgerufen am 23. MĂ€rz 2021 (englisch): „
for SD Cards using FAT16, the maximum Root Directory Entries and Bytes Per Sector are invariably 512.“ 
  3. ↑ JĂŒrgen Rathlev: Personal Backup Version 6, Abschnitt: Einstellungen fĂŒr den Dateivergleich / Zeitstempelvergleich, personal-backup.rathlev-home.de, abgerufen am 29. Januar 2021.
  4. ↑ BeschrĂ€nkungen des FAT32-Dateisystems in Windows XP. In: Hilfe und Support. Microsoft Deutschland GmbH, 24. Mai 2011, abgerufen am 18. Oktober 2011: „Auf einer FAT32-Partition können keine Dateien erstellt werden, die grĂ¶ĂŸer als (2^32)-1 Byte sind (d. h. ein Byte weniger als 4 GB)“ 
  5. ↑ PCFreunde.de Tutorial: „Festplatten unter Windows mit FAT32 partitionieren“ 4. Februar 2010, im Webarchiv vom 12. April 2018 (Memento vom 12. April 2018 im Internet Archive), abgerufen am 28. Oktober 2020.
  6. ↑ Computerbild Tipp-Center: „Festplatte auf FAT32 formatieren: So funktioniert es“ 19. August 2018, abgerufen am 28. Oktober 2020.
  7. ↑ Microsoft Extensible Firmware Initiative – FAT32 File System Specification (2000) - Seite 34
  8. ↑ Matthias Paul: Need DOS 6.22 (Not OEM). In: alt.msdos.programmer. 20. Februar 2002, abgerufen am 14. Oktober 2006. 
  9. ↑ Wally Bass: Cluster Size. In: comp.os.msdos.programmer. 14. Februar 1994, abgerufen am 14. Oktober 2006. 
  10. ↑ Floppy Disk is Not Accessible, Not Formatted, or Not Recognized by Windows. In: support.microsoft.com. Abgerufen am 22. Februar 2015 (englisch). 
  11. ↑ Christoph Pfisterer: disktype Documentation, Kapitel 3.3.: ATARI ST
  12. ↑ TFAT Overview auf MSDN (3. April 2014)
  13. ↑ Brandon LeBlanc: Vista SP1 Whitepaper. Microsoft, 28. August 2007, archiviert vom Original am 12. September 2008; abgerufen am 22. Februar 2012. 
  14. ↑ Update fĂŒr Windows XP (KB955704). Microsoft, 26. Januar 2009, archiviert vom Original (nicht mehr online verfĂŒgbar) am 7. Januar 2011; abgerufen am 22. Februar 2012. 
  15. ↑ Apple macht viele Macs fĂŒr Microsofts Dateisystem exFAT fit. Abgerufen am 11. November 2010. 
  16. ↑ exFAT in the Linux kernel? Yes! In: microsoft.com. Open Source Blog, 2019, abgerufen am 29. August 2019 (amerikanisches Englisch). 
  17. ↑ Linux 5.4 freigegeben: exFAT-Support und EinschrĂ€nkungen fĂŒr Root. In: heise.de. 26. November 2019, abgerufen am 28. April 2020. 
  18. ↑ Jonathan Corbet: 5.7 Merge window part 2. In: LWN.net. 13. April 2020, abgerufen am 17. August 2020. 
  19. ↑ Tuxera, the NTFS-3G File System Provider, Signs Intellectual Property Agreement with Microsoft. 26. August 2009, archiviert vom Original am 18. Februar 2011; abgerufen am 22. November 2015 (englisch). 
  20. ↑ exFAT fs and Linux. 29. Januar 2009, abgerufen am 30. August 2009 (englisch). 
  21. ↑ exFAT fĂŒr Linux veröffentlicht stabiles Release. 20. Januar 2013, abgerufen am 20. Januar 2013. 
  22. ↑ Samsung veröffentlicht exFAT-Treiber unter GPL, heise open, 16. August 2013
  23. ↑ Beschreibung des ExFAT-Dateisystemtreiber. Microsoft, 29. September 2009, archiviert vom Original (nicht mehr online verfĂŒgbar) am 26. Februar 2015; abgerufen am 22. Februar 2012. 
  24. ↑ https://events.static.linuxfound.org/images/stories/pdf/lceu11_munegowda_s.pdf
  25. ↑ Standard-ClustergrĂ¶ĂŸe fĂŒr NFTS, FAT und exFAT. In: support.microsoft.com. 30. November 2018, abgerufen am 28. April 2020. 
  26. ↑ a b Udo Kuhnt, Luchezar Georgiev, Jeremy Davis: FAT+ Draft release, Rev. 2. Archiviert vom Original (nicht mehr online verfĂŒgbar) am 19. Februar 2015; abgerufen am 24. MĂ€rz 2007. 
  27. ↑ Welcome to FAT32.IFS on Netlabs. (Trac-Wiki-Seite) Netlab, 13. Januar 2021, abgerufen am 21. Juni 2025 (englisch): „Features 
 4) Some new features, like 
 ‱ Support for FAT+ -- files larger than 4 GB on FAT32 (a /plus switch is required).“ 
  28. ↑ Mikko VĂ€limĂ€ki: Introducing FAT+ â€“ A royalty-free file system technology for removable UFS cards. (PDF; 3,7 MiB) Tuxera Inc., 2017; abgerufen am 21. Juni 2025 (englisch): „FAT+ brings standardized large file support to a market full of non-standardized hacks for FAT32“ 
  29. ↑ Jean-Luc Aufranc: Tuxera FAT+ File System for Embedded Systems is Compatible with FAT32, Faster, and Supports Files up to 16TB. CNX Software, 27. Juli 2017, abgerufen am 21. Juni 2025 (englisch). 
Abgerufen von „https://de.wikipedia.org/w/index.php?title=File_Allocation_Table&oldid=262317709#FAT16“
Kategorien:
  • Dateisystem
  • Dateiverwaltung
  • DOS-Betriebssystemkomponente
  • Linux-Betriebssystemkomponente
  • OS/2-Betriebssystemkomponente
  • Windows-Betriebssystemkomponente
Versteckte Kategorie:
  • MediaWiki:Gadget/annotationPair

  • indonesia
  • Polski
  • Ű§Ù„ŰčŰ±ŰšÙŠŰ©
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • Ù…Ű”Ű±Ù‰
  • Nederlands
  • æ—„æœŹèȘž
  • PortuguĂȘs
  • Sinugboanong Binisaya
  • Svenska
  • ĐŁĐșŃ€Đ°Ń—ĐœŃŃŒĐșа
  • Tiáșżng Việt
  • Winaray
  • äž­æ–‡
  • РуссĐșĐžĐč
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id