Файловая система FAT и Linux - FAT filesystem and Linux

Linux имеет несколько файловая система драйверы для Таблица размещения файлов (FAT) формат файловой системы. Они широко известны по именам, используемым в монтировать команда для вызова определенных драйверов в ядре: msdos, vfat, и умсдос.[1][2]

История и поддержка

Большинство основных дистрибутивов Linux, включая RedHat, SuSE и Debian, не используют умсдос чтобы разрешить установку Linux на диск FAT. Однако есть несколько дистрибутивов.[3] К ним относятся такие дистрибутивы, как Phat Linux, который устанавливается в C: PHAT в DOS, распаковав ZIP файл и загружается при запуске COMMAND.COM сценарий назван LINUX.BAT,[4] и ZipSlack[нужна цитата ].

Проект UMSDOS был начат в 1992 году Жаком Гелинасом и стал доступен в сети в январе 1994 года в виде патча. Входит в стандартный дистрибутив начиная с ядра 1.1.36.[нужна цитата ] UMSDOS был удален из ядра Linux 2.6.11 из-за отсутствия поддержки.[5] UVFAT, расширение UMSDOS для использования структур данных Windows для длинных имен файлов вместо собственных, было прекращено перед выпуском.[6] Они должны работать в ядрах 2.4.x.[нужна цитата ]

Более ранние дистрибутивы Linux, которые использовали UMSDOS: MuLinux,[7] Обезьяна Linux[8] и Winlinux 2000.[9]

Сравнение характеристик

Все драйверы файловой системы Linux поддерживают все три типа FAT, а именно: FAT12, FAT16 и FAT32. Они отличаются в том, что касается поддержки длинные имена файлов, за пределами 8.3 имя файла структура исходного формата файловой системы FAT, а также в обеспечении семантики файлов Unix, которые не существуют в качестве стандартных в формате файловой системы FAT, например права доступа к файлам.[1] Драйверы файловой системы исключают друг друга. Только один диск можно использовать для монтирования любого дискового тома в любой момент времени. Таким образом, выбор между ними определяется тем, какие длинные имена файлов и семантика Unix они поддерживают, и какое использование дискового тома требуется.[10]

msdos

В msdos Драйвер файловой системы не предоставляет никакой дополнительной семантики файлов Unix и не поддерживает длинные имена файлов. Если файловая система FAT смонтирована с использованием этого драйвера, будут видны только имена файлов формата 8.3, длинные имена файлов будут недоступны, а также не будут поддерживаться какие-либо структуры данных с длинными именами любого типа на томе диска. В vfat драйвер файловой системы обеспечивает поддержку длинных имен файлов с использованием тех же структур данных на диске, что и Майкрософт Виндоус использует для VFAT поддержка длинных файлов в томах формата FAT, но не поддерживает дополнительную семантику файлов Unix. В умсдос Драйвер файловой системы обеспечивает поддержку длинных имен файлов и дополнительную семантику файлов Unix. Однако он делает это с использованием структур данных на диске, которые не распознаются никакими драйверами файловых систем для любых операционных систем, кроме Linux.[1][2][10][11]

умсдос

Ключевое преимущество умсдос из трех заключается в том, что он обеспечивает полную семантику файлов Unix. Следовательно, его можно использовать в ситуациях, когда желательно установить Linux и запустить его с дискового тома FAT, что требует наличия такой семантики. Однако Linux, установленный и работающий с такого дискового тома, работает медленнее, чем Linux, установленный и работающий с дискового тома, отформатированного, например, с помощью ext2 формат файловой системы.[1][12] Кроме того, если служебная программа не запускается регулярно каждый раз при переключении с Windows на Linux, определенные изменения, внесенные в файлы и каталоги на диске Windows, вызовут сообщения об ошибках о недоступных файлах в Linux.[4]

vfat

vfat, при отсутствии полной семантики файлов Unix и возможности установки и запуска Linux на томе FAT-диска, не имеет вышеупомянутых недостатков. умсдос когда дело доходит до простого обмена данными на томе диска FAT между Linux и другими операционными системами, такими как Windows. Его структуры данных такие же, как и в Windows для длинных имен файлов VFAT, и не требуется запускать утилиту синхронизации, чтобы предотвратить расслоение структур данных Windows и Linux. По этой причине это наиболее подходящий драйвер файловой системы Linux FAT для использования в большинстве ситуаций.[1][10][4]

FS-драйвердлинные имена файловСемантика файлов UnixКомментарий
msdosНетНетТолько имена файлов 8.3
vfatдаНетиспользует те же структуры данных, что и Windows
умсдосдадаможет размещать Linux; может потребоваться обслуживание при переключении ОС

Общие черты

