FAT 32
Когда разрабатывалась FAT, жесткие диски размером 2 Гбайт можно было встретить разве что в научно-фантастических романах. В настоящее время практически все системы нижнего уровня оснащаются жестким диском не менее 2 Гбайт, а чаще всего 16 или 20 Гбайт. При использовании стандартной FAT вы можете создать раздел размером не более 2 Гбайт. Это ограничение приводит к тому, что пользователи больших жестких дисков испытывают неудобства в организации файлов: в их распоряжении несколько дисков.
Для устранения этого ограничения Microsoft предложила новую файловую систему с расширенными возможностями, называемую FAT 32. Эта файловая система работает как стандартная FAT, но имеет отличия в организации хранении файлов. Кроме того, FAT 32 можно установить с помощью программы Fdisk, в отличие от VFAT, которая является частью Vmm. vxd. Система FAT 32 была впервые реализована в Windows 95 OEMServiceRelease 2 (OSR2). Она встроена также и в Windows 98/Me, а также в Windows 2000.
Основное преимущество FAT 32 — это возможность использования 32-разрядных записей, вместо 16-разрядных, что приводит к увеличению числа кластеров в разделе до 268 435 456 (вместо 65 536, или 216). Это значение эквивалентно 228, а не 232, поскольку четыре бита из 32 зарезервированы для других целей.
При использовании FAT 32 размер раздела может достигать 2 Тбайт (1 Тбайт равен 1 024 Мбайт). Новая файловая система может иметь 4 294 967 296 (232 ) кластеров размером 512 байт, а размер единичного файла может составлять 4 Гбайт.
Существует еще одно отличие FAT 32 от ее предшественниц — положение корневого каталога: он не занимает фиксированного места на диске, как в FAT 16. Корневой каталог в FAT 32 может располагаться в любом месте раздела и иметь любой размер. Устранение ограничений записей корневого каталога обеспечивает динамическое изменение размера раздела FAT 32. Однако Microsoft не реализовала это замечательное свойство в операционных системах Windows9x, чем и воспользовались независимые разработчики, такие как фирма Power-Quest, создавшая программу PartitionMagic.
Основной недостаток FAT 32 — несовместимость с предыдущими версиями DOS и Windows 95. Вы не сможете загрузить предыдущую версию DOS или оригинальную Windows 95 с диска с файловой системой FAT 32, кроме того, раздел с FAT 32 будет недоступен этим системам при их загрузке с другого диска.
Размер кластера FAT 32
Поскольку раздел FAT 32 имеет больше кластеров, чем раздел FAT 16, размер кластера уменьшается. Использование меньшего кластера снижает потери дискового пространства. Например, раздел размером 2 Гбайт с 5 000 файлов в FAT 32 использует кластер размером 4 Кбайт, вместо 32 Кбайт в FAT 16. Такое уменьшение размера кластера снижает потери дискового пространства с 78 до 10 Мбайт.
Для сравнения FAT 16 и FAT 32 необходимо посмотреть, как в этих файловых системах организовано хранение данных. Номера кластеров в FAT 16 хранятся в виде 16-разрядных записей (0000h-FFFFh). Максимальное значение FFFFh соответствует десятичному 65 536, но несколько значений зарезервированы для специальных целей. Реальное число кластеров в FAT 16 лежит в диапазоне 0002h-FFF6h, или 2-65 526. Таким образом, для хранения файлов используется 65 524 кластера. Типичная запись о файле в FAT 16 представлена в табл. 12
Таблица 12. Записи файлов в файловой системе FAT 16
В FAT 32 количество кластеров лежит в диапазоне 00000000h-FFFFFFFFh, или 0— 4 294 967 295. Как и в FAT 16 верхние и нижние кластеры зарезервированы для специальных целей и их номера лежат в диапазоне 00000002h-FFFFFFF6h, или 2-4 294 967 286. Таким образом, для хранения файлов можно использовать 4 294 967 284 кластера. Накопитель на жестких дисках разбит на большее количество кластеров, каждый из которых становится меньше, что снижает потери дискового пространства. Пример записей о файле в FAT 32 приведен в табл. 14.
В табл. 15 приведен размер кластера при использовании FAT 32 с различными размерами разделов.
Таблица 15. Размер кластера файловой системы FAT 32
Уменьшение размера кластера приводит к увеличению записей в FAT. Раздел размером 2 Гбайт с FAT 32 использует 524 288 записей, в то время как аналогичный раздел с FAT 16 использует 65 536 записей. Следовательно, таблица FAT 16 имеет размер 128 Кбайт (65 536 записей х 16 бит = 1 048 576 бит, или 131 072 байт, или 128 Кбайт), а таблица FAT 32 — 2 Мбайт.
Размер FAT существенно влияет на производительность файловой системы. В Windows9xмодуль VCACHE пытается загрузить FAT в оперативную память для повышения производительности системы. Выбор кластера размером 4 Кбайт на дисках емкостью до 8 Гбайт обеспечивает компромисс между производительностью и размером FAT в оперативной памяти.
Несмотря на то что размер FAT в файловой системе FAT 32 практически в двадцать раз больше, чем в FAT 16, появляется незначительный (менее 5%) прирост производительности FAT 32 в операционной системе Windows9x. Это отчасти достигается использованием в персональных компьютерах самых современных накопителей на жестких дисках.
Зеркальная копия файловой системы
FAT 32 также использует преимущества двух копий FAT в разделе диска. Как и в FAT 16, в FAT 32 первая копия является основной и периодически копирует данные в дополнительную копию FAT. В FAT 32 при появлении проблем с главной копией FAT система переключается на дополнительную копию, которая становится главной. Помимо этого, система прерывает процесс создания зеркальной копии FAT, чтобы предотвратить потерю данных.
Создание раздела FAT 32
Для создания раздела с FAT 32 в Windows9xнеобходимо использовать программу Fdisk в командной строке так же, как при создании раздела с FAT 16. При запуске этой программы будет выполнено тестирование диска и, если его размер превышает 512 Мбайт, появится следующее сообщение:
Компьютер имеет диск емкостью более 512 Мбайт. Данная версия Windows включает поддержку больших дисков и позволяет эффективнее использовать место на таких дисках, а также форматировать диски размером более 2 Гбайт как один диск.
ВНИМАНИЕ! Если включить поддержку больших дисков и создать на них новый диск, невозможно будет получить доступ к новому диску из другой операционной системы, включая некоторые версии Windows 95 и WindowsNT, а также более ранние версии Windows и MSDOS. Кроме того, дисковые служебные программы, которые не поддерживают явно файловую систему FAT32, не смогут работать с этим диском. Если собираетесь обращаться к этому диску из других операционных систем или более старых служебных программ, не включайте поддержку больших дисков.
Включить поддержку больших дисков (Y/N)? [N]
Если вы ответите на этот вопрос утвердительно, все разделы размером более 512 Мбайт будут иметь файловую систему FAT 32. Кроме того, утвердительный ответ требуется для создания раздела размером более 2 Гбайт. Последующие окна работы программы Fdisk аналогичны окнам предыдущих версий этой программы.
Программа Fdisk автоматически определяет размер кластера на основе выбранной файловой системы и размера раздела. Однако существует недокументированный параметр команды Format, позволяющий явно указать размер кластера: Format / Z:n, где n — размер кластера в байтах, кратный 512. С помощью этой команды вы можете создать файловую систему с размером кластера, меньшим установленного по умолчанию.
Преобразование FAT 16 в FAT 32
Операционная система Windows 95 OSR2 может создавать разделы с FAT 32 только на пустом диске. Для преобразования раздела с FAT 16 необходимо скопировать данные на другой носитель, удалить раздел с FAT 16 и создать новый раздел с FAT 32, а затем восстановить все данные. В Windows 98/Me существует программа-мастер для преобразования раздела в FAT 32 без потери данных.
При запуске программа преобразования диска отображает информацию о существующих разделах и установленных файловых системах. Вам необходимо лишь выделить диск и выполнить все операции мастера.
Обратите внимание, что после преобразования диска в FAT 32 выполнить обратное преобразование нельзя. Необходимо принимать "радикальные" меры, т.е. сохранить данные, запустить программу Fdisk, удалить раздел с FAT 32 и заново создать раздел с FAT 16.
Ошибки файловой системы FAT
Ошибки в файловой системе появляются скорее из-за программных, нежели из-за аппаратных сбоев (например, при неверном завершении работы Windows). Некоторые программные ошибки описаны ниже.
Потерянные кластеры
Это наиболее распространенная ошибка файловой системы, при которой кластеры в FAT помечаются как используемые, хотя на самом деле таковыми не являются. Эти потерянные кластеры появляются при неверном завершении работы приложения или крахе системы. Программы восстановления диска могут обнаружить эти кластеры и восстановить их.
Потерянные кластеры появляются в файловой структуре (табл. 16).
Таблица 16. Потерянные кластеры в файловой структуре
Появляются цепочки кластеров, не имеющие записей в каталоге. Чаще всего это происходит при "зависании" программы при операции открытия файла.
Программы восстановления диска просматривают диск и создают копию FAT в оперативной памяти. Затем эта копия сравнивается с "настоящей" FAT и таким образом выявляются потерянные кластеры, т.е. не принадлежащие ни одному из существующих файлов. Практически все программы восстановления могут сохранять информацию из потерянных кластеров в файл, а затем обнулять их.