Файловая система fat и fat32 отличия. Сравнение Fat32, NTFS, exFAT на флешках и внешних жестких дисках. Ведение журнала изменений

Файловая система fat и fat32 отличия. Сравнение Fat32, NTFS, exFAT на флешках и внешних жестких дисках. Ведение журнала изменений

21.02.2019

Порой, чтение информации, воспроизведение музыки и фильмов с флешки или внешнего жесткого диска на всех устройствах, а именно: компьютере, бытовом DVD проигрывателе или телевизоре, Xbox или PS3, а также в магнитоле автомобиля может вызвать некоторые проблемы. Здесь поговорим о том, какую файловую систему лучше всего использовать, чтобы флешка всегда и везде читалась без проблем.

Что такое файловая система и какие проблемы с ней могут быть связаны

Файловая система - это способ организации данных на носителей. Как правило, каждая операционная система использует свою файловую систему, но может использовать и несколько. Учитывая то, что на жесткие диски могут быть записаны только двоичные данные, файловая система представляет собой ключевой компонент, который обеспечивает перевод из физической записи в файлы, которые могут быть прочтены ОС. Таким образом, при форматировании накопителя определенным образом и с определенной файловой системой, вы решаете, какие устройства (так как даже ваша магнитола имеет своеобразную ОС) смогут понять, что именно записано на флешке, жестком диске или другом накопителе.

Помимо общеизвестных FAT32 и NTFS, а также несколько менее знакомых рядовому пользователю HFS+, EXT и других файловых систем, существуют еще десятки различных ФС, созданных для различных устройств определенного назначения. На сегодняшний день, когда большинство людей имеют дома более одного компьютера и других цифровых устройств, на которых могут использоваться операционные системы Windows, Linux, Mac OS X, Android и другие, вопрос о том, как отформатировать флешку или иной переносной диск так, чтобы он читался во всех этих устройствах, является достаточно актуальным. И с этим возникают проблемы.

Совместимость

В настоящее время существует две наиболее распространенных файловых системы (для России) - это NTFS (Windows), FAT32 (старый стандарт Windows). Также могут использоваться файловые системы Mac OS и Linux.

Логичным было бы предположить, что современные операционные системы будут работать с файловыми системами друг друга по умолчанию, но в большинстве случаев это не так. Mac OS X не может записывать данные на диск, отформатированный в NTFS. Windows 7 не распознает диски HFS+ и EXT и либо игнорирует их, либо сообщает о том, что диск не отформатирован.

Многие дистрибутивы Linux, например, Ubuntu поддерживают большинство файловых систем по умолчанию. Копирование из одной системы в другую является обычным процессом для Linux. Большинство дистрибутивов поддерживают HFS+ и NTFS «из коробки» либо их поддержка устанавливается одним бесплатным компонентом.

Кроме этого, игровые консоли, такие как Xbox 360 или Playstation 3 предоставляют лишь ограниченный доступ к определенным файловым системам, и позволяют только считывать данные с USB носителя. Чтобы ознакомиться с тем, какие файловые системы и какими устройствами поддерживаются, взгляните на эту таблицу.

Windows XP Windows 7/Vista Mac OS Leopard Mac OS Lion/Snow Leopard Ubuntu Linux Playstation 3 Xbox 360
NTFS(Windows) Да Да Только чтение Только чтение Да Нет Нет
FAT32(DOS, Windows) Да Да Да Да Да Да Да
exFAT(Windows) Да Да Нет Да Да, с пакетом ExFat Нет Нет
HFS+(Mac OS) Нет Нет Да Да Да Нет Да
EXT2, 3(Linux) Нет Нет Нет Нет Да Нет Да

Стоит отметить, что в таблицы отражены возможности ОС по работе с файловыми системами по умолчанию. Как в Mac OS, так и в Windows вы можете загрузить дополнительное программное обеспечение, которое позволит работать с неподдерживаемыми форматами.

FAT32 - давно существующий формат и, благодаря этому, практически все устройства и операционные системы полностью поддерживают его. Таким образом, если вы отформатируете флешку в FAT32, она, почти гарантированно, прочтется где угодно. Однако, с этим форматом существует одна важная проблема: ограничение размера отдельного файла и отдельного тома. Если вам требуется хранить, записывать и считывать огромные файлы, FAT32 может не подойти. Теперь подробнее об ограничениях на размер.

Ограничения на размер файлов в файловых системах

Файловая система FAT32 была разработана достаточно давно и основывается на предыдущих версиях FAT, изначально применявшейся в ОС DOS. Дисков с сегодняшними объемами в то время не существовало, а потому каких-то предпосылок для того, чтобы обеспечить поддержку файлов размером более 4Гб файловой системой не было. На сегодняшний день, многим пользователям приходится сталкиваться с проблемами из-за этого. Ниже вы можете посмотреть сравнение файловых систем по размерам поддерживаемых файлов и разделов.

Современные файловые системы расширили ограничения на размер файлов до пределов, которые пока трудно представить (посмотрим, что будет лет через 20).

