1

Для файловых систем FAT, для выполнения расчета кластера на сектор хорошо документировано, что ...

StartOfDataArea + ((ClusterNum - 2) * SectorsPerCluster) 

... рассчитаем первый сектор в кластере.

Почему значение 2 вычитается из номера кластера? Большинство объяснений говорят, что это потому, что область данных фактически начинается в кластере 2, но почему? Что \ где находятся два кластера, которые учитываются при расчете?

1 ответ1

3

Первые два сектора содержат специальные данные, поэтому они не учитываются в расчетах.

Вы можете найти информацию в Wikipedia Design файловой системы FAT, раздел Таблица размещения файлов:

Первые две записи в FAT хранят специальные значения:

Первая запись (кластер 0 в FAT) содержит идентификатор FAT [... текст удален ...]

Вторая запись (кластер 1 в FAT) номинально хранит маркер конца кластерной цепи, используемый форматером, но обычно всегда содержит 0xFFF / 0xFFFF / 0x0FFFFFFF, то есть, за исключением битов 31-28 в FAT32 Объемы этих битов обычно всегда установлены.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .