FAT

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page FAT and the translation is 64% complete.
Other languages:
Resources

File Allocation Table (FAT) — файловая система, использовавшаяся в MS-DOS (и последующих версиях Microsoft Windows до NT); последние ревизии FAT (FAT32) используются в USB-накопителях[1]. В Linux имеет собственную реализацию и полностью поддерживается ядром Linux.

По состоянию на 26 августа 2019 года, Microsoft опубликовала спецификации файловой системы exFAT[2], благодаря чему поддержка exFAT стала возможной в ядре Linux. В ядро 5.4 была включена начальная поддержка exFAT[3].

Установка

Ядро

ЯДРО Включение поддержки FAT (CONFIG_VFAT_FS)
File systems  --->
   DOS/FAT/NT Filesystems  --->
      < > MSDOS fs support
      <*> VFAT (Windows-95) fs support
      (437) Default codepage for FAT
      (iso8859-1) Default iocharset for FAT
      [ ]   Enable FAT UTF-8 option by default
   -*- Native language support  --->
      (iso8859-1) Default NLS Option
      <*>   Codepage 437 (United States, Canada)
      <*>   NLS ISO 8859-1  (Latin 1; Western European Languages)
      -*-   NLS UTF-8

When planning on mounting FAT partitions, users may need to specify a codepage= option with mount. In the example above the codepage for the United States and Canada is used, however other codepages can be enabled a necessary. Optionally, users can also set a default codepage for FAT in the kernel configuration. Be sure each codepage value which is to be used has been enabled in the kernel.

Заметка
Помните, что параметр codepage, указанный вместе с командой mount, будет иметь приоритет над настройками ядра.

Не устанавливайте Default iocharset for fat в UTF-8, так как это не рекомендуется. Вместо этого укажите параметр utf8=true при монтировании раздела FAT (для этого необходим параметр ядра CONFIG_NLS_UTF8). Для более детальной информации смотрите man mount и соответствующую документацию ядра, расположенную в /usr/src/linux/Documentation/filesystems/vfat.rst.

Установка

Необходимо установить пакет sys-fs/dosfstools для пользовательских утилит FAT:

root #emerge --ask sys-fs/dosfstools

Использование

It should be possible to mount FAT filesystems with the mount command. Resizing could be done using sys-fs/fatresize.

Устранение проблем

Медленная скорость копирования файлов

If file transfer speeds are slow (can be viewed using iotop), ensure the filesystem is mounted with the async filesystem option. Edit /etc/fstab (or /etc/autofs/auto.misc when using autofs) system files as needed, likely removing the sync mount option. By default, filesystems are mounted using the async mount option.

Заметка
The filesystem sync mount option inhibits slower transfer speeds than the default async mount option. The sync mount option may cause flash media life-cycle shortening also! See man mount option sync explanation.

If file transfer speeds are still slow, try remounting the filesystem with the flush mount option:

root #mount -o remount,flush /path/to/mountpoint

Alternative operating system compatible filesystems

Try UDF filesystem using UDFTools, requiring sys-fs/udftools and Linux kernel UDF filesystem driver. Recently code was added to mkudffs for a fix for creating a mock partition increasing compatibility with Microsoft related operating systems. If using an older Linux kernel, ensure block size is set to 512 for increased compatibility. Most options are now default for compatibility, except for the required --bootarea=mbr creating the mock partition.

root #mkudffs --bootarea=mbr --label=your_label /dev/device_file

Попробуйте файловую систему F2FS от Samsung.

Аппаратные ошибки реализации символов UTF-8/UTF-16

Sometimes hardware firmware bugs will occur on embedded devices (eg. car radios) when reading their required formatted FAT/FAT32 filesystems containing UTF-8 characters. A workaround is to ensure initially mounting the FAT filesystem using (current default) mount options codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro.

For short filenames, codepage=437 is IBM-PC characters or basically ASCII. For long filenames, iocharset=iso8859-1 specifies ASCII. The option shortname=mixed is default, and can also try shortname=win95 option. Of which, are all current defaults. Additionally to further remedy UTF-8/UTF-16 incompatible characters, use a loop with sed to replace all incompatible UTF-8/UTF-16 characters with an underscore or other ASCII character. (See this replace_chars.sh script.)

For reference, this bug was encountered with a Sony car radio. The MEX-GS610BT radio model would hard reset upon attempting to read a USB flash media/drive containing UTF-8/UTF-16 characters.

As mentioned previously, see /usr/src/linux/Documentation/filesystems/vfat.txt, the Linux Kernel vfat source code documentation, for further explanation on whether to use codepage, iocharset, or utf8 mount options.

Unsorted files and folders

When writing files to the FAT/FAT32 filesystem, devices used for reading the filesystem may show the files and folders as unsorted. Commonly, viewer prefer seeing files and folders sorted alphabetically. Install sys-fs/fatsort, and issue the following command:

root #fatsort /dev/device_file

Смотрите также

  • ExFAT
  • ext4 — дисковая файловая система с открытым исходным кодом, и самая последняя версия серии "расширенных файловых систем". ext4 — наиболее популярная ФС для Linux.
  • btrfs — copy-on-write (копирование при записи (CoW)) файловая система для Linux, предназначенная для реализации расширенных возможностей, в то же время уделяя особое внимание отказоустойчивости, самовосстановлению и простоте администрирования.
  • filesystem — является средством для организации данных, которые необходимо сохранить после завершения программы, предоставляя процедуры хранения, поиска и обновления данных, а также управляет доступным пространством на устройстве(ах), которое содержит данные.
  • mount — the attaching of an additional filesystem to the currently accessible filesystem of a computer.
  • removable media — any media that is easily removed from a system
  • /etc/fstab — файл конфигурации, который определяет, как и когда должны подключаться основные файловые системы, особенно во время загрузки.

Внешние ресурсы

Ссылки