web-dev-qa-db-ja.com

FATシステム内のファイルの最大数

FATファイルシステムでは、ファイルシステムあたりのファイルの最大数がFATテーブルのエントリ数と等しいというのは本当ですか。また、インデックス付きファイルシステムでは、ファイルシステムあたりのファイルの最大数がインデックスブロックの数–1に等しいことも事実です。

私はいくつかのものを読んでいて、それをよく理解しようとしています。

3
Avon

MS FATベースのファイルシステムには、ルートディレクトリに保存できるファイルの数に制限があり(数百のIIRC)、ファイル名が長いため、従来の「8 +3」よりも長いファイル/ディレクトリ名が保存されます。制限内のエントリの多くを消費します。

サブディレクトリの場合、FAT32ではサブディレクトリごとに最大65,000のエントリが許可されます(ここでも、長いファイル名は複数のスロットを使用します)。古いFAT16についてはよくわかりません。他のファイルシステムにも同様の制限があります(ext2/3には特定の調整なしで32,000のエントリ制限があります)、そうでないものや効果的にないものもあります(NTFSでは最大4,000,000,000が許可されます)。一部の検索ディレクトリは線形にあるため、ディレクトリあたりのエントリ数の制限に達するずっと前に、一部のファイルシステムでパフォーマンスの問題が発生します(特定のインデックス付きディレクトリを指定しない限り、FAT *は実行、ext2は実行、ext3は実行、ext4およびNTFSはデフォルトでインデックスディレクトリを実行しますIIRC) 。

4
David Spillett

FATファイルシステムでは、ファイルが空でない場合、各ファイルは少なくとも1つの割り当てクラスターを取得します。しかし、ディレクトリもクラスターを占めています。これは間接的な制限です。正確な式は、ファイル名の長さなど、いくつかのパラメーターによって異なります。 size = 0のファイルは、非常に特殊なケースです。

次に大まかに修正します。すべてのファイルのサイズがゼロより大きい場合、ファイルの最大数はFATテーブルのアロケーションユニットの数より少なくなります。

たぶん、同様の考えがインデックス付きファイルシステムに適用できます。

0