Для чего FAT резервирует кластеры?

386
VortixDev

Основываясь на информации, которую я вижу на этой странице :

  • FAT12 использует максимум 4086 кластеров (2 ^ 12 - 10)
  • FAT16 использует 65526 ​​(2 ^ 16 - 10)
  • FAT32 использует ~ 268435456 (2 ^ 28)

Я понимаю, что FAT32 использует 28 бит вместо 32, поскольку 4 бита зарезервированы, но как насчет расхождений в максимальном количестве кластеров? Почему FAT12 и FAT16 имеют на 10 доступных кластеров меньше, чем они должны делать в зависимости от количества доступных битов?

Эти кластеры присутствуют, но зарезервированы для определенной функциональности? Если да, то для чего они используются?

1

1 ответ на вопрос

2
Akina

Почему FAT12 и FAT16 имеют на 10 доступных кластеров меньше, чем они должны делать в зависимости от количества доступных битов?

  1. Первые 2 значения для номеров кластеров (0x0 и 0x1) недоступны - место для них в таблице FAT используется для хранения подписи FAT. Первый номер кластера 0x2.

  2. Последние 8 значений для номеров кластеров (0xff8..0xfff и 0xfff8..0xffff) зарезервированы для специальных отметок (конец цепочки кластеров, сбой кластера и т. Д.)

Другие значения доступны для кодирования номера кластера.

Кроме того, сама Microsoft заявляет в документации FAT (я перефразирую): «Мир полон ошибочных драйверов FAT, поэтому лучше держаться подальше от 16 или более кластеров от значений, упомянутых выше» (то есть стараться не создавать FAT12 с 4085 кластерами или FAT16 с 4087 кластерами, FAT16 с 65525 кластерами или FAT32 с 65527 кластерами, так как многие драйверы FAT там будут сбиты с толку и попробуют драйвер FAT32 / 16/12, где это не подходит (документация FAT, стр. 15) Ro-ee 5 лет назад 0

Похожие вопросы