Современные файловые системы:
что выбрать для внешнего накопителя и почему


Было время, когда вопрос, вынесенный в заголовок статьи, просто не стоял перед пользователями. Несмотря на то что файловых систем было более одной еще до момента появления первых персоналок, выбора обычно не существовало. Просто потому, что разных несовместимых (или лишь частично совместимых) архитектур компьютеров было много, за каждой стояла конкретная фирма, использующая свою собственную операционную систему и имеющая собственные представления о том, «что такое хорошо и что такое плохо». Причем еще и носители данных применялись разные и друг с другом несовместимые. А если и совместимые аппаратно (например, НГМД использовались очень многими вычислительными системами, причем основные типоразмеры дисководов на аппаратном уровне были худо-бедно стандартизованы), то данные все организовывали по-своему. Более-менее совместимыми оказались ленточные накопители, поскольку так уж сложилось исторически, что еще со времен «больших» компьютеров именно они чаще всего применялись для обмена данными между системами различной архитектуры. Но единственными массовыми магнитофонами, которые использовались совместно с персоналками, оказались бытовые, а примитивность типичных компакт-кассет приводила к тому, что все производители, если уж их и использовали, пытались «выжать» из носителя максимум, причем все делали это разными способами.

Ситуация улучшилась лишь тогда, когда стало ясно, что линейка IBM PC (прародительница практически всех выживших на сегодняшний день архитектур ПЭВМ) постепенно становится стандартом де-факто в отрасли (и не только). Ну а когда на рынке появляется доминирующая архитектура, все остальные вынуждены это учитывать — из соображений выживания. Основным сменным носителем данных тогда являлись гибкие диски, так что достаточно быстро средством обеспечения совместимости оказались те их форматы, которые использовала компания IBM. Далеко не лучшие, надо заметить. Причем не только по аппаратуре, хотя и это тоже — несмотря на то что первые дисководы на 3,5″ появились в том же году, что и первые РС, и многие производители начали их использовать еще в первой половине 80-х годов, сама IBM перешла на этот конструктив лишь в 1987 году, а до того момента цеплялась за пятидюймовые дисководы, представленные на рынке еще в 1976 году. Однако и с точки зрения форматирования «оригинальные» разработки IBM уступали даже многим клонам ее компьютеров — в частности, компания на двухсторонних дискетах двойной плотности хранила лишь 360 Кбайт информации, в то время как конкуренты из них же без особых ухищрений выжимали и 600—720 Кбайт. Ну а уж о примитивности файловой системы FAT не рассуждал только ленивый. Хотя, вполне возможно, именно примитивность и стала второй причиной превращения «писюковых дискет» в стандарт — его было очень уж легко поддерживать. Пусть хотя бы только для чтения и в дополнение к собственному «продвинутому» варианту.

Впрочем, с точки зрения сегодняшнего дня все это имеет лишь историческую ценность. Дискеты давно уже перестали использоваться в качестве основного средства переноса информации, да и альтернативных линейке «х86-based» компьютеров на большинстве сегментов рынка не осталось. Однако нельзя сказать, что это полностью решило все проблемы. Дело в том, что на этой са́мой единственной стандартной платформе работает чуть ли не больше операционных систем, чем их было во времена, когда «расцветали все цветы». Даже если взять самое распространенное на рынке семейство, а именно Windows, то оно, строго говоря, неоднородно. Бо́льшая часть инсталляций приходится до сих пор на Windows XP — родом из начала века, но занимающую чуть ли не 2/3 рынка. Где-то четверть последнего приходится на современные версии Windows, а все оставшееся — на сборную солянку из сохранившихся компьютеров с системами, появившимися до Windows XP (их сейчас осталось мало, но все еще встречаются), различные версии MacOS и цельный букет UNIX-систем. Но даже если вам повезло никогда не сталкиваться в практической жизни ни с чем, кроме Windows XP, полностью это проблему не решает — некогда «компьютерные» технологии давно уже вышли за пределы этого рынка, активно вторгаясь в сферу бытовой электроники. Например, большинство сегодняшних видеоплееров умеет работать с USB-накопителями, а в фотоаппаратах или мобильных телефонах повсеместно применяются разнообразные карты памяти. И тут все оказывается просто только в том случае, если, например, карта используется исключительно в «своем» фотоаппарате — форматируем ее средствами камеры и навсегда забываем об этом вопросе :) Однако если нам надо хотя бы обмениваться данными с компьютером, тут уже все не так очевидно…

