Файловая система FAT

Стурктура раздела FAT 16
Смещение Длина (сект.) Тип Описание
0 1 BR Загрузочный сектор
1 r-1 Зарезервированные сектора
r f*2 FAT Таблица размещения файлов FAT
r+f*2 d DIR Корневая директория
r+f*2+d всё оставшееся Кластеры (начальный кластер — #2)

Пояснения к таблице:

  • r — количество зарезервированных секторов, указывается в загрузочном секторе;
  • f — количество секторов под таблицу размещения;
  • d — количество секторов под корневую директорию (d = ceil(nmax * 32 / 512), где nmax — макс. кол-во записей в корневой директории).
Структура загрузочного раздела FAT-12, FAT-16
Имя Смещение Длина Тип Описание Значения
BS_jmpNop 0000h 3 программа jump + nop EBh xx 90h или E9h xx xx
BS_OEMName 0003h 8 строка OEM-имя MSDOS или MSWIN4.1
BPB_BytesPerSec 000Bh 2 целое Байтов в секторе 512 (обычно), 1024, 2048, 4096
BPB_SecPerClus 000Dh 1 целое Секторов в кластере
BPB_RsvdSecCnt 000Eh 2 целое Зарезервированных секторов
BPB_NumFATs 0010h 1 целое Копий FAT 2 (обычно)
BPB_RootEntCnt 0011h 2 целое Макс. записей в корне 0 для FAT-32
BPB_TotSec16 0013h 2 целое Секторов всего (<32 Мибайт) 0 — используется BPB_TotSec32
BPB_Media 0015h 1 код Тип носителя F0h — сменный носитель,
F8h — несменный
BPB_FATSz16 0016h 2 целое Секторов на FAT 0 для FAT-32
BPB_SecPerTrk 0018h 2 целое Секторов на трек
BPB_NumHeads 001Ah 2 целое Головок
BPB_HiddSec 001Сh 4 целое Скрытых секторов Обычно 0
PBP_TotSec32 0020h 4 целое Секторов всего 0 — используется BPB_TotSec16
В случае FAT-12 или FAT-16
BS_DrvNum 0024h 1 код Номер устр-ва (для int13) 00h — НГМД, 80h — НЖМД
BS_Reserved1 0025h 1 код Зарезервировано для NT 00h при форматировании
BS_BootSig 0026h 1 код Сигнатура дополнения 29h
BS_VolID 0027h 4 код Серийный номер Обычно дата-время форматрирования
BS_VolName 002Bh 11 текст Имя устройства Должно совпадать с записью в корневой директории. "NO NAME ", если нет имени.
BS_FilSysType 0036h 8 текст Имя FAT "FAT12", "FAT16", "FAT"
003Eh 448 программа Программа загрузчика
01FEh 2 код Сигнатура исполнимого кода 55h AAh
В случае FAT-32
BPB_FATSz32 0024h 4 целое Секторов на 1 копию FAT
BPB_ExtFlags 0028h 2 биты Дополнительные флаги биты 0—3 — актуальная копия FAT (если отключено отражение),
бит 7 — отражение FAT в реальном времени
BPB_FSVer 002Ah 2 число Версия ФС. 0000h — актуальная версия
BPB_RootClus 002Ch 4 число Кластер корневой директории 2 (обычно)
BPB_FSInfo 0030h 2 число Сектор FSINFO 1 (обычно)
BPB_BkBootSec 0032h 2 число Сектор с копией бутблока 6 (обычно)
BPB_Reserved 0034h 12 Резерв
BS_DrvNum 0040h 1 код Номер устр-ва (для int13) 00h — НГМД, 80h — НЖМД
BS_Reserved1 0041h 1 код Зарезервировано для NT 00h при форматировании
BS_BootSig 0042h 1 код Сигнатура дополнения 29h
BS_VolID 0043h 4 код Серийный номер Обычно дата-время форматрирования
BS_VolName 0047h 11 текст Имя устройства Должно совпадать с записью в корневой директории. "NO NAME ", если нет имени.
BS_FilSysType 0052h 8 текст Имя FAT "FAT32"
005Ah 420 программа Программа загрузчика
01FEh 2 код Сигнатура исполнимого кода 55h AAh
Значения номеров кластеров
FAT12 FAT16 FAT32 Значение
000h 0000h 00000000h Свободный кластер
002h

FF6h
0002h

FFF6h
00000002h

0FFFFFF6h
Кластер в начале или середине цепочки (номер означает следующий в цепочке)
FF7h FFF7h 0FFFFFF7 Сбойный кластер
FF8h

FFFh
FFF8h

FFFFh
0FFFFFF8h

0FFFFFFFh
Последний кластер в цепочке
Структура записи директории FAT
Смещение Длина Тип Описание Значения
00h 8 текст Имя файла до расширения
08h 3 текст Расширение
0Bh 1 биты Атрибуты Бит 0 — метка тома,
бит 1 — директория,
бит 2 — скрытый,
бит 3 — системный,
бит 4 — только чтение,
бит 5 — архивный
0Сh 1 Резерв для NT 0
0Dh 1 целое 1/10 секунд создания FIXME (только LFN)
0Eh 2 целое Минуты и часы создания (только LFN)
10h 2 целое Дата создания (только LFN)
12h 2 целое Дата последнего обращения (только LFN)
14h 2 Резерв для OS/2 0
16h 2 целое Время (в 2 с интервалах)
18h 2 целое Дата
1Ah 2 целое Кластер
1Ch 4 целое Длина в байтах

1)

cifra/embedded/fat.txt · Последние изменения: 2009/05/26 18:16 — vovanium
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 3.0 Unported