Как упоминалось ранее, все драйверы файловой системы Linux поддерживают все три размера таблицы размещения файлов: 12-битный, 16-битный и 32-битный. Другими общими функциями, которые все они поддерживают, являются различные варианты монтирования Linux (указанные с вариант для монтировать команда):[10][3]

uid и гид
Эти две опции говорят драйверу файловой системы установить (по умолчанию, в случае умсдос) идентификатор пользователя-владельца и идентификатор группы должны быть единым заданным значением для всех файлов в томе. Оба идентификатора указываются как числовые значения (их можно найти в / etc / passwd файл). Так, например, чтобы указать vfat драйвер файловой системы, что все файлы и каталоги должны иметь идентификатор владельца 745 и идентификатор группы 15, монтировать команда будет вызываться как монтировать -t vfat -o uid=745, гид=15.[10][3] Драйверы файловой системы Linux в настоящее время не поддерживают пароли файлов / каталогов на томах FAT12 / FAT16 / FAT32 и многопользовательских права доступа к миру / группе / владельцу для чтения / записи / удаления / выполнения на томах FAT12 / FAT16, реализованных в различных операционных системах семейства Digital Research, включая DR-DOS, PalmDOS, Novell DOS, OpenDOS, FlexOS, Параллельная DOS, Многопользовательская DOS, Системный менеджер и РЕАЛЬНЫЙ / 32.
маска
Эта опция устанавливает маска применить глобально ко всем файлам в томе. Например, чтобы указать vfat драйвер файловой системы, запрещающий "групповой" или "другой" доступ, монтировать команда будет вызываться как монтировать -t vfat -o маска=077.[10][3]
Конв
Этот параметр указывает преобразование содержимого файла семантика. Драйверы файловой системы могут преобразовывать соглашения о новой строке в файлах между завершением LF и завершением CRLF на лету по мере чтения и записи файлов. По умолчанию это преобразование полностью отключено. Драйверы файловой системы могут выполнять преобразование для некоторых файлов, пытаясь автоматически определять, какие файлы преобразовывать, на основе части расширения имени файла или глобально для всех файлов. Эти три уровня конверсии указаны как conv = b (для "двоичного"), conv = a (для «автоопределения») и conv = t (для «текста») соответственно. Последние два варианта несут в себе риск повреждения нетекстовых файловых данных. По умолчанию преобразование не выполняется.[10][3]

умсдос

Структура данных

В умсдос Драйвер файловой системы FAT хранит всю дополнительную информацию, относящуюся к семантике файлов Unix, в том, что для другого драйвера файловой системы FAT кажется обычным файлом в каждом каталоге и подкаталоге с именем --LINUX -.---.[1][10][4][3][13]

При отсутствии этого файла в каком-либо каталоге и, следовательно, по умолчанию умсдос драйвер файловой системы обеспечивает ту же семантику, что и msdos Драйвер файловой системы делает для каталога: только имена файлов 8.3 и никакой дополнительной семантики файлов Unix. Чтобы включить умсдос дополнительных возможностей драйвера, необходимо создать этот файл в каталоге и синхронизировать его внутренние данные с обычными данными FAT для любых существующих записей, уже находящихся в каталоге. Это делается с помощью инструмента под названием umssync.[1][10][4]

Это служебная программа, которая запускается в каждом каталоге на томе диска каждый раз при переключении с Windows на Linux, чтобы умсдос драйвер файловой системы для включения любых изменений, внесенных в файлы и каталоги Windows, в ее частные структуры данных в ее --LINUX -.--- файл. По умолчанию umssync инструмент создает --LINUX -.--- файлы в каталогах, если они еще не существуют, в результате чего такой файл будет в каждом каталоге на томе диска. При переключении между Windows и Linux такое поведение не всегда считается желательным. Следовательно, нормальный режим работы при вызове umssync после переключения с Windows на Linux (что обычно выполняется путем запуска инструмента во время загрузки Linux из сценария запуска) следует использовать -c параметр команды, который предотвращает создание любых новых --LINUX -.--- файлы в каталогах, в которых их еще нет.[1][10][4]

Установка Linux на FAT

Как уже упоминалось, умсдос позволяет установить Linux, а затем загрузить и запустить его с диска в формате FAT. Преимущество этого заключается в том, что он позволяет использовать Linux на компьютере, где ДОС уже установлен, не требуя, чтобы жесткий диск был переделанный. Linux не загружается напрямую с Объем загрузочной записи в таком сценарии. Вместо этого сначала загружается DOS, и Loadlin или linld используется для загрузки Linux из DOS.[4]