Причина возникновения проблемы в том, что практически все современные операционные системы за редким исключением поддерживают не одну файловую систему (как это было 20-30 лет назад), а несколько. Причем степень их поддержки может быть совершенно разной. И иногда изменяемой при помощи дополнительных программ. Вариантов масса, поэтому мы не будем пытаться охватить их все в одной небольшой статье. Но достаточное количество базовой информации, дабы можно было понять «куда копать», все же попробуем дать. А для этого достаточно познакомиться с основными доступными файловыми системами, а также их достоинствами и недостатками.

FAT — старая, ограниченная, но вездесущая

Начнем мы со старейшей файловой системы, появившейся еще во времена MS DOS, но, тем не менее, до сих пор иногда встречающейся. К положительным особенностям системы относятся простота, компактность служебных областей и большой срок присутствия на рынке. В общем-то, первые два достоинства непосредственно вытекают из третьего — в 1980 году, когда система и появилась, компьютеры были столь «мощными», а носители информации столь «емкими», что ничего сложного использовать было просто нельзя. Впрочем, оригинальный вариант, а именно FAT12, уже давно вышел из широкого пользования вследствие того, что размер диска с этой системой не может превышать 32 МиБ. Хотя, конечно, к некоторым фотоаппаратам и даже видеокамерам до сих пор умудряются прилагать флэш-карту такого или даже меньшего размера, но полноценно использовать их в подобной комплектации все равно не выйдет.

А вот FAT16, появившаяся 23 года назад, уже интереснее, благо размер как файла, так и раздела доведен уже до 2 ГиБ (для тех, кто еще не успел привыкнуть к двоичным приставкам — это чуть больше двух гигабайт). Теоретически, емкость раздела может достигать и 4 ГиБ при использовании кластеров по 64 Кбайт, однако этот вариант не является стандартным, так что поддерживается далеко не везде. На компьютерах с таким разделом умеют работать системы начиная с Windows NT4 и более новыми этой линейки, но вот ни бытовая техника, ни большинство «альтернативных» систем с ними не совместимо. Таким образом, этот вариант можно считать полностью пригодным лишь для накопителей невысокой емкости. Последних у пользователей на руках достаточно много до сих пор, но «бал правят» не они. А вот во времена флэшек размером до гигабайта была FAT16 весьма актуальной ввиду, как раз, небольших потребностей в объеме для своих нужд. Так, например, на отформатированной под FAT16 флэшке на 128 МБ пользователю остаются доступными 128 621 744 байт, а если использовать FAT32 — 127 921 152 байт. С одной стороны, пустячок, а с другой — лет пять назад «лишние» 700 КБ на дороге не валялись. Недаром Microsoft не рекомендует использовать FAT32 на разделах менее 512 МБ, так что отформатировать их во что-то отличное от FAT16 можно только сторонними средствами.

Последняя все еще актуальная сфера применения этой системы — телефоны, плееры, фотоаппараты и прочая «бытовуха», рассчитанная на поддержку карт SD или microSD, но не поддерживающая SDHC (сейчас такое уже не выпускается, но еще используется). Стандартной файловой системой для этих карт является как раз FAT16, поэтому большинство таких устройств никаких других и не поддерживают. В данном случае крайне желательно форматировать карту исключительно в устройстве, но не делать этого на компьютере. Причина в том, что Windows XP (по крайней мере, про нее это известно точно) иногда умудряется при явном указании ФС отформатировать карту под FAT32, после чего тот же фотоаппарат может ее не увидеть и даже не предложить возможности переформатировать. Решать проблему приходится какой-нибудь альтернативной программой форматирования — снова на компьютере.

FAT32 — разумный компромисс между совместимостью и прочими характеристиками

