Maximale Dateigrösse von 4GB bei FAT32-Dateisystem berechnen
-
Hallo zusammen
kann mir jemand erklären wie man bei FAT32 auf die maximale Dateigrösse von 4GB kommt? Die theoretisch maximale Festplattengrösse von 8TB ist mir klar, die Einschränkung der Dateigösse nicht.
-
Ich habe zwar keine Ahnung von FAT, aber vermutlich wird irgendwo ein 32-Bit Wert für die Speicherung der Daten verwendet. Mit 32 Bit kann man 4 GB adressieren.
-
http://forum.chip.de/windows-alte-versionen/fat32-dateigroesse-635211.html
Die "32" (FAT32) bedeutet nichts anderes, als dass die Werte in der FAT je 32 Bit breit sind. Damit sind 2^32 = 4.294.967.295 Cluster addressierbar.
-
Es werden nur 28 Bit für die Clusternummern verwendet, 4Bit sind reserviert.
2^28 = 268'435'456 (Cluster)
Mit einer maximalen Clustergrösse von 32kB (64 Blöcke a 512Byte) kommt man auf eine Gesamtgrösse von 8TB.Meine Frage war wie sich die Dateigrösse von 4GB errechnet nicht die Anzahl der Cluster.
Dr. Prof. Google habe ich auch schon gefragt
-
2^32 = 4294967296
also: 4GiB -1 byteDas FAT-Dateigrößenfeld in den Directory-Einträgen ist nur 32 Bit (4Byte) breit.
http://en.wikipedia.org/wiki/File_Allocation_Table#Directory_table
-
Wikipedia schrieb:
This limit is a consequence of the file length entry in the directory table
Erster Link bei Google, Suchbegriff: "fat32 maximum file size"
MfG SideWinder
-
Also im Wikipedia Artikel über FAT steht, dass zum speichern der Dateigröße in Byte nur 4 Byte zur Verfügung stehen. Daraus schließe ich mal, dass eine Datei maximal 2^32 Bytes groß sein kann also 4GB.
-
Ich habe das hier am Beispiel FAT12 konkret untersucht: http://www.henkessoft.de/OS_Dev/OS_Dev3.htm#mozTocId427492
Dieses Feature hat sich bis FAT32 leider nicht geändert.
Siehe: http://de.wikipedia.org/wiki/File_Allocation_Table#Stammverzeichnis_und_Unterverzeichnisse
-
Besten Dank an alle.
Für die Angabe der max. Dateigrösse stehen nur 4Bytes zu Verfügung. Das ist was ich gesucht habe.
-
Der root dir entry ist eben ein Erbe aus der Zeit von FAT12.
Da wurde um jedes Bit gekämpft.Ich habe den Grund in der deutschen Wikipedia ergänzt.
FAT32:
Bezüglich der Clustergröße (sectors per cluster) sind erlaubte Werte: 1, 2, 4, 8, 16, 32, 64, 128.
Erlaubte Zahl der Bytes je Sector geht bis 64 K.
Allerdings sind dort viele Punkte enthalten, die mehr definiert als erlaubt sind. MS OS gehen sehr restriktiv damit um. Als Hobby-OSDeveloper kann man die technischen Möglichkeiten freier ausreizen.
-
@Erhard Henkes
besten Dank für Ihren Beitragin der deutschen Wikipedia steht
Die Cluster sind je nach Partitionsgröße zwischen 512 Byte und maximal 32 KiB groß.
ich dachte auch die maximale Anzahl an Blöcken sei 64 und die maximale Blockgrösse 512Bytes.