Файловая система FAT и Linux
В Linux имеется несколько драйверов файловой системы для формата файловой системы таблицы размещения файлов (FAT). Они широко известны под названиями, используемыми в mount
Команда для вызова определенных драйверов в ядре: msdos , vfat и umsdos . [1] [2]
История и поддержка
[ редактировать ]Большинство основных дистрибутивов Linux, включая RedHat, SuSE и Debian, не используют umsdos для разрешения установки 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] Обезьяна Линукс [8] и Винлинукс 2000. [9]
Сравнение функций
[ редактировать ]Все драйверы файловой системы Linux поддерживают все три типа FAT, а именно FAT12 , FAT16 и FAT32 . Отличия между ними заключаются в обеспечении поддержки длинных имен файлов , выходящих за рамки структуры имен файлов 8.3 исходного формата файловой системы FAT, а также в предоставлении семантики файлов Unix, которая не существует в качестве стандарта в формате файловой системы FAT, например, права доступа к файлам . [1] Драйверы файловой системы являются взаимоисключающими. В любой момент времени для монтирования любого тома диска можно использовать только один. Таким образом, выбор среди них определяется тем, какие длинные имена файлов и семантику Unix они поддерживают, и какое использование дискового тома требуется. [10]
мсдос
[ редактировать ]Драйвер файловой системы msdos не обеспечивает никакой дополнительной семантики файлов Unix и поддержки длинных имен файлов. Если файловая система диска FAT смонтирована с использованием этого драйвера, будут видны только имена файлов 8.3, длинные имена файлов будут недоступны, а также не будут поддерживаться какие-либо структуры данных с длинными именами на томе диска. Драйвер файловой системы vfat обеспечивает поддержку длинных имен файлов, используя те же структуры данных диска, которые Microsoft Windows использует для поддержки длинных имен файлов VFAT на томах формата FAT, но он не поддерживает никакой дополнительной семантики файлов Unix. Драйвер файловой системы umsdos обеспечивает поддержку длинных имен файлов и дополнительную семантику файлов Unix. Однако он делает это, используя структуры данных на диске, которые не распознаются драйверами файловой системы ни для одной операционной системы, кроме Linux. [1] [2] [10] [11]
умсдос
[ редактировать ]Ключевым преимуществом umsdos из трех является то, что он обеспечивает полную семантику файлов Unix. Следовательно, его можно использовать в ситуациях, когда желательно установить Linux и запустить его с тома диска FAT, где требуется наличие такой семантики. Однако Linux, установленный и работающий с такого дискового тома, работает медленнее, чем Linux, установленный и запущенный с дискового тома, отформатированного, например, в формате файловой системы ext2 . [1] [12] Кроме того, если служебная программа не запускается регулярно каждый раз при переключении с Windows на Linux, определенные изменения, вносимые Windows в файлы и каталоги на диске, будут вызывать сообщения об ошибках о недоступных файлах в Linux. [4]
жирный
[ редактировать ]vfat , хотя и не имеет полной семантики файлов Unix и не имеет возможности установить Linux и запустить его с дискового тома FAT, он не имеет вышеупомянутых недостатков umsdos, когда речь идет о простом совместном использовании данных на томе FAT диска между Linux и другими операционными системами. системы, такие как Windows. Его структуры данных такие же, как те, которые используются Windows для длинных имен файлов VFAT, и не требуется запуска утилиты синхронизации, чтобы предотвратить разъединение структур данных Windows и Linux. По этой причине этот драйвер файловой системы Linux FAT является наиболее подходящим для использования в большинстве ситуаций. [1] [10] [4]
FS-Драйвер | Длинные имена файлов | Семантика файлов Unix | Комментарий |
---|---|---|---|
мсдос | Нет | Нет | 8.3 только имена файлов |
жирный | Да | Нет | Использует те же структуры данных, что и Windows. |
умсдос | Да | Да | Может размещать Linux; может потребоваться обслуживание при переключении ОС |
Общие черты
[ редактировать ]Как упоминалось ранее, все драйверы файловой системы Linux поддерживают все три размера таблицы размещения файлов: 12-битный, 16-битный и 32-битный. Другими общими функциями, которые все они поддерживают, являются различные варианты монтирования Linux (указанные с помощью -o
вариант для mount
команда): [10] [3]
uid
иgid
- Эти два параметра сообщают драйверу файловой системы, что идентификатор пользователя-владельца и идентификатор группы (по умолчанию в случае umsdos ) должны быть одним указанным значением для всех файлов в томе. Оба идентификатора указываются в виде числовых значений (как указано в
/etc/passwd
файл). Так, например, чтобы указать драйверу файловой системы vfat , что все файлы и каталоги должны иметь идентификатор владельца 745 и идентификатор группы 15,mount
команда будет вызываться какmount -t vfat -o uid=745,gid=15
. [10] [3] Драйверы файловой системы Linux в настоящее время не поддерживают пароли файлов/каталогов на томах FAT12/FAT16/FAT32, а также многопользовательские права доступа к миру/группе/владельцу для прав чтения/записи/удаления/выполнения на томах FAT12/FAT16, как это реализовано в различных операционные системы семейства Digital Research, включая DR-DOS , PalmDOS , Novell DOS , OpenDOS , FlexOS , Concurrent DOS , Multiuser DOS , System Manager и REAL/32 . umask
- Этот параметр устанавливает глобальное применение umask ко всем файлам в томе. Например, чтобы указать драйверу файловой системы vfat , что «групповой» или «другой» доступ запрещен, необходимо
mount
команда будет вызываться какmount -t vfat -o umask=077
. [10] [3] conv
- Эта опция определяет семантику преобразования содержимого файла . Драйверы файловой системы могут преобразовывать соглашения о новой строке в файлах между завершением LF и завершением CRLF на лету, когда файлы читаются и записываются. По умолчанию это преобразование полностью отключено. Драйверы файловой системы могут выполнять преобразование некоторых файлов, пытаясь автоматически определить, какие файлы нужно преобразовать, на основе расширения имени файла или глобально для всех файлов. Эти три уровня преобразования определяются как
conv=b
(для «двоичного»),conv=a
(для «автоопределения») иconv=t
(для «текста») соответственно. Последние два варианта несут в себе риск повреждения нетекстовых данных файла. По умолчанию преобразование вообще не выполняется. [10] [3]
умсдос
[ редактировать ]Структура данных
[ редактировать ]Драйвер файловой системы umsdos FAT хранит всю дополнительную информацию, касающуюся семантики файлов Unix, в том, что для другого драйвера файловой системы FAT выглядит как обычный файл в каждом каталоге и подкаталоге с именем --LINUX-.---
. [1] [10] [4] [3] [13]
При отсутствии этого файла в каком-либо каталоге и, следовательно, по умолчанию, драйвер файловой системы umsdos обеспечивает ту же семантику, что и драйвер файловой системы msdos для каталога: только имена файлов 8.3 и никакой дополнительной семантики файлов Unix. Чтобы задействовать дополнительные возможности драйвера umsdos , необходимо создать этот файл в каталоге и синхронизировать его внутренние данные с обычными данными FAT для любых существующих записей, уже находящихся в каталоге. Это делается с помощью инструмента под названием umssync
. [1] [10] [4]
Это служебная программа, которая запускается в каждом каталоге на диске каждый раз при переключении с Windows на Linux, чтобы драйвер файловой системы umsdos включал в себя любые изменения, внесенные в файлы и каталоги Windows, в свою личную память. структуры данных в своих --LINUX-.---
файл. По умолчанию umssync
инструмент создает --LINUX-.---
файлы в каталогах, если они еще не существуют, в результате чего такой файл появляется в каждом каталоге тома диска. При переключении между Windows и Linux такое поведение не часто считается желательным. Поэтому нормальный режим работы при вызове umssync
после переключения с Windows на Linux (что обычно выполняется путем запуска инструмента во время загрузки Linux из сценария запуска) необходимо использовать команду -c
опция команды, которая предотвращает создание новых --LINUX-.---
файлы в каталогах, в которых их еще нет. [1] [10] [4]
Установка Linux на FAT
[ редактировать ]Как уже упоминалось, umsdos позволяет устанавливать Linux, а затем загружать и запускать его с диска формата FAT. Преимущество этого подхода в том, что он позволяет использовать Linux на компьютере, где уже установлена DOS жесткого диска , без необходимости переразметки . Linux не загружается напрямую из загрузочной записи тома В таком случае . Вместо этого сначала загружается DOS, а loadlin или linld для последующей загрузки Linux из DOS. затем используется [4]
Соглашением о такой установке является то, что корневой каталог Linux должен быть подкаталогом корневого каталога загрузочного тома DOS , например C:\LINUX
. Таким образом, различные каталоги верхнего уровня Linux для DOS являются такими каталогами, как C:\LINUX\ETC
(для /etc
), C:\LINUX\BIN
(для /bin
), C:\LINUX\LIB
(для /lib
) и так далее. Драйвер файловой системы umsdos автоматически добавляет C:\LINUX\
ко всем путям. Местоположение корневого каталога Linux передается драйверу файловой системы umsdos в первую очередь через опцию loadlin
команда. Так, например, loadlin
будет вызываться с помощью командной строки, например loadlin c:\linux\boot\vmlinuz rw root=c:\linux
. [4] [13]
Установка Linux в такой каталог в первую очередь предполагает просто распаковку файлов из архива в этот каталог и его подкаталоги. Такая установка также обычно требует использования файла подкачки, а не раздела подкачки для Linux, однако это связано с желанием не перераспределять жесткий диск и не связано с драйвером файловой системы umsdos как таковым. [4]
Доступ к томам в формате FAT без поддержки ядра
[ редактировать ]Хотя драйверы файловой системы в ядре позволяют получать доступ к файлам и каталогам на томах в формате FAT обычным способом, это также можно сделать без поддержки драйверов ядра, используя служебные программы, входящие в комплект утилит mtools . Как и драйвер файловой системы vfat FAT, mountlo обеспечивает поддержку длинных имен файлов, используя те же структуры данных диска, которые использует Microsoft Windows. [3] [14] [15]
Альтернативно FUSE — FatFuse, FuseFat или mountlo. можно использовать один из драйверов файловой системы [16]
Оверлейная файловая система POSIX
[ редактировать ]Современным эквивалентом UMSDOS является файловая система наложения POSIX (posixovl). В FUSE работает. [17]
См. также
[ редактировать ]- DMSDOS (сжатые тома FAT, совместимые с DoubleSpace/DriveSpace/Stacker для Linux)
- Проектирование файловой системы FAT
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д и ж г час Стэнфилд, Вики; Смит, Родерик В. (2002). Системное администрирование Linux . Библиотека Крейга Ханта Linux (2-е изд.). Джон Уайли и сыновья . п. 166. ИСБН 978-0-7821-4138-2 .
- ^ Перейти обратно: а б Уорд, Брайан (2004). Как работает Linux: что должен знать каждый суперпользователь . Серия прессов без крахмала. Пресс без крахмала . п. 41. ИСБН 978-1-59327-035-3 .
- ^ Перейти обратно: а б с д и ж г Смит, Родерик В. (2000). Руководство по мультизагрузочной настройке . Серия справочников. Издательство Que . стр. 256, 341–342 . ISBN 978-0-7897-2283-6 .
- ^ Перейти обратно: а б с д и ж г час я МакКьюн, Майк (2001). Интеграция Linux и Windows . Серия технологий с открытым исходным кодом. Прентис Холл PTR . стр. 7–9 . ISBN 978-0-13-030670-8 .
- ^ «Сводка изменений с v2.6.10 на v2.6.11» . www.kernel.org . Проверено 15 ноября 2017 г.
- ^ «Файловая система UMSDOS: поддержка UVFAT» . linux.voyager.hr . Проверено 16 июля 2015 г.
- ^ Проект МуЛинукс
- ^ Объяснение Monkey Linux
- ^ Комбинация Linux/Windows: используйте эти ресурсы, чтобы она работала.
- ^ Перейти обратно: а б с д и ж г час я дж Родерик В. Смит (2005). Linux в мире Windows . О'Рейли Медиа, Инк . с. 449. ИСБН 0-596-00758-2 .
- ^ Негус, Кристофер (2007). Библия Linux: загрузка Ubuntu, Fedora, KNOPPIX, Debian, SUSE и 11 других дистрибутивов . Библейская серия. Джон Уайли и сыновья . стр. 159 . ISBN 978-0-470-08279-9 .
- ^ Штробель, Стефан; Эллинг, Волкер (1997). Linux, открывающий возможности рабочей станции на вашем ПК . Полный комплект Linux, Райнер Маурер (3-е изд.). Спрингер. п. 43. ИСБН 978-0-387-94880-5 .
- ^ Перейти обратно: а б Данеш, Арман (2002). Как заставить Linux работать: важные советы и приемы . Серия «1001 совет». Cengage Обучение. стр. 19 . ISBN 978-1-884133-78-7 .
- ^ Раджагопал, Радж (2000). Работа в сети с несколькими операционными системами: жизнь с Unix, Netware и NT . Серия лучших практик Ауэрбаха. ЦРК Пресс . стр. 25–21 . ISBN 978-0-8493-9831-5 .
- ^ Уэлш, Мэтт (2003). Запуск Linux . Основное руководство по Linux (4-е изд.). О'Рейли Медиа, Инк . с. 405. ИСБН 978-0-596-00272-5 .
- ^ «ПРЕДОХРАНИТЕЛЬ: NonNativeFileSystems» . Архивировано из оригинала 15 сентября 2015 г.
- ^ «Файловая система наложения POSIX» .
Дальнейшее чтение
[ редактировать ]- Желинас, Жак (1 декабря 2001 г.). «Практическое руководство по UMSDOS» . 1.2. Проект документации Linux .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Страница разработчика UMSDOS
- Новый патч для Linux может обойти патенты Microsoft FAT Райана Пола