В отличие от предшественницы, FAT32 сейчас является наиболее массовой системой для внешних накопителей. 90% флэшек и более половины ВЖД поступают с заводов отформатированными именно под нее. Причина? По совместимости она лишь немногим хуже FAT16 — «за кадром остаются» только слишком уж древние операционные системы. Изначально поддержка FAT32 появилась в августе 1996 года вместе с Windows 95 OSR2 — если кто-то ныне и использует более старую ОС на своем компьютере, то вряд ли он будет подключать к нему современный внешний накопитель :) Причем в большинстве случаев — и не сможет.

Однако иногда использование FAT32 уже неудобно, из-за чего приходится использовать другие системы. Основным и самым существенным недостатком является то, что файлы не могут иметь размер более 4 ГиБ. Соответственно, хранить на накопителе образы DVD-дисков, очень большие архивы или некоторые фильмы — не выходит. Вернее, это можно сделать, но их приходится разбивать на части, а потом перед использованием «склеивать», что очень неудобно. Либо такое разбиение нужно предусмотреть заранее, что иногда делается, но далеко не всегда. Именно эта причина и вызывает необходимость использования других файловых систем — пусть имеющих меньшую поддержку со стороны оборудования, зато свободных от ограничения на размер файла. Судя по нашей конференции, кстати, эта проблема в последнее время стои́т достаточно остро — многие пользователи, купив внешний жесткий диск или флэшдрайв, буквально в первые же дни пытаются записать туда очень большой файл и… очень удивляются реакции системы, которая сообщает о недостатке места на носителе. А удивляться есть чему: по-хорошему, создатели ОС могли бы обрабатывать данную ситуацию более корректным образом — сообщая пользователю, что используемая файловая система непригодна для записи данного файла; а иначе все очень странно выглядит: свободного места десяток или даже сотня (а то и несколько сотен) гигабайт, а рапортуют о его нехватке при попытке записи файла размером всего 5-6 гигабайт. Мы, конечно, не думаем, что после публикации данной статьи соответствующие сообщения в форуме исчезнут, однако надеемся, что их, хотя бы, станет немного меньше :)

А вот размер тома, отформатированного под FAT32, теоретически может составлять до 8 ТиБ, что даже на сегодня очень много (не говоря уже о времени, когда система создавалась). Впрочем, не все так просто — компания Microsoft, скажем, считает, что тома более 32 ГиБ делать нежелательно. И не просто считает, а ввела соответствующие ограничения во встроенные программы форматирования Windows XP и более новых версий своей системы. Особенно печальный результат получается при попытке отформатировать, например, флэшку на 64 ГБ штатными средствами: для FAT32 (по мнению Microsoft) она слишком велика, а NTFS на сменных носителях (опять же — по мнению Microsoft) использовать не положено. Обе проблемы с легкостью решаются при помощи использования сторонних утилит форматирования. Так, например, простенькая консольная программа fat32format спокойно работает с томами до 2 ТБ (максимум для нединамических разделов Windows XP).

Не все гладко, кстати, и с Windows 98 или ME, несмотря на то что для них использование FAT32 безальтернативно. Дело в том, что некоторые встроенные в эти системы утилиты так и остались 16-разрядными. Ну а поскольку для таких программ максимальный размер адресуемого блока памяти равен примерно 16 МБ, то разделы, на которых таблица FAT имеет больший размер, им недоступны. В переводе на простой язык это означает невозможность полноценно использовать разделы больше ≈127,5 ГиБ (около 133 ГБ). Точнее, попробовать-то можно, но осторожно — не пытаясь «натравить» на такой раздел разнообразные дисковые утилиты: в лучшем случае (штатные средства) они просто не будут работать, а в худшем — могут и данные испортить. Либо, для страховки, можно просто разбивать накопители, которые планируется использовать и с Windows 9x, на разделы по сотне гигабайт. Заметим, что к внешним дискам эти ОС все равно более лояльны, чем к внутренним: получить под их управлением доступ к внутреннему винчестеру более чем на 137 ГБ — задача не совсем тривиальная, а вот для USB-накопителя бо́льшие объемы допустимы без особых проблем, за исключением неработоспособности дисковых утилит.