Каждая новая система выигрывает у FAT32 по размерам отдельных файлов и отдельного раздела диска. Таким образом, возраст FAT32 сказывается на возможности ее применения для различных целей. Одно из решений - использование файловой системы exFAT, поддержка которых появляется во многих операционных системах. Но, так или иначе, для обычной USB флешки, если на ней не хранятся файлы размером более 4 Гб, FAT32 будет самым лучшим выбором, а флешка будет прочитана практически где угодно.

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

Для того, чтобы на физическом носителе можно было сохранить информацию, его нужно подготовить для использования в компьютерной операционной системе. Операционная система для сохранения информации выделяет свободную область диска. Для этого необходимо поделить диск на малые контейнеры – сектора. Форматирование диска на низком уровне выделяет для каждого сектора определенный размер. Операционная система группирует эти сектора в кластеры. Форматирование на высшем уровне задает всем кластерам одинаковый размер, обычно в интервале от 2 до 16 секторов. В дальнейшем на каждый файл выделяется по одному или несколько кластеров. Размер кластера зависит от операционной системы, ёмкости диска, а также требуемой скорости работы.

Помимо области для хранения файлов на диске имеются области, необходимые для работы операционной системы. Эти области предназначены для хранения загрузочной информации и информации для сопоставления адресов файлов с физическим положением на диске. Загрузочная область используется для запуска операционной системы. После загрузки BIOS происходит считывание и выполнение загрузочной области диска для запуска операционной системы.

Файловая система FAT

Файловая система FAT появилась вместе с операционной системой Microsoft DOS, после чего была несколько раз усовершенствована. У нее есть версии FAT12, FAT16 и FAT32. Само название FAT происходит от использования файловой системой своеобразной базы данных в виде «таблицы размещения файлов» (File Allocation Table), которая содержит запись для каждого кластера на диске. Номера версий ссылаются на количество бит, используемых в номерах элементов в таблице. Таким образом файловая система имеет ограничение на поддерживаемый размер диска. В 1987 году она не поддерживала диске размером свыше 32 Мб. С появлением Windows 95 вышла новая версия файловой системы FAT32 с теоретической поддержкой дисков емкостью до 2 ТБ. Постоянные проблемы с поддержкой дисков больших размеров появляются из-за фиксированного количества элементов, ограниченного количеством бит, используемых в определении положения кластера. Например, версия FAT16 не поддерживает более 2 16 или 65536 кластеров. Количество секторов в кластере тоже ограничено.

Еще одна проблема с большими дисками заключалась в невозможности использования огромного пространства, выделенного для мелких файлов. Из-за того, что количество кластеров ограничено, увеличивался их размер, чтобы можно было охватить всю емкость диска. Это приводит к неэффективному использованию пространства при хранении большинства файлов, размер которых не кратен размеру кластера. Например, FAT32 выделяет кластеры размером 16 Кб для разделов диска в интервале от 16 до 32 ГБ. Для хранения файла размером 20 Кб потребуется два кластера размером 16 Кб, которые займут на диске 32 Кб. Файлы размером 1 Кб занимают 16 Кб на диске. Таким образом в среднем 30-40% размера емкости диска пропадает для хранения мелких файлов. Разбиение диска на мелкие разделы позволяет уменьшить размер кластера, но для дисков емкостью более 200 Гб на практике не применяется.

Фрагментация файлов тоже не малая проблема файловой системы. Поскольку для размещения файла может потребоваться несколько кластеров, которые могут и не быть физически расположены последовательно друг за другом, время, которое требуется на считывание замедляет работу программ. Поэтому постоянно возникает необходимость в .

Файловая система NTFS

В начале 90-х Microsoft начала разработку совершенно нового ПО, предназначенного для окружения с большим потреблением ресурсов, чем обычные домашние пользователи. Для потребностей бизнеса и индустрии ресурсов, предоставляемых операционными системами Windows основанных на DOS, стало недостаточно. Корпорация Microsoft совместно с IBM работали над операционной системой OS/2 с файловой системой HPFS (High Performance File System – файловая система высокой эффективности). Корпоративная разработка не принесла успеха и в скором времени каждая компания вновь пошла своим путем. Microsoft разработала различные версии операционной системы Windows NT, на основе которых построены Windows 2000 и Windows XP. В каждой из них используется собственная версия файловой системы NTFS, которая продолжает развитие.

NTFS (New Technology File System – «файловая система новой технологии») является стандартной файловой системой для операционных систем на основе Windows NT. Она была разработана для замены FAT. NTFS наиболее гибкая по сравнению с FAT. В ее системных областях хранятся в основном файлы, а не фиксированные структуры как в FAT, что позволяет их изменять, расширять или перемещать в процессе использования. Простым примером является Master File Table (MFT) – «главная таблица файлов». MFT - это своеобразная база данных с различной информацией о файлах на диске. Файлы малого размера (1 Кб и менее) могут хранится непосредственно в MFT. Для больших файлов NTFS выделяет кластеры, но в отличие от FAT размер кластера обычно не превышает 4 Кб, а встроенный метод сжатия избавляет от проблем с неиспользованным местом, выделенным под файлы. А ещё в NTFS можно использовать .

