Почему FAT32 ограничен 2^28 кластерами?

В FAT16 максимальный размер раздела составляет 2 ГБ, а максимальный размер кластера - 32 КБ.

Это рассчитывается путем умножения количества адресуемых единиц на размер кластера.

(216 единиц распределения) * (215 байт / кластер) = 2 ГиБ

Однако с FAT32, когда я делаю то же самое вычисление, я получаю намного большее число, чем максимум 8 TiB при использовании 232 кластеров.

(232 единицы размещения) * (размер кластера)

Если я использую кластер размером 512 байт, я уже достиг 2 ТиБ.

В статье XP TechNet Microsoft говорит, что

Максимально возможное количество кластеров на томе FAT32 составляет 268 435 445, и на каждый кластер приходится максимум 32 КБ вместе с пространством, необходимым для таблицы размещения файлов (FAT).

Это устанавливает максимальный размер кластера в 228 - 11.

Почему максимальное число кластеров в FAT32 228-11, а не 232, учитывая, что оно было 216 в FAT16?

1 ответ

Решение

FAT32 использует только 28 битов, а не 32. Четыре бита "зарезервированы для будущего использования".

Итак, FAT32 раздел имеет максимальное количество кластеров 268 435 455 (228-1)

Ссылка

Хотя VFAT была умной системой, она не учитывала ограничений FAT16. В результате в Windows 95 OSR2 появилась новая файловая система (а не только лучшее управление FAT, как в случае с VFAT). Эта файловая система, называемая FAT32, использует 32-битные значения для записей FAT. Фактически используются только 28 битов, поскольку 4 бита зарезервированы для будущего использования.

С появлением файловой системы FAT32 максимальное количество кластеров на раздел увеличилось с 65535 до 268 435 455 (228-1). Таким образом, FAT32 допускает намного большие разделы (до 8 терабайт). Хотя максимальный теоретический размер раздела FAT32 составляет 8 ТБ, Microsoft добровольно ограничила его 32 ГБ в системах Windows 9x для продвижения NTFS.

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