web-dev-qa-db-ja.com

FAT32ディスクが4GBファイルに制限されているのはなぜですか?

私は回避策を探していません。説明をお願いします。 Googleで見つけたリンクのほとんどは、ファイルの制限が4 GBであると言っているだけですが、その理由はわかりません。

私はウィキペディアによる説明を知っています: http://en.wikipedia.org/wiki/File_Allocation_Table#FAT32

しかし、これはまだ理由については詳しく説明していません。 (スキャンディスクはそれと何の関係がありますか?)

たぶん、4GBのファイルサイズ制限を克服することが可能かどうかを理解するでしょう。

16
user5243421

その答えを拡張するために、FAT32はFAT16とFAT12から派生しています。 FAT12が導入されたとき、PCは16ビットOSを実行し、10メガバイトを超えるドライブはありませんでした。 PC上の誰もが、利用可能な最大のドライブの400倍のサイズのファイルが必要になるとは誰も予想していなかったと思います。さらに、Microsoftがファイルサイズのビット32〜39を保持するために各ディレクトリエントリに追加のバイトを割り当てるという先見の明を持っていたとしても(それぞれ最大1テラバイトのファイルを許可)、アプリケーションプログラマがそれを使用したかどうかは疑わしいです。 32ビットを超える整数演算を便利にサポートする言語はありませんでした。 32ビットの数学でさえかなり派手だと考えられていました。

私の頭の中でより大きな疑問は、連続番号のセクターに基づいていない標準の非FAT32ストレージインターフェイスに移行するための努力に気付いていない理由です。フラッシュドライブとハードドライブの両方が、さまざまなセクター書き込みの論理的重要性を知ることで恩恵を受ける可能性があります(フラッシュの場合、摩耗管理を実行するときに削除されたセクターをコピーする必要がなくなるため、ハードドライブの場合、それが可能になるため)データ整合性要件に違反しない方法で再シーケンスされる書き込み)。

8
supercat

FAT32は32ビットのファイルサイズを格納し、32ビットで格納できる最大値は2 ^ 32-1〜 = 4.29e9であるためです。 2 ^ 32-1バイト= 4GB-1バイト。

(これは実際、ウィキペディアの記事で説明されています。)

26
Fred Foo

私も同じ疑問を持っていますが、最終的に、すべてのファイルに独自のメタデータがあり、ファイルサイズに4バイトが含まれていることに気付きました。したがって、最大ファイルサイズは4G-1バイトです。

0
Mr rain