Файловая система NTFS разработана для многопользовательского окружения и имеет встроенные механизмы защиты и разграничения прав доступа. Например, операционные системы Windows 2000 и Windows XP (кроме «Домашней редакции») позволяют устанавливать разрешения доступа к отдельным файлам и шифровать их. Однако высокий уровень безопасности усложняет работу обычных пользователей с компьютером. Необходимо быть предельно осторожным при установке паролей и разрешений на файлы, чтобы не потерять важные данные.

FAT - File Allocation Table (таблица размещения файлов) - этот термин относится к одному из способов организации файловой системы на диске. Эта таблица хранит информацию о файлах на жестком диске в виде последовательности чисел, определяющих, где находится каждая часть каждого файла. С ее помощью операционная система выясняет, какие кластеры занимает нужный файл. FAT - является самой распространенной файловой системой и поддерживается подавляющим большинством операционных систем. Сначала FAT была 12-разрядной и позволяла работать с дискетами и логическими дисками объемом не более 16 Мбайт. В MS-DOS версии 3.0 таблица FAT стала 16-разрядной для поддержки дисков большей емкости, а для дисков объемом до 2 047 Гбайт используется 32-разрядная таблица FAT.

Система FAT32 - более новая файловая система на основе формата FAT, она поддерживается Windows 95 OSR2, Windows 98 и Windows Millennium Edition. FAT32 использует 32-разрядные идентификаторы кластеров, но при этом резервирует старшие 4 бита, так что эффективный размер идентификатора кластера составляет 28 бит. Поскольку максимальный размер кластеров FAT32 равен 32 Кбайт, теоретически FAT32 может работать с 8-терабайтными томами. Windows 2000 ограничивает размер новых томов FAT32 до 32 Гбайт, хотя поддерживает существующие тома ЕАТ32 большего размера (созданные в других операционных системах). Большее число кластеров, поддерживаемое FAT32, позволяет ей управлять дисками более эффективно, чем FAT 16. FAT32 может использовать 512-байтовые кластеры для томов размером до 128 Мбайт.

Файловая система FAT 32 в Windows 98 используется в качестве основной. С этой операционной системой поставляется специальная программа преобразования диска из FAT 16 в FAT 32. Windows NT и Windows 2000 тоже могут использовать файловую систему FAT, и поэтому можно загрузить компьютер с DOS-диска и иметь полный доступ ко всем файлам. Однако некоторые из самых прогрессивных возможностей Windows NT и Windows 2000 обеспечиваются ее собственной файловой системой ntfs (NT File System). ntfs позволяет создавать на диске разделы объемом до 2 Тбайт (как и FAT 32), но, кроме этого, в нее встроены функции сжатия файлов, безопасности и аудита, необходимые при работе в сетевой среде. А в Windows 2000 реализуется поддержка файловой системы FAT 32. Установка операционной системы Windows NT начинается на диске FAT, но по желанию пользователя в конце установки данные на диске могут быть конвертированы в формат ntfs.

Можно сделать это и позже, воспользовавшись утилитой Convert.exe, поставляемой вместе с операционной системой. Преобразованный к системе ntfs раздел диска становится недоступным для других операционных систем. Чтобы вернуться в DOS, Windows 3.1 или Windows 9x, нужно удалить раздел ntfs, а вместо него создать раздел FAT. Windows 2000 можно устанавливать на диск с файловой системой FAT 32 и ntfs.

Возможности файловых систем ЕАТ32 гораздо шире возможностей FAT16. Самая важная ее особенность в том, что она поддерживает диски объемом до 2 047 Гбайт и работает с кластерами меньшего размера, благодаря чему существенно сокращает объемы неиспользуемого дискового пространства. Например, жесткий диск объемом 2 Гбайт в FAT16 использует кластеры размером по 32 Кбайт, а в FAT32 - кластеры размером по 4 Кбайт. Чтобы по возможности сохранить совместимость с существующими программами, сетями и драйверами устройств, FAT32 реализована с минимальными изменениями в архитектуре, API-интерфейсах, структурах внутренних данных и дисковом формате. Но, так как размер элементов таблицы FAT32 теперь составляет четыре байта, многие внутренние и дисковые структуры данных, а также API-интерфейсы пришлось пересмотреть или расширить. Отдельные API на ЕАТ32-дисках блокируются, чтобы унаследованные дисковые утилиты не повредили содержимое FAT32-дисков. На большинстве программ эти изменения никак не скажутся. Существующие инструментальные средства и драйверы будут работать и на FAT32-дисках. Однако драйверы блочных устройств MS-DOS (например, Aspidisk.sys) и дисковые утилиты нуждаются в модификации для поддержки FAT32. Все дисковые утилиты, поставляемые Microsoft (Format, Fdisk, Defrag, а также ScanDisk для реального и защищенного режимов), переработаны и полностью поддерживают FAT32. Кроме того, Microsoft помогает ведущим поставщикам дисковых утилит и драйверов устройств в модификации их продуктов для поддержки FAT32. FAT32 эффективнее FAT16 при работе с дисками большего объема и не требует их разбиения на разделы по 2 Гбайт. Windows 98 обязательно поддерживает FAT16, так как именно эта файловая система совместима с другими операционными системами, в том числе сторонних компании. В MS-DOS реального режима и в безопасном режиме Windows 98, файловая система FAT32 работает значительно медленнее, чем FAT16. Поэтому, при запуске программ в режиме MS DOS желательно включить в файл Autoexec.bat или PIF-файл команду для загрузки Smartdrv.exe, что ускорит дисковые операции. Некоторые устаревшие программы, рассчитанные на спецификацию FAT16, могут сообщать неправильную информацию об объеме свободного или общего дискового пространства, если он больше 2 Гбайт. Windows 98 предоставляет новые API-интерфейсы для MS-DOS и Win32, которые позволяют корректно определять эти показатели. В табл. 1 приведены сравнительные характеристики FAT16 и FAT32.

