Понимание FAT16

Я занимаюсь разработкой запоминающего USB-устройства флэш-памяти с FAT16 файловая система. Это работает должным образом, однако мне трудно понять, что происходит в сегментах FAT.

Когда я начинаю, у меня есть один файл длиной 56 байт в корневом каталоге, его длина 32 бита, а данные хранятся во втором кластере (0 и 1 нельзя использовать в FAT).

если я смотрю на дамп памяти сегмента FAT, я вижу:

f8 ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00... zeros until the end

Как я понимаю, последний 0xFFFF означает, что этот кластер является последним кластером в цепочке для этого файла.

Все идет нормально.

Но... когда я расширяю размер фактического файла до 4032 байт, сегмент FAT превращается в

f8 ff ff 00 f0 ff 05 60 00 07 f0 ff 00 00 00 00 00... zeros until the end

Кто-нибудь может объяснить, что здесь происходит?

Я вижу несколько вещей, которые не могу объяснить:

1. почему 4 системных зарезервированных байта меняются?

2. Я не вижу 0xFFFF, что означает, что цепочке кластеров нет конца?

Если это кому-нибудь поможет, размер блока составляет 512 байт, файловая система отформатирована по 2 сегмента на кластер.

1 ответ

Решение

Это была FAT12, а не FAT16, с которой я работал.

FAT12-16 отличается количеством кластеров, а не строкой, записанной в загрузочном секторе.

Другие вопросы по тегам