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

Вопрос или проблема

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

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

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

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

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

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

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

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

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

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

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

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

Ссылка

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

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

.

Ответ или решение

Файловая система FAT32 зачастую вызывает вопросы, связанные с её ограничениями, особенно в контексте максимального количества кластеров. Для понимания того, почему FAT32 ограничена количеством кластеров, близким к \(2^{28}\), необходимо рассмотреть теорию работы FAT32 и обратить внимание на ее структуру.

### Теория

Файловая система FAT (File Allocation Table) была разработана в 1980-х годах и с тех пор претерпевала несколько эволюций, включая FAT16, FAT32 и более поздние версии. FAT32 использует 32-битные значения для записей в таблице размещения файлов. Однако ключевым моментом является то, что из этих 32 бит только 28 фактически используются для обозначения кластеров на диске, поскольку оставшиеся 4 бита зарезервированы для будущего использования.

Структура 32-битных FAT-адресов позволяет теоретически использовать \(2^{32}\) кластеров, но в реальности только 28 из этих битов выделены для идентификации кластеров. Это приводит к максимальному числу кластеров, равному \(2^{28}\) или 268,435,456. Однако фактически ограничение ещё меньше—268,435,445, как указано в документации Microsoft, чтобы учесть служебные нужды и структурное оформление таблицы, такие как зарезервированные кластеры и кластерные метки окончания цепочки (например, EOF — End Of File).

### Пример

Например, если мы используем максимальный размер кластера, поддерживаемый FAT32 в 32 КБ, то максимальный объём раздела определяется как:
\[
\text{Максимальное количество кластеров} \times \text{Размер кластера} = 268,435,445 \times 32,768 \text{ байт} = \text{около 8 ТБ}
\]

Это позволяет хранить довольно большие объёмы данных, но по сравнению с возможными 32-битными адресами, реальные ограничения ниже из-за зарезервированных бит.

### Применение

Зная структурные ограничения FAT32, следует учитывать ряд практических аспектов при её использовании. Хотя FAT32 предоставляет 8 ТБ теоретического максимума, Microsoft ограничила использование максимального размера разделов до 32 ГБ в некоторых версиях Windows (например, Windows 9x), чтобы стимулировать использование систем NTFS, более подходящих для больших объёмов данных и поддерживающих больший размер файлов (более 4 ГБ). Это ограничение не применяется ко всем системам, но показывает намерение оптимизировать использование файловых систем в зависимости от их предназначения.

FAT32 также широко применяется в мобильных и встраиваемых устройствах благодаря своей простоте и широкой поддержке, несмотря на ограничения в размере кластеров и файлов. Для массивных архивов и систем хранения данных предпочтительнее использовать другие файловые системы, такие как NTFS или exFAT, которые ни в коей мере не ограничены 32-битной адресацией и могут более эффективно управлять большим количеством файлов и больших размеров.

### Заключение

В заключение, ограничение FAT32 в \(2^{28}\) кластеров связано с явным выбором дизайна системы и резервировании бит для будущих нужд, хотя фактический предел числа кластеров слегка ниже этого числа. Это является результатом баланса между совместимостью, простотой, и стремлением разработать систему, способную справляться с растущими объемами данных в то время, когда она была разработана. Выбор файловой системы в современном контексте должен учитывать ограничения FAT32 и перейти к более современным системам при необходимости работы с большими объемами данных.

Оцените материал
Добавить комментарий

Капча загружается...