Таблица 1. Сравнение файловых систем FAT16 и FAT32

Реализована и используется большинством операционных систем (MS-DOS, Windows 98, Windows NT, OS/2, UNIX).

На данный момент поддерживается только в Windows 95 OSR2 и Windows 98.

Очень эффективна для логических дисков размером менее 256 Мбайт.

Не работает с дисками объемом менее 512 Мбайт.

Поддерживает сжатие дисков, например по алгоритму DriveSpace.

Не поддерживает сжатие дисков.

Обрабатывает максимум 65 525 кластеров, размер которых зависит от объема логического диска. Так как максимальный размер кластеров равен 32 Кбайт, FAT16 может работать с логическими дисками объемом не более 2 Гбайт.

Способна работать с логическими дисками объемом до 2 047 Гбайт при максимальном размере кластеров в 32 Кбайт.

Чем больше размер логического диска, тем меньше эффективность хранения файлов в FAT"16-системе, так как увеличивается и размер кластеров. Пространство для файлов выделяется кластерами, и поэтому при максимальном объеме логического диска файл размером 10 Кбайт потребует 32 Кбайт, а 22 Кбайт дискового пространства пропадет впустую.

На логических дисках объемом менее 8 Гбайт размер кластеров составляет 4 Кбайт.

Максимально возможная длина файла в FAT32 равна 4 Гбайт за вычетом 2 байтов. Win32-приложения могут открывать файлы такой длины без специальной обработки. Остальные приложения должны использовать прерывание Int 21h, функцию 716С (FAT32) с флагом открытия, равным EXTEND-SIZE (1000h).

В файловой системе FAT32 на каждый кластер в таблице размещения файлов отводится по 4 байта, тогда как в FAT16 - по 2, а в FАТ12 - по 1,5.

Старшие 4 бита 32-разрядного элемента таблицы FAT32 зарезервированы и не участвуют в формировании номера кластера. Программы, напрямую считывающие РАТ32-таблицу, должны маскировать эти биты и предохранять их от изменения при записи новых значений.

Итак, FAT32 обладает следующими преимуществами в сравнении с прежними реализациями файловой системы FAT:

    поддерживает диски объемом до 2 Тбайт;

    эффективнее организует дисковое пространство. FAT32 использует кластеры меньшего размера (4 Кбайт для дисков объемом до 8 Гбайт), что позволяет сэкономить до 10-15% пространства на больших дисках по сравнению с FAT;

    корневой каталог FAT 32, как и все остальные каталоги, теперь не ограничен, он состоит из цепочки кластеров и может быть расположен в любом месте диска;

    имеет более высокую надежность: FAT32 способна перемещать корневой каталог и работать с резервной копией FAT, кроме того, загрузочная запись на FАТ32-дисках расширена и теперь включает резервную копию критически важных структур данных, а это означает, что FАТ32-диски менее чувствительны к возникновению отдельных сбойных участков, чем существующие FAT-тома;

    программы загружаются на 50% быстрее.

Таблица 2. Сравнение размеров кластеров

Объем диска

Размер кластеров в FAT16, Кбайт

Размер кластеров в FAT32, Кбайт

256 Мбайт-511 Мбайт

Не поддерживается

512 Мбайт -1023 Мбайт

1024 Мбайт - 2 Гбайт

2 Гбайт - 8 Гбайт

Не поддерживается

8 Гбайт-16 Гбайт

Не поддерживается

16 Гбайт-32 Гбайт

Не поддерживается

Более 32 Гбайт

Не поддерживается

Усовершенствованная утилита дефрагментации дисков оптимизирует размещение файлов приложения, загружаемых в момент его запуска. Возможно преобразование диска в ЕАТ32 с помощью утилиты Drive Converter (FAT32), но после этого рекомендуется запустить утилиту Disk Defragmenter, - иначе компьютер будет работать с диском медленнее, чем раньше. При использовании FAT32 становится невозможной конфигурация с альтернативной загрузкой Windows 98 и Windows NT 4.0, так как последняя не поддерживает FAT32. FAT32 распределяет дисковое пространство гораздо экономичнее предыдущих версий файловой системы FAT. Благодаря этому на больших дисках удается высвободить десятки и даже сотни мегабайтов, а в сочетании с усовершенствованной утилитой дефрагментации дисков FAT32 значительно сокращает время загрузки приложений. Процедура преобразования файловой системы на жестком диске в FAT32 с помощью Drive Converter (FAT32) достаточно проста. Для этого последовательно необходимо открыть меню Start (Пуск), подменю programs (Программы), Accessories (Стандартные), System Tools (Служебные) и выбрать команду Drive Converter (FAT32) (Преобразование диска в FАТ32). Преобразование может повлиять на функции спящего режима (hibernate features) (сохранения состояния компьютера на диск), предусмотренные во многих компьютерах. Системы, в которых режим сна реализован через АРМ BIOS или ACPI (Advanced Configuration and Power Interface) S4/BIOS, должны поддерживать FAT32, - только тогда они будут корректно работать в Windows 98.

