web-dev-qa-db-ja.com

FAT32が2 ^ 28クラスター未満に制限されているのはなぜですか?

FAT16では、最大クラスターサイズが32Kの場合、最大パーティションサイズは2GBです。

これは、アドレス可能なユニットの数にクラスターサイズを掛けて計算されます。

(216 アロケーションユニット)*(215 バイト/クラスター)= 2 GiB

ただし、FAT32を使用して同じ計算を行うと、2を使用した場合に最大値の8 TiBよりもはるかに大きな値が得られます。32 クラスター。

(232 アロケーションユニット)*(クラスターサイズ)

512バイトのクラスターサイズを使用すると、すでに2 TiBに達しています。

XP TechNet記事、Microsoft says

FAT32ボリューム上のクラスターの最大数は268,435,445であり、ファイルアロケーションテーブル(FAT)に必要なスペースと共に、クラスターごとに最大32 KBがあります。

これにより、最大クラスターサイズは2になります。28 -11。

FAT32 2のクラスターの最大数はなぜですか28-11ではなく232、2であることを考えると16 FAT16で?

31
QMord

FAT32は32ビットではなく28ビットのみを使用します。4ビットは「将来の使用のために予約」されています。

したがって、FAT32パーティションの最大クラスター数は268,435,455(228-1)

参考

VFATは賢いシステムでしたが、FAT16の制限に対処していませんでした。その結果、新しいファイルシステム(およびVFATの場合のように優れたFAT管理だけでなく)がWindows 95 OSR2で登場しました。 FAT32と呼ばれるこのファイルシステムは、FATエントリに32ビット値を使用します。実際、4ビットは将来の使用のために予約されているため、28ビットのみが使用されます。

FAT32ファイルシステムの登場により、パーティションあたりのクラスターの最大数は65535から268,435,455(228-1)。したがって、FAT32ははるかに大きなパーティション(最大8テラバイト)を許可します。 FAT32パーティションの理論上の最大サイズは8 TBですが、Windows 9xシステムでは、NTFSを促進するためにMicrosoftが自主的に32 GBに制限しています。

49
Josh