Соглашение о такой установке для Linux корневая директория быть подкаталогом корневого каталога DOS объем загрузки, например C: LINUX . Таким образом, различные каталоги верхнего уровня Linux для DOS являются такими каталогами, как C: LINUX ETC (для /так далее), C: LINUX BIN (для / bin), C: LINUX LIB (для / lib), и так далее. В умсдос драйвер файловой системы автоматически добавляет C: LINUX ко всем путям. Расположение корневого каталога Linux указывается в умсдос драйвер файловой системы в первую очередь через опцию Loadlin команда. Так, например, Loadlin будет вызываться из командной строки, например loadlin c: linux boot vmlinuz корень rw = c: linux .[4][13]

Установка Linux в такой каталог в первую очередь просто включает распаковку файлов из архива в этот каталог и его подкаталоги. Такая установка также обычно требует использования файл подкачки а не раздел подкачки для Linux, однако это связано с желанием не переразбивать жесткий диск и не связано с умсдос драйвер файловой системы как таковой.[4]

Доступ к томам в формате FAT без поддержки ядра

Хотя драйверы файловой системы в ядре позволяют получить доступ к файлам и каталогам на томах, отформатированных в FAT, обычным образом, это также возможно сделать без поддержки драйверов ядра, используя служебные программы, которые образуют mtools набор утилит. Словно vfat Драйвер файловой системы FAT, mtools обеспечивает поддержку длинных имен файлов с использованием тех же структур данных диска, что и Microsoft Windows.[3][14][15]

Поочередно один из ПРЕДОХРАНИТЕЛЬ Могут использоваться драйверы файловой системы - FatFuse, FuseFat или mountlo.[16]

Наложенная файловая система POSIX

Современным эквивалентом UMSDOS является файловая система наложения POSIX (posixovl). Работает в FUSE.[17]

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

использованная литература

  1. ^ а б c d е ж г час Стэнфилд, Вики; Смит, Родерик В. (2002). Системное администрирование Linux. Библиотека Крейга Ханта Linux (2-е изд.). Джон Уайли и сыновья. п. 166. ISBN  978-0-7821-4138-2.
  2. ^ а б Уорд, Брайан (2004). Как работает Linux: что должен знать каждый суперпользователь. Серия прессов без крахмала. Пресс без крахмала. п. 41. ISBN  978-1-59327-035-3.
  3. ^ а б c d е ж г Смит, Родерик В. (2000). Руководство по конфигурации с несколькими загрузками. Серия справочников. Que Publishing. стр.256, 341–342. ISBN  978-0-7897-2283-6.
  4. ^ а б c d е ж г час я МакКьюн, Майк (2001). Интеграция Linux и Windows. Серия технологий с открытым исходным кодом. Prentice Hall PTR. стр.7–9. ISBN  978-0-13-030670-8.
  5. ^ «Сводка изменений с v2.6.10 на v2.6.11». www.kernel.org. Получено 2017-11-15.
  6. ^ "Файловая система UMSDOS: поддержка UVFAT". linux.voyager.hr. Получено 2015-07-16.
  7. ^ Проект MuLinux
  8. ^ Объяснение Monkey Linux
  9. ^ Комбинация Linux / Windows: используйте эти ресурсы, чтобы заставить ее работать
  10. ^ а б c d е ж г час я j Родерик В. Смит (2005). Linux в мире Windows. O'Reilly Media, Inc. п. 449. ISBN  0-596-00758-2.
  11. ^ Негус, Кристофер (2007). Библия Linux: загрузитесь до Ubuntu, Fedora, KNOPPIX, Debian, SUSE и 11 других дистрибутивов. Библейская серия. Джон Уайли и сыновья. стр.159. ISBN  978-0-470-08279-9.
  12. ^ Штробель, Стефан; Эллинг, Волкер (1997). Linux, запуск рабочей станции на вашем ПК. Полный комплект Linux, Райнер Маурер (3-е изд.). Springer. п. 43. ISBN  978-0-387-94880-5.
  13. ^ а б Данеш, Арман (2002). Как заставить Linux работать: важные советы и методы. Серия 1001 советов. Cengage Learning. стр.19. ISBN  978-1-884133-78-7.
  14. ^ Раджагопал, Радж (2000). Сеть с несколькими операционными системами: жизнь с Unix, Netware и NT. Серия лучших практик Ауэрбаха. CRC Press. стр.25–21. ISBN  978-0-8493-9831-5.
  15. ^ Валлийский, Мэтт (2003). Запуск Linux. Основное руководство по Linux (4-е изд.). O'Reilly Media, Inc. п. 405. ISBN  978-0-596-00272-5.
  16. ^ "FUSE: NonNativeFileSystems". Архивировано из оригинал 2015-09-15.
  17. ^ http://sourceforge.net/projects/posixovl/

дальнейшее чтение