Большинство изготовителей BIOS включают в нее средства защиты от вирусов, отслеживающие изменения в главной загрузочной записи MBR (Master Boot Record). Кроме того, устаревшие антивирусные утилиты, устанавливаемые как резидентные программы или драйверы реального режима, могут обнаруживать изменение MBR при загрузке MS-DOS. Так как преобразование в FAT32 приводит к неизбежной модификации MBR, некоторые средства проверки на вирусы могут ошибочно счесть это признаком инфицирования системы. Поэтому, если антивирусная утилита, обнаружив изменение MBR, предлагает "вылечить" ее. Лучше всего удалить антивирусное программное обеспечение и отключить встроенные в BIOS средства защиты от вирусов перед преобразованием диска в FAT32. Потом можно вновь установить антивирусную утилиту и активизировать встроенные в BIOS средства защиты от вирусов.

Разберем виды файловой системы для флешки, какой же все таки лучше. Один пользователь прислал мне фото с ошибкой "Файл слишком велик для конечной файловой системы" и решил написать статью в каких случаях нужно использовать системы FAT32, NTFS и exFAT. Он перемещал файл размером более 4 Гб на флешку размером 8 Гб. Дело в том, что система FAT32 не может обрабатывать информацию более 4 Гб, если у вас флешка имеет объем 32 Гб и файловая система у нее FAT32, то вы не сможете записать на нее файл более 4 Гб. Рассмотрим все три файловые системы в windows, разберем их минусы и плюсы.

FAT32

Старый режим файловой системы, который обычно используется при покупке флешки с магазина и причина тому-совместимость. Совместимость заключается в том, что FAT32 можно использовать на любом компьютере под управлением MAC, Windows, Linux, старые ПК. Самым большим ограничением является то, что она имеет ограничения на размер файла в 4 Гб, который в сегодняшний день имеет проблемы с такими форматами, как 4к-видео, Blu-ray. Одним словом, если вы собираетесь работать с файлами, размер которых составляет менее 4 Гб и флешка используется на разных компьютерах, с разными операционными системами, то файловая система FAT32 очень подходит.

exFAT

Обновленная файловая система созданная компанией microsoft на замену FAT32. Начала использоваться в Windows Vista SP1 и имеет максимальный размер файла 16 эксабайт (ЭБ), который равен 1 Эб = 10 18 байтам. Совместима с Mac OS и Windows, является очень хорошей системой для обмена большими файлами.

Минусы:

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

Плюсы:

  • Перезаписывает меньшее количество раз один и тот же сектор, что важно для флешек, продлевая жизнь ячейкам памяти. Как известно флешки имеют N-количества перезаписей, потом выходят из строя.
  • Большой лимит на размер файла 16 эксабайт.
  • Размер кластера 32 мегабайта.
  • Улучшено распределение свободного место, что уменьшает дефрагментацию диска.

NTFS

Новейшая файловая система созданная microsoft и является современной структурой сегодняшнего дня практически для любого современного внутреннего жесткого диска, флешки или ssd-диска. NTFS-новая технология файловой системы. Система windows может быть установлена только на NTFS. Является по умолчанию для дисков с операционной системой, в связи с многофункциональностью. Она имеет все технологии microsoft: ведение журнала, ни одного ограничение по размерам файла, поддержка сжатие файлов, длинные имена, файл контроля доступа для админов сервера и многое другое. В домашних условиях это самый лучший вариант использования этой системы на дисках и флешках. Есть одна загвоздка, когда вы вставите флешку в Mac OS, информацию с флешки вы скопировать сможете, но изменить-нет.

Вывод:

Для USB флешек вы должны использовать exFAT , если вы постоянно находитесь в среде Mac OS, Windows, переставляя флешку с одной операционной системы в другую. Если вы используете только windows, то NTSF отличное решение.

vfat - реализация файловых систем MS-DOS FAT/FAT32 в Linux. man mount(8)

Типичный набор опций монтирования vfat для UTF-8 локали (пропускаем опции значение по-умолчанию которых нас устаривает):

uid=user_name,gid=group_name,fmask=0113,dmask=0002,codepage=866,utf8,shortname=winnt,quiet

Для не-UTF8 локали, а это скорей всего KOI8-R локаль (не забывая теперь обязательное для RHEL/CentOS "utf8=no"):

