Die Dateigröße von FAT wird in einem 32-Bit-Feld gespeichert.
Bei FAT32 wird das Feld als unsigniert behandelt, wodurch Dateien mit bis zu 4294967294 Bytes zulässig sind (anscheinend ist 4294967295 aus irgendeinem Grund nicht zulässig, möglicherweise wurde "-1" irgendwo als Flag verwendet).
Bei FAT16 ist das Feld auf den Bereich einer 32-Bit-Zahl mit Vorzeichen beschränkt. Ich denke, der Grund dafür ist älterer Code, der zurückgeschrieben wurde, als 2 GB für eine Datei als verrückt angesehen worden wären. FAT16-Dateisysteme über 2 GB waren sowieso eine Seltsamkeit *.
AIUI bei FAT12 ist die Dateigröße auf 32 MB (nicht 32 KB!) Beschränkt, nicht aufgrund von Beschränkungen, die sich auf die Dateigröße beziehen, sondern weil dies die maximale Größe des Datenträgers ist und Sie keine größere Datei als den Datenträger haben können. Gleiches gilt für frühere Versionen von FAT16.
* Die von DOS 4 bis Windows 95 verwendete Version von FAT16 war auf 64 Sektoren pro Cluster beschränkt, was bei typischen 512-Byte-Sektoren eine Größe von etwa 2 GB betrug. NT verdoppelte die maximalen Sektoren pro Cluster und ermöglichte ~ 4-Gigabit-Volumes mit 512-Byte-Sektoren und 98 zusätzliche Unterstützung für das Lesen / Schreiben, ohne das Erstellen oder Reparieren solcher Voluleme. Theoretisch waren größere Volumina möglich, wenn das zugrunde liegende Gerät größere Sektoren hatte, aber ich habe keine Anzeichen dafür gesehen, dass dies in der Praxis tatsächlich geschah.