Таблица размещения файлов.

Таблица размещения файлов.

От блока начальной загрузки переходим к таблице размещения файлов (FAT). Обычно она существует в двух идентичных копиях. Количество копий (1 или 2) указано в загрузочном секторе (поле 0010). Первая копия FAT начинается после зарезервированных секторов, размер которых указывается в поле 000E загрузочного сектора. Размер каждой копии FAT также хранится в загрузочном секторе (в FAT-32 это содержимое поля 0024). Вторая копия FAT, если она существует, начинается в следующем секторе за первой копией.

Таблица состоит из записей одинакового размера. Нумерация записей начинается с 0, и каждая запись соответствует кластеру с тем же номером (адресом). Длина каждой записи зависит от версии файловой системы. В FAT-12 используются 12-разрядные, в FAT-16 — 16-разрядные, а в FAT-32 — 32-разрядные записи.

Если кластер еще ни разу не использовался и свободен, его запись заполнена нулями. Записи хотя бы однажды выделявшихся кластеров отличны от нуля и содержат адрес следующего кластера в файле или каталоге. Если кластер завершает цепочку файла или каталога, его запись содержит маркер конца файла: в FAT 12 это любое значение больше FF8, в FAT 16 — FFF8 и в FAT-32 — FFF. Если кластер помечен как поврежденный и не должен использоваться системой, его запись содержит значение FF7 в FAT-12, FFF7 в FAT 16 или FFF FF7 в FAT-32.

Заметим, что адресация кластеров файловой системы начинается с 2. Это значит, что записи 0 и 1 в структуре FAT не используются. Обычно в записи 0 хранится копия типа носителя, а в записи 1 — флаг обновления файловой системы.