uid=user_name,gid=group_name,fmask=0113,dmask=0002,codepage=866,iocharset=koi8-r,utf8=no,shortname=winnt,quiet

или учитывая что "uni_xlate" отключает "utf8", тем боле что уж лучше видеть закодированные имена файлов/директорий с которыми можно как-то обращаться чем неразличимые строчки из "?":

uid=user_name,gid=group_name,fmask=0113,dmask=0002,codepage=866,iocharset=koi8-r,uni_xlate,shortname=winnt,quiet

user_name и group_name - имена пользователя и группы которым предоставляется доступ на чтение/запись в монтируемый раздел FAT/FAT32 в соответствии с установленными fmask и dmask

Общие опции монтирования варьируются в зависимости от того, монтируем через командную строку или через запись в /etc/fstab, или в зависимости от необходимости автомонтирования при загрузке, режима rw/ro, или предоставления возможности монтирования/размонтирования раздела пользователями. Обычно используются: rw,async
В целях безопасности для FAT/FAT32 разделов можно явно указать: nodev,nosuid,noexec
Для ускорения можно использовать: noatime,nodiratime

Опции монтирования перечислены в man mount(8) в разделах "Mount options for fat" и "Mount options for vfat".
Mount options for fat
=====================

blocksize=512 / blocksize=1024 / blocksize=2048
Set blocksize (default 512).
Размер блока ввода/вывода.

uid=value and gid=value
Set the owner and group of all files. (Default: the uid and gid of the current process.)

Поскольку в FAT/FAT32 нет поддержки прав владения и доступа к файлам и директориям, то весь
раздел по-умолчанию монтируется с идентификаторами uid и gid владельца процесса
осуществляющего монтирование. Можно указать нужного пользователя и группу от имени которого
будет монтироваться раздел FAT/FAT32. Это могут быть как числовые значения идентификаторов
так и имена пользователя/группы, по крайней мере из командной строки проходит простое
задание имени пользователя/группы.

umask=value
Set the umask (the bitmask of the permissions that are not present). The default is the umask
of the current process. The value is given in octal.

dmask=value
Set the umask applied to directories only. The default is the umask of the current process.
The value is given in octal.

fmask=value
Set the umask applied to regular files only. The default is the umask of the current process.
The value is given in octal.

umask, dmask, fmask - маски прав доступа для файлов/директорий (umask) либо отдельно для
директорий (dmask) и отдельно для файлов (fmask). Фактически через них устанавливаются права
владельца (u), группы (g) и прочих пользователей (o) для всех файлов и дерикторий на монтируемом
разделе vfat. Задаётся в виде восьмиричного числа. (Кстати запись восьмеричного значения
не обязательно должна начинаеться с нуля.)

