- FATの場合,ファイルが削除されるとFATの該当エントリは全て0になる(クラスタチェーンの情報が消える)。
- ファイルシステムの管理テーブル上にあるファイル名の先頭が0xe5になる。そのため同一ディレクトリに先頭文字だけが異なる複数のファイル名が存在していた場合、名前の衝突が起きる。
- ディレクトリエントリの1エントリサイズは32byte。ファイル名、コンテンツの開始アドレス、属性、タイムスタンプが含まれる。
- ファイルアロケーションテーブルは複数のクラスタがコンテンツとして割り当てられた際の格納場所の追跡に用いられる。FATのバージョン12, 16, 32はファイルアロケーションテーブルのエントリサイズに相当する。
- FAT12の場合は理論的には最大クラスタ数は4096(実質は4084)
- FAT16の場合は理論的には最大クラスタ数は65536(実質は65524)
- FAT32の場合は268435445だがMBRの制約で67092481となる。
- FATファイルシステムのレイアウトは1. 予約済(ブートセクタ)、2. FAT、3. データの3エリアで構成される。
- FAT32だけがバックアップをもつ。ブートセクタの50-51バイト目にバックアップ用のセクタ番号が記載されている。48-49バイト目にFSINFOのセクタ番号が記載されている。通常はセクタ1番目。空きクラスタ数と次に利用可能なクラスタ番号を通知する。必須でないため、OSが使わない可能性もある。
1. 予約済(ブートセクタ)は以下の構成
- ブートコードへのジャンプコード(0-2バイト)
- BIOS パラメータブロック(3-61バイト) (FAT32は3-89バイト)
- ブートコードとエラーメッセージ(62-509バイト) (FAT32は90-509バイト)
- シグネチャ(510-511バイト 0x55AA)
2. FAT 12/16(32)は以下の構成
- 11-12 セクタのバイト
- 13 1クラスタのセクタ数
- 19-20 パーティション内のセクタ数 0の場合は32-35の4バイトを使って記載
- 43-53(71-81) ボリュームのラベル名(ASCII)
- 54-61(82-89) ファイルシステムタイム(ASCII) FAT, FAT12, FAT16
クラスタ番号2がルートディレクトリ
ファイルアロケーションテーブルのエントリ番号0がメディアタイプ
1がダーティステータス、2からルートディレクトリのクラスタ
ファイルアロケーションテーブルの値は以下のように使われる。
- 0 unallocated
- 数字は次のクラスタ
- 最後のファイルは0xFF8(FAT12), 0xFFF8(FAT16), 0xFFFF FFF8(FAT32)
- バッドクラスタは0xFF7(FAT12), 0xFFF7(FAT16), 0xFFFF FFF7(FAT32)