Выбрать главу

ТЕХНОЛОГИИ: Фатальные проблемы

Автор: Андрей Васильков

С 60-х годов прошлого века и по наши дни изобретательное человечество придумало почти две сотни разных файловых систем. Большая часть из них представляет лишь исторический интерес или используется в специфических устройствах. Однако и простые пользователи нет-нет да и натыкаются на файловые системы, накладывающие на оборудование те или иные ограничения. Не зная о них, можно порой попасть в затруднительную ситуацию.

Сам факт наличия практически значимых лимитов в файловых системах уходит корнями в 16-битную эпоху вычислений и отчасти связан с реализацией поддержки FAT16 в MS-DOS1. В то время как FAT16 теоретически позволяет создавать дисковые разделы до 4 Гбайт (216 кластеров по 64 Кбайт), DOS ограничивает предельный размер раздела двумя гигабайтами из-за использования кластеров размером 32 Кбайт. Поскольку Windows 95/98 были основаны на MS-DOS, а от NT-версий требовалась обратная совместимость, лимит в 2 Гбайт на FAT16 актуален до сих пор.

Аналогичная ситуация и с другими файловыми системами. Особенности их поддержки в конкретной версии ОС существенно ограничивают максимально допустимый размер дискового раздела; размера, количества и взаимного расположения файлов на нем и допустимый вид присваиваемых имен. Прошло уже двадцать лет, а пользователи до сих пор наступают на "грабли" образца 1988 года.

До сих пор для переноса данных кое-где пользуются дискетами. Применяемая на них FAT12 не даст соскучиться любителям длинных имен. Если при соблюдении формата имен "8.3"2 на дискету теоретически можно записать четыре с лишним тысячи файлов, то использование длинных имен резко сокращает адресуемое пространство. В моем тесте на чистую дискету без битых блоков удалось записать только двадцать файлов объемом по 2 байта, но с длиной имени у каждого по 128 символов. Двадцать первый уже не записывался - появлялось сообщение об ошибке и просьба снять защиту от записи, которой, естественно, не было.

Часто доводилось видеть, как при достаточном количестве свободного места файл не копировался и на куда более современные носители - например, на флэшку. Дело в том, что флэш-накопители емкостью до 2 Гбайт включительно обычно используют FAT16. В цепочках FAT16 может храниться информация не более чем о 512 записях, относящихся к корню раздела. Если вы попытаетесь записать 513-й файл или создать каталог при уже имеющихся 512 записях, то получите сообщение об ошибке.

В смоделированной и отображенной на скриншотах ситуации использовалась карта памяти SD емкостью 2 Гбайт, на которой цифровой фотоаппарат создал раздел FAT16. Записанные 512 файлов хоть и занимали суммарно всего 16 Мбайт, не позволяли записать следующий файл или создать пустую папку.

Если же записывать файлы не в корень раздела, а в созданный там каталог, то ограничение в 512 файлов уже не действует и устанавливается общий предел в 65536 файлов/каталогов. Именно поэтому ЦФК при форматировании карт памяти создают собственную папку и сохраняют фотографии в ней, а не прямо в корне раздела.

Разочарование может постигнуть и желающих создать мультизагрузочную флэшку. BIOS некоторых материнок и операционные системы с 16-битными компонентами ядра (включая, кстати, не только клоны MS-DOS, но и Windows NT до 4.0 включительно) не поддерживают загрузку с томов FAT32. Корректно работать они могут только с разделом FAT 16 объемом не более 2 Гбайт. Поэтому если вы хотите создать гарантированно загрузочную флэшку, нет смысла покупать экземпляр на 4 Гбайт - лучше возьмите две по 2 Гбайт и разместите на них весь желаемый набор ОС с утилитами, помня о пределе элементов в корне раздела.

Флэшки и мобильные винчестеры емкостью от 4 Гбайт обычно размечаются производителями как один раздел FAT 32. Считается, что с этой файловой системой у пользователя возникает меньше проблем. Мол, ее все операционки видят, права доступа она не записывает и вообще - самая простая. Из приводимой таблицы понятно, почему образ полного DVD-5 на раздел FAT32 не запишется в принципе. Будь то хоть флэшка на 8 Гбайт, хоть винчестер на 80 гигов, при попытке записать любой файл объемом больше 4 Гбайт на раздел FAT32 появится сообщение об ошибке.