check=value
Three different levels of pickyness can be chosen:
r
Upper and lower case are accepted and equivalent, long name parts are truncated
(e.g. verylongname.foobar becomes verylong.foo), leading and embedded spaces are
accepted in each name part (name and extension).
n
Like "relaxed", but many special characters (*, ?, This is the default.
s
Like "normal", but names may not contain long parts and special characters that
are sometimes used on Linux, but are not accepted by MS-DOS are rejected.
(+, =, spaces, etc.)

Управляет проверкой создаваемых имён файлов/директорий на разделе vfat, чтоб они соответсвовали
принятым в FAT/FAT32 правилам и ограничениям. По-умолчанию "n".

codepage=value
Sets the codepage for converting to shortname characters on FAT and VFAT filesystems.
By default, codepage 437 is used.

Параметр монтирования который лучше указать. Задаёт досовскую кодовую страницу в которой
сохраняются создаваемые короткие (в формате 8.3) досовские имена файлов и директорий.
Тем кто ещё работал в досе и настраивал её эту цифру не забыть - для нормального
чтения/сохранения русских имён - codepage=866

conv=b / conv=t / conv=a
The fat file system can perform CRLFNL (MS-DOS text format to UNIX text format) conversion
in the kernel. The following conversion modes are available:
binary - No translation is performed. This is the default.
text - CRLFNL translation is performed on all files.
auto - CRLFNL translation is performed on all files that don’t have a "well-known
binary" extension. The list of known extensions can be found at the beginning
of fs/fat/misc.c (as of 2.0, the list is:
exe, com, bin, app, sys, drv, ovl, ovr, obj, lib, dll, pif, arc, zip, lha, lzh,
zoo, tar, z, arj, tz, taz, tzp, tpz, gz, tgz, deb, gif, bmp, tif, gl, jpg, pcx,
tfm, vf, gf, pk, pxl, dvi).
Programs that do computed lseeks won’t like in-kernel text conversion.
Several people have had their data ruined by this translation. Beware!
For file systems mounted in binary mode, a conversion tool (fromdos/todos) is available.

Попытки облегчить перенос текстовых файлов из UNIX-like системы в MS-DOS путём автоматичексой
замены CRLFNL на лету. Лучше пользоваться если нужно для конкретных файлов командными
утилитами конвертации dos2unix и unix2dos из одноимённых пакетов, или же универсальной iconv
идущей в составе пакета glibc-common.

cvf_format=module
Forces the driver to use the CVF (Compressed Volume File) module cvf_module instead of
auto-detection. If the kernel supports kmod, the cvf_format=xxx option also controls

cvf_option=option
Option passed to the CVF module.

cvf_format, cvf_option - параметры указывающие на конкретный модуль CVF и его опций
для загрузки ядром. Что это такое не хочется разбираться.

debug
Turn on the debug flag. A version string and a list of file system parameters will be printed
(these data are also printed if the parameters appear to be inconsistent).

Судя по описанию включает вывод строки с версией и параметрами файловой системы при
монтировании раздела FAT/FAT32.

fat=12 / fat=16 / fat=32
Specify a 12, 16 or 32 bit fat. This overrides the automatic FAT type detection routine.
Use with caution!

Вместо автоопределения типа FAT можно указать конкретную её версию.

iocharset=value
Character set to use for converting between 8 bit characters and 16 bit Unicode characters.
The default is iso8859-1.
Long filenames are stored on disk in Unicode format.

Вот этот параметр следует указать, если используется не-UTF8 пользовательская/системная локаль.
Как написано длинные имена файлов и директорий сохраняются в разделе VFAT в формате Юникод.
Для того чтобы при передаче в настроенные на не-UTF8 локаль пользовательске приложения,
символы из Юникод конвертировались в подходящий для этой локали восьмибитный код, необходимо
задать нужную табицу преобразования iocharset.
По-умолчанию, если не указывать, iocharset=ascii, т.е. подразумевается что длинные имена
файлов/каталогов состоят из символов из набора ASCII, для которых производится тривиальное
(один-в-один) преобразование кодов UnicodeASCII.
Для KOI8-R локали следует указать таблицу преобразования символов в коды KOI8-R из символов
Юникод - iocharset=koi8-r (посмотреть можно в /usr/share/i18n/charmaps/KOI8-R.gz).
Задание iocharset имеет смысл только если в системе (или для конкретного пользователя,
для которого монтируется раздел) используется не-UTF8 локаль.
Для UTF-8 локали опцию iosharset пропускаем и монтировать раздел необходимо со специально
предназанченной для этого случая самостоятельной опцией "utf8" (см. описание далее).

quiet
Turn on the quiet flag. Attempts to chown or chmod files do not return errors, although they fail.
Use with caution!

Подавляет сообщения об ошибке при попытке выполнить "chown" или "chmod" для файлов на разделе
FAT/FAT32. Вообще, хоть и предупреждают пользоваться этой опцией с осторожностью, но она делает
повседневную работу с разделами vfat более удобной, прозрачно пропуская запросы приложений
на выполнение неподдерживаемых FAT/FAT32 функций, которые время от времени постоянно возникают.
Например, при создании резервной копии редактируемого файла в gedit или при использованиий rsync
с обычной опцией "-a". Просто нужно помнить что раздел с которым работаешь - FAT/FAT32 и
учитывать, что помещённые на него файлы всегда приобретают владельца и режим доступа указанный
при монтировании. В отсутствие этой опции помнить об этом также приходится, потому что постоянно
получаешь ошибки выполнения операции бэкапа (нужно например специально прописывать опции rsync)
или предупреждения при перемещении файлов из-за невозможности сменить их владельца и время.
Осмотрительность надо проявлять при обратных операциях - получения файлов с разделов vfat
с установкой владельца.

sys_immutable, showexec, dots, nodots, dotsOK=
Various misguided attempts to force Unix or DOS conventions onto a FAT file system.

Различные с переменным успехом попытки привести в соответсвие Unix- и DOS- соглашения для
файловой системы FAT. Пример и описание использования параметра "showexec" можно посмотреть в этой одной из редких не содержащих ошибочных сведений статье: http://citkit.ru/articles/147/

Mount options for vfat
======================

uni_xlate
Translate unhandled Unicode characters to special escaped sequences. This lets you backup
and restore filenames that are created with any Unicode characters. Without this option,
a ’?’ is used when no translation is possible. The escape character is ’:’ because it is
otherwise illegal on the vfat filesystem. The escape sequence that gets used, where u is
the unicode character, is: ’:’, (u & 0x3f), ((u>>6) & 0x3f), (u>>12).

Это тоже полезная опция при работе в не-UTF8 локали. В длинных именах файлов/директорий
могут встречаться любые символы Юникод, в том числе и не попадающие в тот набор из 256
символов, который указан в таблице конвертации в параметре iocharset=. Такие символы
отображаются как ’?’, или если указана данная опция они представляются специальными
escape-последовательностями. Символ экранирования - двоеточие ’:’, потому что он запрещён
в досовских именах и точно никогда в них не встречается. Потенциально при этой включённой
опции можно управляться с файлами имена которых содержат любые из символов Юникод.
Имена выглядят забавно: например файл с именем "тест" будет показываться
как ":0442:0435:0441:0442". Фаил с таким именем можно создать, скопировать,
записать, переименовать например в ":0442:0435:0441:0441", и это будет досовское имя "тесс".
Но вот например синхронизация директорий с такими escape-последовательностями в имени
с помощью rsync не будет работать, очевидно потому что rsync ничего не знает о подобных
преобразованиях имён.

posix
Allow two files with names that only differ in case.

Разрешает создание двух файлов с именами различающимися только регистром.

nonumtail
First try to make a short name without sequence number, before trying name~num.ext.

При создании короткого досовского имени пытается сначала создать его без обычных тильды
с номером в конце имени.

utf8
UTF8 is the filesystem safe 8-bit encoding of Unicode that is used by the console.
It can be be enabled for the filesystem with this option.
If ‘uni_xlate’ gets set, UTF8 gets disabled.

Включает UTF-8 кодирование символов Юникод при передачи их в пользовательские приложения
работающие в UTF-8 локали. Очевидно что это то, что нужно в обычных условиях.
Если установлена опция "uni_xlate", то опция "utf8" отключается.

Теоретически в UTF-8 локали можно не использовать опцию "utf8", а задать iocharset=utf8.
В исходниках fs/fat/inode.c встречаем такое предупреждение:
1105 /* UTF-8 doesn"t provide FAT semantics */
1106 if (!strcmp(opts->iocharset, "utf8")) {
1107 printk(KERN_ERR "FAT: utf8 is not a recommended IO charset"
1108 " for FAT filesystems, filesystem will be case sensitive!\n");
1109 }

shortname=
Defines the behaviour for creation and display of filenames which fit into 8.3 characters.
If a long name for a file exists, it will always be preferred display. There are four modes:
lower - Force the short name to lower case upon display;
win95 - Force the short name to upper case upon display;
store a long name when the short name is not all upper case.
winnt - Display the shortname as is;
store a long name when the short name is not all lower case or all upper case.
mixed - Display the short name as is;
store a long name when the short name is not all upper case.
The default is "lower".

Определяет то, как создаются и отображаются имена файлов и директорий которые сами по себе
имеют формат 8.3. Если для файла существует длинное имя, то будет выводиться оно,
т.к. всегда имеет приоритет. Имеется четыре режима, как описано. По-умолчанию - "lower".
Думается что более естественно использовать "winnt".

После монтирования раздела проверить опции с которыми он смонтировался можно по "cat /proc/mounts".

В RedHat/CentOS замечена одна особенность: vfat раздел всегда монтируется с включённой опцией "utf8", даже если она не указана в командной строке. Это происходит также в не-UTF8 локали, что приводит к тому что имена файлов состоящие из не-ascii символов отображаются неверно (как обычно это выглядит когда юникод строку пытаются вывести с помощью какой-либо кодовой таблицы из 256 восьмибитовых символов). Это является результатом патча бага Анаконды https://bugzilla.redhat.com/show_bug.cgi?id=181963 , когда вместо исправления ошибки в настройках инсталляторя просто пропатчили ядро на предмет чтобы по умолчанию vfat разделы монтировались с включённой опцией "utf8", т.к. типа всё равно все уже давно работают только в UTF-8 локали. Но при этом забыли упомянуть в man-странице как отключать эту опцию https://bugzilla.redhat.com/show_bug.cgi?id=515149

В том же fs/fat/inode.c можно посмотреть недокументированные параметры, которые можно задать для управления опциями, в том числе для отключения "utf8":
905 static match_table_t vfat_tokens = {
906 {Opt_charset, "iocharset=%s"},
907 {Opt_shortname_lower, "shortname=lower"},
908 {Opt_shortname_win95, "shortname=win95"},
909 {Opt_shortname_winnt, "shortname=winnt"},
910 {Opt_shortname_mixed, "shortname=mixed"},
911 {Opt_utf8_no, "utf8=0"}, /* 0 or no or false */
912 {Opt_utf8_no, "utf8=no"},
913 {Opt_utf8_no, "utf8=false"},
914 {Opt_utf8_yes, "utf8=1"}, /* empty or 1 or yes or true */
915 {Opt_utf8_yes, "utf8=yes"},
916 {Opt_utf8_yes, "utf8=true"},
917 {Opt_utf8_yes, "utf8"},
918 {Opt_uni_xl_no, "uni_xlate=0"}, /* 0 or no or false */
919 {Opt_uni_xl_no, "uni_xlate=no"},
920 {Opt_uni_xl_no, "uni_xlate=false"},
921 {Opt_uni_xl_yes, "uni_xlate=1"}, /* empty or 1 or yes or true */
922 {Opt_uni_xl_yes, "uni_xlate=yes"},
923 {Opt_uni_xl_yes, "uni_xlate=true"},
924 {Opt_uni_xl_yes, "uni_xlate"},
925 {Opt_nonumtail_no, "nonumtail=0"}, /* 0 or no or false */
926 {Opt_nonumtail_no, "nonumtail=no"},
927 {Opt_nonumtail_no, "nonumtail=false"},
928 {Opt_nonumtail_yes, "nonumtail=1"}, /* empty or 1 or yes or true */
929 {Opt_nonumtail_yes, "nonumtail=yes"},
930 {Opt_nonumtail_yes, "nonumtail=true"},
931 {Opt_nonumtail_yes, "nonumtail"},
932 {Opt_err, NULL}
933 };



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows