.FAT領域はクラスタのリンクを管理する
「地図」の役割
各クラスタがどのファイルに属するか、また次に続くクラスタはどこかといった情報を格納している
ファイルが複数クラスタに分かれて保存される場合、このFAT領域をたどることで全データにアクセスできる
.ルートディレクトリ領域はファイルのメタ情報を管理する FAT32ボリュームでは存在しない
メタデータ = ファイル名、拡張子、属性(読み取り専用、隠しファイルなど)
FAT12やFAT16ではルートディレクトリのサイズが固定
ルートディレクトリはファイルの「目次」のような存在で、ファイルの入り口情報がここにまとまっている
FAT32のルートディレクトリの特徴
位置が固定されていない
FAT12やFAT16ではルートディレクトリがファイルシステム内の特定位置に固定されていますが、FAT32ではルートディレクトリも通常のディレクトリと同じく、データ領域内のクラスタに格納されます。
クラスタチェーンで管理される
FAT領域によって、ルートディレクトリのクラスタはリンクされており、サイズ制限がありません(FAT12/16ではルートディレクトリのエントリ数に制限がありました)。
より柔軟な構造
これにより、ルートディレクトリに大量のファイルやサブディレクトリを保存することが可能です。
具体的には…
FAT32では、ブートセクタに「ルートディレクトリの開始クラスタ番号」が記録されており、そこからFAT領域をたどってディレクトリの内容を読み込みます。
ルートディレクトリが他のディレクトリと同じ形式・方法で管理されるため、拡張性が高いです。
ざっくり言うと、
FAT32のルートディレクトリは「存在するけれど、もはや特別扱いではない」というイメージです。
.データ領域は実データを保存する
C:\にあるディレクトリエントリにはC:\直下のファイルやサブディレクトリの情報しかなく、C:\Windows\にあるファイルやサブディレクトリの情報はC:\Windows\にあるディレクトリエントリに格納されている
あるディレクトリにファイルのみが10個あった場合、ディレクトリエントリは320バイトになる
ただしこれはすべてのファイルが8.3形式のファイル名の場合。
LFNが使われている場合は32バイト ×(LFNエントリ数 + 通常エントリ)となる
LFNエントリの構造(32バイト)
| バイト位置 | フィールド名 | 内容・役割 |
| 0 | Sequence Number | このエントリが何番目か(末尾ビットで最後かを示す) |
| 1?10 | Name Part 1 | UTF-16でエンコードされた名前の最初の5文字(10バイト) |
| 11 | Attribute | 必ず 0x0F(LFN識別用) |
| 12 | Type | 通常は 0x00 |
| 13 | Checksum | 対応する8.3形式のエントリに対するチェックサム |
| 14?25 | Name Part 2 | 名前の次の6文字(12バイト) |
| 26?27 | First Cluster (always 0) | 未使用(FATでは常に0) |
| 28?31 | Name Part 3 | 名前の最後の2文字(4バイト) |
合計で最大13文字分のファイル名を1エントリで格納できます。
複数エントリで連結
- 長いファイル名は、必要に応じて複数のLFNエントリを逆順で並べることで保存されます。
- 例:ファイル名「Vacation2025_Plan.txt」は2~3個のLFNエントリに分割。
- 最後のエントリにはSequence Numberの上位ビット(0x40)がセットされ、終端であることを示します。
- 並び順(ディスク上):
| 表示順 | エントリ種別 | 内容 |
| ① | LFN#1 | Plan.txt+末尾側の文字列(最大13文字) |
| ② | LFN#2 | Vacation2025_(残りの先頭側) |
| ③ | 通常エントリ | VACATI~1.TXT+クラスタ情報など |