У других ОС таких проблем нет, да и описанные, в принципе, решаемы. Это и позволяет считать данную файловую систему оптимальной для тех случаев, когда требуется обеспечить максимальную совместимость внешнего накопителя со всем спектром компьютерной и бытовой техники. Особенно в тех случаях, когда хранение файлов размером более 4 ГБ не предполагается — тогда и заметных на практике недостатков не будет.

NTFS — быстрая, мощная, но избыточная

До последнего времени данная файловая система являлась единственным надежно работающим средством обойти «проблему больших файлов» на компьютерах под управлением Windows. Разумеется, не всякой версии Windows — линейка 9х в принципе не поддерживает NTFS, однако совместимость с этими системами важна уже, мягко говоря, не всем. Хуже то, что в бытовой технике поддержка NTFS встречается достаточно редко. Но в последнее время встречается. Кроме того, такие разделы поддерживают и компьютеры, работающие под управлением MacOS или Linux — как минимум, они умеют читать данные с таких разделов, а при установке специальных драйверов нередко начинает работать и функция записи. При помощи дополнительных драйверов, кстати, поддержку NTFS можно «прикрутить» и к Windows 98 или даже DOS.

Чем эта система хороша? Во-первых, ограничения как на размер тома, так и на размер файлов можно считать отсутствующими: и то, и другое может составлять до 16 экзабайт (для улучшения восприятия сообщим, что в одном экзабайте примерно миллион терабайт). Во-вторых, можно получить и более высокую скорость работы, особенно если попадаются каталоги, содержащие очень большое количество файлов — например, когда их несколько тысяч, разница в скорости работы FAT32 и NTFS заметна невооруженным глазом. В-третьих, эта система является более отказоустойчивой, как минимум из-за журналирования. В-четвертых, она способна работать с кластерами малого размера (точнее, не только способна, но и рассчитана на это), так что потери дискового пространства при хранении маленьких файлов у NTFS заметно меньше, чем у FAT32, не говоря уже об exFAT. В-пятых, достаточно удобной возможностью является встроенная поддержка сжатия данных. Разумеется, архивирование «на лету» куда менее эффективно, чем при помощи специальных программ-архиваторов с серьезными алгоритмами, но зато и выполняется прозрачным для пользователя образом, а при хранении хорошо сжимаемых данных дает заметный эффект. В общем, нет ничего удивительного, что на внутренних жестких дисках на данный момент NTFS является доминирующей системой.

Но на внешних у нее есть и недостатки. Самым безобидным из них является невозможность на практике получить многие преимущества системы. В частности, в настоящий момент редко кто переносит несжатые файлы: даже если говорить об офисных документах, то начиная с 2007 года они уже автоматически сжимаются при сохранении, а о фотографиях или видеофайлах и говорить нечего, так что встроенная поддержка сжатия оказывается не у дел (и даже чаще мешает, чем наоборот). Да и огромные количества файлов в каталоге встречаются редко — куда более типичным является десяток очень больших файлов. (Заодно это нивелирует и пользу от небольших кластеров.) Кроме того, улучшенная за счет кэширования производительность может оказаться палкой о двух концах — отформатированные под NTFS накопители крайне нежелательно отключать от компьютера, не воспользовавшись «Безопасным извлечением» или его аналогами. Все указанные неудобства свойственны для любых внешних накопителей, но для основанных на флэш-памяти есть и дополнительные. Во-первых, журналирование в данном случае рекомендуется отключать (поскольку ресурс массовых флэшек ограничен, так что «лишние» записи файлов им ни к чему). Во-вторых, быстродействие этих накопителей существенным образом зависит от выровненности всех структур ФС и кластеров по границам блоков стирания, что актуально и для FAT, но для NTFS, с ее небольшим размером кластера (а также любовью многих программ, в том числе и штатной утилиты форматирования Windows XP, смещать начало раздела на 63 сектора), может оказаться весьма критично. Да и вообще — как показывает опыт многих пользователей, наилучших скоростных результатов проще всего добиться, используя размер кластера в 32 Кбайт, т. е. не меньший, чем для FAT32.

Добавим к этому проблемы совместимости, после чего становится очевидным, что использование на сменных носителях именно NTFS чаще всего не слишком оправдано. Впрочем, как показано выше (и будет показано ниже), иногда этот вариант является безальтернативным.

exFAT — будущее флэш-накопителей и не только

В ситуации, когда FAT32 уже недостаточно, а NTFS — неоптимальна, неудивительно, что компания Microsoft в очередной раз (спустя 10 лет после появления FAT32) доработала FAT. Новая версия, получившая название exFAT, дебютировала в Windows CE 6, поскольку была наиболее актуальна для встроенных систем и бытовой техники, но позднее ее поддержка появилась и в настольных компьютерах. Чем новинка отличается от предыдущей версии?

Во-первых, снято ограничение на размер файла — подобно варианту «взрослых» систем, он может достигать 16 экзабайт. Во-вторых, увеличен размер кластера: если для предыдущих систем его приходилось удерживать в рамках 32 Кбайт (иногда применяя не всеми поддерживаемый вариант на 64 Кбайт), то в exFAT максимальный размер кластера составляет 32 МиБ, т. е. увеличился в 1024 раза. Разумеется, это крайне неудобно в случае файлов небольшого размера, однако они сейчас не слишком-то актуальны в качестве объекта транспортировки, зато размер таблицы размещения файлов удалось сократить соответствующим образом, а следовательно, снизились и требования к объему оперативной памяти для работы с томами большого размера. Естественно, для exFAT было отменено и волюнтаристское ограничение в 32 ГиБ для размера тома — не нужно оно более :) Первыми, кто этим воспользовался, кстати, оказались производители SD-карт памяти, достаточно жестко завязывающиеся в стандартах именно на FAT. Для спецификаций версий SD 1.х стандартной была FAT16 (что и определяло максимальную емкость карты в 2 ГБ), версия 2.0 ориентируется на FAT32 (карты SDHC до 32 ГБ), а в новой версии 3.0 для карт большого объема стандартом является именно exFAT (соответственно, карты SDXC заметных с точки зрения практического использования ограничений по емкости не имеют).

Нельзя также сказать, что все улучшения были только количественными — нашлись и качественные. В частности, отменены ограничения на количество файлов в каталоге. Не то чтобы они сильно мешали ранее, но все же — теперь, например, производителям фотоаппарата вовсе необязательно раскладывать фотографии по папкам, а можно спокойненько все записывать в корень карты. Более существенное улучшение — появилась битовая карта свободного места, что при правильном использовании позволяет уменьшить фрагментацию (ранее подбор наиболее подходящего свободного куска дискового пространства тоже был возможен, но ценой активного использования для каждой операции ресурсов системы). Журналирования, естественно, в рамках новой системы нет — слишком проста она для этого, да и для флэш-накопителей (на которые exFAT в первую очередь и нацелена) данная операция нежелательна. Но и потенциальную возможность повышения отказоустойчивости предусмотрели — возможна поддержка транзакций (естественно, если это поддерживает хост-устройство).

В общем, системка получилась на диво хороша — есть все нужное и нет ничего ненужного. Почему же до сих пор приходится мучиться с выбором, а не перейти на exFAT повсеместно? А потому, что для внешнего накопителя, как уже не раз было сказано, совместимость является той еще «священной коровой» — что толку в характеристиках используемой вами на флэшке файловой системы, если вы этой флэшкой сможете воспользоваться лишь на каждом десятом компьютере? exFAT до сих пор находится как раз в подобном положении. Гарантированно ее использовать можно только на компьютерах, работающих под управлением Windows Vista с SP1, Windows Server 2008 и Windows Seven. Вроде бы поддержка есть и в MacOS X 10.6, но тут, вероятно, потребуется апдейт системы — кстати, очень может быть, что Apple бы и не стала поддерживать новую разработку Microsoft, однако в последнюю линейку компьютеров компания решила встроить картоводы с поддержкой карт SDXC, а это в обязательном порядке потребовало и совместимости с exFAT. Для Linux придется самостоятельно интегрировать драйвер (причем их два: нормальный поддерживает только чтение, а запись — лишь использующий FUSE). Пользователям Windows XP повезло чуть больше — еще в начале 2009 года на Windows Update появилось официальное обновление KB955704, добавляющее к системам с SP2 и SP3 поддержку exFAT, однако оно не относится к обязательным, так что найдется далеко не на всех компьютерах. С бытовой техникой все столь же грустно, как с предыдущими версиями Windows — счастливым исключением являются немногие современные устройства с поддержкой SDXC (им деваться некуда), однако в остальных до сих пор проще встретить поддержку NTFS, нежели exFAT.

Прочая экзотика, иногда полезная

Нравится это кому или нет, но на данный момент времени большинство персональных компьютеров (порядка 95%) работает под управлением одной из систем семейства Windows, причем в основном эта доля распределена между Windows XP, Vista и Seven. Соответственно, наиболее актуальным является выбор между перечисленными файловыми системами, ведь только они без особых ухищрений поддерживаются этой тройкой. Задумываться о чем-либо ином есть смысл только в том случае, когда совместимость с Windows вас в принципе не волнует: несмотря на то что для поддержки большинства «родных» для прочих ОС файловых систем есть и драйверы для Windows, на каждый компьютер их ставить — дело неблагодарное. Поэтому вне зависимости от достоинств и недостатков какой-нибудь ext3 использовать ее можно разве что в том случае, когда внешний накопитель эксплуатируется в качестве стационарного или близком к тому виде.

Единственное частичное исключение из правил — файловая система HFS+, традиционная для MacOS X. И дело даже не в каких-то ее особых качествах, а в том, что эта операционка имеет пусть и небольшую, но монолитную долю рынка (чего не скажешь о разных иногда несовместимых друг с другом «линуксах»). Кроме того, несмотря на малую распространенность в мировом масштабе, есть страны, где ниша MacOS вполне ощутима. Это и ставит HFS+ в привилегированное положение. Вплоть до того, что некоторые производители продают специальные версии внешних винчестеров «for Mac», отформатированных под HFS+ (а не FAT32 или NTFS, которые встречаются чаще) прямо на заводе. Из этого не следует ни непригодность для Mac прочих винчестеров, ни невозможность использовать «маковские» на других компьютерах. Более того — для обмена данными между Маком и прочими системами вообще удобнее применять FAT32, гарантированно работающую в большинстве случаев. В чем плюс именно HFS+? В том, что встроенная система резервного копирования и восстановления информации Time Machine совместима только с дисками с этой файловой системой. Таким образом, если вы используете накопитель для резервирования данных на Маке, выбора не остается. Ну а если иногда возникает и необходимость подключения этого внешнего устройства к другим компьютерам, вполне логичным действием будет установка на них специальных драйверов с поддержкой HFS+. Впрочем, не самым худшим вариантом окажется и разбиение диска на пару разделов — небольшой с FAT32 позволит обмениваться данными различным системам, а раздел HFS+ даст возможность ни в чем себе не отказывать при работе под MacOS X.

Иногда покупка специальной версии внешнего винчестера «для Маков» может быть оправдана и для пользователя Windows — как правило, все эти модели снабжены интерфейсом FireWire (иногда и FireWire-800) в дополнение к USB 2.0, что может оказаться полезным. C файловой системой проблем не будет — с точки зрения Windows, отформатированные под HFS+ винчестеры никакой структуры данных не содержат, так что просто создаем раздел (или разделы) и форматируем нужным нам образом.

FAQ вместо заключения

В принципе, приведенной выше информации, на наш взгляд, вполне достаточно для того, чтобы в любом случае определиться с правильным выбором файловой системы на внешнем накопителе, а также решить возможные возникающие проблемы. Однако для простоты использования мы решили основные (наиболее часто возникающие) вопросы вынести в отдельный материал.

Часто задаваемые вопросы по использованию различных файловых систем на внешних накопителях






Дополнительно

400 Bad Request

Bad Request

Your browser sent a request that this server could not understand.
Request header field is missing ':' separator.

&forum=11 HTTP/1.1

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.