Руководства по командной строке

Man » Онлайн-руководство mount - подробная онлайн-документация для страницы руководства mount

🌍
mount - монтировать файловую систему

СИНТАКСИС

mount [-h|-V]

mount [-l] [-t fstype]

mount -a [-fFnrsvw] [-t fstype] [-O optlist]

mount [-fnrsvw] [-o options] device|mountpoint

mount [-fnrsvw] [-t fstype] [-o options] device mountpoint

mount --bind|--rbind|--move olddir newdir

mount --make-[shared|slave|private|unbindable|rshared|rslave|rprivate|runbindable] mountpoint

ОПИСАНИЕ

Все файлы, доступные в Unix-системе, организованы в одно большое дерево, иерархию файлов, с корнем в /. Эти файлы могут быть распределены по нескольким устройствам. Команда mount служит для подключения файловой системы, найденной на некотором устройстве, к большому дереву файлов. И наоборот, команда umount(8) снова отключает ее. Файловая система используется для управления тем, как данные хранятся на устройстве или предоставляются виртуальным способом с помощью сети или других служб.

Стандартная форма команды mount:

mount -t type device dir

Это указывает ядру подключить файловую систему, найденную на устройстве (которая имеет тип type), в каталоге dir. Опция -t type является необязательной. Команда mount обычно может определить файловую систему. Для монтирования файловой системы по умолчанию требуются права root. См. раздел «Монтирование пользователями, не являющимися суперпользователями», для получения дополнительной информации. Предыдущее содержимое (если оно есть) и владелец и режим dir становятся невидимыми, и до тех пор, пока эта файловая система остается подключенной, путь dir ссылается на корень файловой системы на устройстве.

Если указан только каталог или устройство, например:

mount /dir

тогда mount ищет точку монтирования (а если она не найдена, то устройство) в файле /etc/fstab.

Можно использовать параметры --target или --source, чтобы избежать неоднозначной интерпретации указанного аргумента. Например:

mount --target /mountpoint

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

Отображение подключенных файловых систем

Режим отображения поддерживается только для обеспечения обратной совместимости.

Для получения более надежных и настраиваемых выходных данных используйте findmnt(8), особенно в ваших скриптах. Обратите внимание, что управляющие символы в имени точки монтирования заменяются на '?'.

Следующая команда отображает все подключенные файловые системы (типа type):

mount [-l] [-t type]

Опция -l добавляет метки в этот список. См. ниже.


Указание устройства и файловой системы

Большинство устройств указываются с помощью имени файла (блочного специального устройства), например, /dev/sda1, но есть и другие возможности. Например, в случае монтирования NFS, устройство может выглядеть как knuth.cwi.nl:/dir.

Имена разделов диска нестабильны; переконфигурация оборудования, добавление или удаление устройства могут привести к изменениям в именах. Именно поэтому настоятельно рекомендуется использовать идентификаторы файловой системы или раздела, такие как UUID или LABEL. В настоящее время поддерживаются следующие идентификаторы (теги):

LABEL=метка

Читаемый человеком идентификатор файловой системы. См. также -L.

UUID=уникальный_идентификатор

Универсальный уникальный идентификатор файловой системы. Формат UUID обычно представляет собой последовательность шестнадцатеричных цифр, разделенных дефисами. См. также -U.

Обратите внимание, что mount использует UUID в виде строк. UUID из командной строки или из fstab(5) не преобразуются во внутреннее двоичное представление. Строковое представление UUID должно быть основано на символах нижнего регистра.

PARTLABEL=метка

Читаемый человеком идентификатор раздела. Этот идентификатор не зависит от файловой системы и не изменяется при операциях mkfs или mkswap. Он поддерживается, например, для таблиц разделов GUID (GPT).

PARTUUID=уникальный_идентификатор

Универсальный уникальный идентификатор раздела. Этот идентификатор не зависит от файловой системы и не изменяется при операциях mkfs или mkswap. Он поддерживается, например, для таблиц разделов GUID (GPT).

ID=идентификатор

Идентификатор аппаратного блочного устройства, генерируемый udevd. Этот идентификатор обычно основан на WWN (уникальном идентификаторе хранилища) и назначается производителем оборудования. См. ls /dev/disk/by-id для получения дополнительной информации; этот каталог и работающий udevd необходимы. Этот идентификатор не рекомендуется для общего использования, поскольку идентификатор не является строго определенным и зависит от udev, правил udev и оборудования.

Команда lsblk --fs предоставляет обзор файловых систем, LABEL и UUID на доступных блочных устройствах. Команда blkid -p <устройство> предоставляет подробную информацию о файловой системе на указанном устройстве.

Не забывайте, что нет гарантии, что UUID и метки действительно уникальны, особенно если вы перемещаете, совместно используете или копируете устройство. Используйте lsblk -o +UUID,PARTUUID, чтобы убедиться, что UUID действительно уникальны в вашей системе.

Рекомендуется использовать теги (например, UUID=уникальный_идентификатор), а не /dev/disk/by-{label,uuid,id,partuuid,partlabel} символические ссылки udev в файле /etc/fstab. Теги более читаемы, надежны и переносимы. Команда mount(8) внутренне использует символические ссылки udev, поэтому использование символических ссылок в /etc/fstab не дает преимуществ перед тегами. Для получения дополнительной информации см. libblkid(3).

Файловая система proc не связана со специальным устройством, и при ее монтировании можно использовать произвольное ключевое слово, например, proc, вместо спецификации устройства. (Обычно используемый выбор none менее удачен: сообщение об ошибке «none уже смонтирован» от mount может сбить с толку).

Файлы /etc/fstab, /etc/mtab и /proc/mounts

Файл /etc/fstab (см. fstab(5)) может содержать строки, описывающие, какие устройства обычно монтируются где и с какими опциями. Расположение файла fstab(5) по умолчанию можно изменить с помощью опции командной строки --fstab path (см. ниже для получения дополнительной информации).


Команда

mount -a [-t type] [-O optlist]

(обычно используется в скрипте загрузки) выполняет монтирование всех файловых систем, указанных в файле fstab (соответствующего типа и/или имеющих или не имеющих соответствующие опции), как указано, за исключением тех, чья строка содержит ключевое слово noauto. Добавление опции -F приведет к тому, что mount создаст дочерний процесс, чтобы файловые системы монтировались параллельно.

При монтировании файловой системы, указанной в fstab или mtab, достаточно указать в командной строке только устройство или только точку монтирования.

Программы mount и umount(8) традиционно поддерживали список смонтированных файловых систем в файле /etc/mtab. Поддержка обычного классического файла /etc/mtab отключена во время компиляции по умолчанию, потому что в современных системах Linux лучше сделать /etc/mtab символической ссылкой на /proc/mounts. Обычный файл mtab, поддерживаемый в пользовательском пространстве, не может надежно работать с пространствами имен, контейнерами и другими расширенными функциями Linux. Если поддержка обычного mtab включена, то можно использовать как файл, так и символическую ссылку.

Если аргументы не передаются программе mount, выводится список смонтированных файловых систем.

Если вы хотите переопределить параметры монтирования из /etc/fstab, необходимо использовать опцию -o:

mount device|dir -o options

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

Программа mount не читает файл /etc/fstab, если указаны как устройство (или LABEL, UUID, ID, PARTUUID или PARTLABEL), так и каталог. Например, для монтирования устройства foo в /dir:

mount /dev/foo /dir

Это поведение по умолчанию можно изменить, используя опцию командной строки --options-source-force, чтобы всегда читать конфигурацию из fstab. Для пользователей, не являющихся root, mount всегда читает конфигурацию fstab.

Монтирование пользователями, не являющимися суперпользователем

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

Таким образом, при наличии строки

/dev/cdrom /cd iso9660 ro,user,noauto,unhide

любой пользователь может смонтировать файловую систему iso9660, найденную на вставленном компакт-диске, с помощью команды:

mount /cd

Обратите внимание, что mount очень строго относится к пользователям, не являющимся root, и все пути, указанные в командной строке, проверяются до того, как fstab будет проанализирован или будет выполнена вспомогательная программа. Настоятельно рекомендуется использовать допустимую точку монтирования для указания файловой системы, в противном случае mount может завершиться с ошибкой. Например, не рекомендуется использовать источник NFS или CIFS в командной строке.

Начиная с util-linux 2.35, mount не завершает работу, когда разрешения пользователя недостаточны в соответствии с внутренними правилами безопасности libmount. Вместо этого он отключает разрешения suid и продолжает работу как обычный пользователь, не являющийся root. Это поведение поддерживает случаи использования, когда права root не требуются (например, файловые системы fuse, пространства имен пользователей и т. д.).


Для получения более подробной информации см. fstab(5). Только пользователь, который смонтировал файловую систему, может ее отмонтировать. Если любой пользователь должен иметь возможность отмонтировать ее, используйте users вместо user в строке fstab. Опция owner аналогична опции user, с ограничением, что пользователь должен быть владельцем специального файла. Это может быть полезно, например, для /dev/fd, если скрипт входа делает консольного пользователя владельцем этого устройства. Опция group аналогична, с ограничением, что пользователь должен быть членом группы специального файла.

Опция user mount принимается, если не указано имя пользователя. Если используется в формате user=someone, опция игнорируется и видна только для внешних вспомогательных программ монтирования (/sbin/mount.) для совместимости с некоторыми сетевыми файловыми системами.

Операция bind-монтирования

Перемещает часть файловой иерархии в другое место. Вызов:

mount --bind olddir newdir

или с использованием этой записи в fstab:

/olddir /newdir none bind

После этого вызова один и тот же контент становится доступным в двух местах.

Важно понимать, что "bind" не создает никаких вторичных или специальных узлов в ядре VFS. "Bind" — это просто другая операция для подключения файловой системы. Нигде не хранится информация о том, что файловая система была подключена операцией "bind". olddir и newdir независимы, и olddir может быть отмонтирован.

Также можно переподключить один файл (на один файл). Также можно использовать bind-монтирование для создания точки монтирования из обычного каталога, например:

mount --bind foo foo

Вызов bind-монтирования подключает только (часть) одной файловой системы, подключение субмонтирований невозможно. Всю файловую иерархию, включая субмонтирования, можно подключить во втором месте, используя:

mount --rbind olddir newdir

Обратите внимание, что параметры монтирования файловой системы, которые поддерживает ядро, останутся такими же, как и в исходной точке монтирования. Параметры монтирования из пространства пользователя (например, _netdev) не будут скопированы командой mount, и необходимо явно указать параметры в командной строке монтирования.

Начиная с util-linux 2.27, mount позволяет изменять параметры монтирования, передавая соответствующие параметры вместе с --bind. Например:

mount -o bind,ro foo foo

Эта функция не поддерживается ядром Linux; она реализована в пространстве пользователя с помощью дополнительного системного вызова mount(2) remount. Это решение не является атомарным.

Альтернативный (классический) способ создания read-only bind-монтирования — использование операции remount, например:

mount --bind olddir newdir

mount -o remount,bind,ro olddir newdir

Обратите внимание, что read-only bind создаст точку монтирования только для чтения (VFS entry), но исходный superblock файловой системы все равно будет доступен для записи, что означает, что olddir будет доступен для записи, но newdir будет доступен только для чтения.

Также можно изменять флаги VFS entry, такие как nosuid, nodev, noexec, noatime, nodiratime, relatime и nosymfollow, с помощью операции "remount,bind". Другие флаги (например, специфичные для файловой системы) игнорируются. Классический системный вызов mount(2) не позволяет изменять параметры монтирования рекурсивно (например, с помощью -o rbind,ro). Рекурсивная семантика возможна с помощью нового системного вызова mount_setattr(2) в ядре и поддерживается, начиная с libmount из util-linux v2.39, с помощью нового экспериментального аргумента "recursive" (например, -o rbind,ro=recursive). Для получения дополнительной информации см. раздел ФАЙЛОВЫЕ СИСТЕМЫ, НЕЗАВИСИМЫЕ ОТ ФАЙЛОВОЙ СИСТЕМЫ, ПАРАМЕТРЫ МОНТИРОВАНИЯ.


Начиная с util-linux 2.31, команда mount игнорирует флаг bind из файла /etc/fstab при операции повторного монтирования (если указана опция -o remount в командной строке). Это необходимо для полного контроля над опциями монтирования при повторном монтировании с помощью командной строки. В предыдущих версиях флаг bind всегда применялся, и переопределить опции монтирования было невозможно без взаимодействия с семантикой bind. Такое поведение mount не влияет на ситуации, когда в файле /etc/fstab указано "remount,bind".

Начиная с util-linux 2.39, команда mount может использовать новый API монтирования ядра, если он доступен. Этот новый интерфейс ядра предоставляет более точный способ работы с атрибутами точки монтирования. Например, операция -o bind,rw создаст узел, доступный для чтения и записи, даже если исходный узел был доступен только для чтения. Это было невозможно с использованием старого классического системного вызова mount(2), где флаг VFS, указывающий на доступ только для чтения, наследовался от исходного узла.

Операция перемещения

Перемещает смонтированное дерево в другое место (атомарно). Вызов выглядит следующим образом:

mount --move olddir newdir

В результате содержимое, которое ранее отображалось в olddir, теперь будет доступно в newdir. Физическое расположение файлов не меняется. Обратите внимание, что olddir должен быть точкой монтирования.

Также следует отметить, что перемещение монтирования, расположенного в общей точке монтирования, недопустимо и не поддерживается. Используйте findmnt -o TARGET,PROPAGATION, чтобы увидеть текущие флаги распространения.

Операции с общими поддеревьями

Начиная с Linux 2.6.15, можно пометить монтирование и его подмонтирования как общие, приватные, подчиненные или не подлежащие клонированию. Общая точка монтирования предоставляет возможность создавать зеркала этой точки монтирования, так что монтирования и размонтирования в любом из зеркал распространяются на другие зеркала. Подчиненная точка монтирования получает распространение от своей главной точки монтирования, но не наоборот. Приватная точка монтирования не имеет возможности распространения. Не подлежащая клонированию точка монтирования — это приватная точка монтирования, которую нельзя клонировать с помощью операции bind. Подробная семантика документирована в файле Documentation/filesystems/sharedsubtree.txt в исходном коде ядра; см. также mount_namespaces(7).

Поддерживаемые операции:

mount --make-shared mountpoint
mount --make-slave mountpoint
mount --make-private mountpoint
mount --make-unbindable mountpoint

Следующие команды позволяют рекурсивно изменить тип всех точек монтирования под заданной точкой монтирования.

mount --make-rshared mountpoint
mount --make-rslave mountpoint
mount --make-rprivate mountpoint
mount --make-runbindable mountpoint

Команда mount не читает файл fstab(5) при запросе операции --make-* . Вся необходимая информация должна быть указана в командной строке.

Обратите внимание, что ядро Linux не позволяет изменять несколько флагов распространения за один системный вызов mount(2), и эти флаги нельзя смешивать с другими параметрами и операциями монтирования.

Начиная с util-linux 2.23, команда mount может использоваться для выполнения большего количества изменений топологии распространения одним вызовом mount(8), а также выполнять их вместе с другими операциями монтирования. Флаги распространения применяются дополнительными системными вызовами mount(2), когда предыдущие операции монтирования выполнены успешно. Обратите внимание, что этот сценарий не является атомарным. Можно указать флаги распространения в fstab(5) в качестве параметров монтирования (private, slave, shared, unbindable, rprivate, rslave, rshared, runbindable).

Например:

mount --make-private --make-unbindable /dev/sda1 /foo

эквивалентно:

mount /dev/sda1 /foo
mount --make-private /foo
mount --make-unbindable /foo

ПАРАМЕТРЫ КОМАНДНОЙ СТРОКИ

Полный набор параметров монтирования, используемых при вызове mount, определяется путем сначала извлечения параметров монтирования для файловой системы из таблицы fstab, затем применения любых параметров, указанных с помощью аргумента -o, и, наконец, применения параметра -r или -w, если он присутствует.

Команда mount не передает все параметры командной строки вспомогательным программам монтирования /sbin/mount.suffix. Интерфейс между mount и вспомогательными программами монтирования описан ниже в разделе «ВНЕШНИЕ ВСПОМОГАТЕЛЬНЫЕ ПРОГРАММЫ».

Параметры командной строки, доступные для команды mount:

-a, --all

Монтирует все файловые системы (заданных типов), указанные в fstab (за исключением тех, чья строка содержит ключевое слово noauto). Файловые системы монтируются в порядке их следования в fstab. Команда mount сравнивает источник файловой системы, цель (и корневую файловую систему для монтирования bind или btrfs), чтобы определить, смонтированы ли уже файловые системы. Таблица ядра с уже смонтированными файловыми системами кэшируется во время mount --all. Это означает, что все дублирующиеся записи fstab будут смонтированы.

Правильная функциональность зависит от /proc (для определения уже смонтированных файловых систем) и от /sys (для оценки тегов файловой системы, таких как UUID= или LABEL=). Настоятельно рекомендуется монтировать файловые системы /proc и /sys перед выполнением mount -a или помещать /proc и /sys в начало fstab.

Опцию --all можно использовать и для операции перемонтирования. В этом случае все фильтры (-t и -O) применяются к таблице уже смонтированных файловых систем.

Начиная с версии 2.35, можно использовать параметр командной строки -o для изменения параметров монтирования из fstab (см. также --options-mode).

Обратите внимание, что использование mount -a для проверки fstab является плохой практикой. Рекомендуемое решение — findmnt --verify.

-B, --bind

Перемонтирует поддерево в другом месте (так, что его содержимое будет доступно в обоих местах). См. выше, в разделе «Операция монтирования bind».

-c, --no-canonicalize

Не выполнять канонизацию путей или тегов во время процесса монтирования. Команда mount автоматически выполняет канонизацию всех путей (из командной строки или fstab). Этот параметр можно использовать в сочетании с флагом -f для путей, которые уже канонизированы. Этот параметр предназначен для вспомогательных программ монтирования, которые вызывают mount -i. Настоятельно рекомендуется не использовать этот параметр командной строки для обычных операций монтирования. См. также параметр монтирования X-mount.nocanonicalize.


Обратите внимание, что параметр mount не передается в /sbin/mount.type при его использовании.

-F, --fork
(Используется в сочетании с `-a`.) Запускает новую копию `mount` для каждого устройства. Это позволяет выполнять монтирование на разных устройствах или разных NFS-серверах параллельно. Преимущество в том, что это быстрее; также тайм-ауты NFS выполняются параллельно. Недостаток в том, что порядок операций монтирования не определен. Поэтому нельзя использовать этот параметр, если необходимо смонтировать `/usr` и `/usr/spool`.

-f, --fake
Выполняет все действия, кроме системных вызовов, связанных с монтированием. Параметр `--fake` изначально был разработан для записи записи в `/etc/mtab` без фактического монтирования.

Файл `/etc/mtab` больше не поддерживается в пользовательском пространстве, и начиная с версии 2.39, операция монтирования может быть сложной цепочкой операций с зависимостями между системными вызовами. Параметр `--fake` заставляет libmount пропускать всю подготовку источника монтирования, анализ параметров монтирования и фактический процесс монтирования.

Разница между выполнением с `--fake` и без него огромна. Именно поэтому параметр `--fake` имеет минимальное значение для текущей реализации `mount(8)`, и он поддерживается в основном для обратной совместимости.

-i, --internal-only
Не вызывать `/sbin/mount.filesystem`, даже если он существует.

-L, --label label
Монтирует раздел, имеющий указанную метку.

-l, --show-labels
Добавляет метки в выходные данные `mount`. Для этого `mount` должен иметь разрешение на чтение с дискового устройства (например, быть set-user-ID root). Можно установить такую метку для ext2, ext3 или ext4 с помощью утилиты `e2label(8)`, для XFS с помощью `xfs_admin(8)`, или для reiserfs с помощью `reiserfstune(8)`.

-M, --move
Перемещает поддерево в другое место. См. выше, подраздел «Операция перемещения».

-m, --mkdir[=mode]
Разрешает создавать целевой каталог (точку монтирования), если он еще не существует. Является псевдонимом для `-o X-mount.mkdir[=mode]`, режим по умолчанию — 0755. Для получения дополнительной информации см. X-mount.mkdir ниже.

--map-groups, --map-users inner:_outer_:_count_
Добавляет указанное сопоставление пользователей/групп в карту `X-mount.idmap`. Эти параметры можно указывать несколько раз, чтобы создать полные сопоставления для пользователей и групп. Для получения дополнительной информации см. X-mount.idmap ниже.

--map-users /proc/PID/ns/user
Использует указанное пространство имен пользователей для сопоставления пользователей и групп в монтировании с сопоставлением идентификаторов. Это псевдоним для `-o X-mount.idmap=/proc/PID/ns/user` и не может использоваться дважды или вместе с форматом `inner:_outer_:_count_`, указанным выше. Для получения дополнительной информации см. X-mount.idmap ниже.

-n, --no-mtab
Монтирует без записи в `/etc/mtab`. Это необходимо, например, когда `/etc` находится на файловой системе, доступной только для чтения.

-N, --namespace ns
Выполнить операцию монтирования в пространстве имен монтирования, указанном в ns. ns может быть либо PID процесса, работающего в этом пространстве имен, либо специальным файлом, представляющим это пространство имен.

Команда mount переключается в пространство имен монтирования при чтении /etc/fstab, записи в /etc/mtab (или записи в /run/mount) и вызове mount(2), в противном случае она выполняется в исходном пространстве имен монтирования. Это означает, что целевое пространство имен не должно содержать какие-либо библиотеки или другие необходимые компоненты для выполнения вызова mount(2).

Подробности см. в man mount_namespaces(7).

-O, --test-opts opts
Ограничить набор файловых систем, к которым применяется опция -a. В этом отношении это похоже на опцию -t, за исключением того, что -O бесполезна без -a. Например, команда

mount -a -O no_netdev

монтирует все файловые системы, за исключением тех, у которых в поле опций в файле /etc/fstab указана опция netdev.

Она отличается от -t тем, что каждая опция сопоставляется точно; наличие "no" в начале опции не отменяет остальную часть.

Опции -t и -O имеют кумулятивный эффект; то есть команда

mount -a -t ext2 -O _netdev

монтирует все файловые системы ext2 с опцией _netdev, а не все файловые системы, которые являются либо ext2, либо имеют указанную опцию _netdev.

-o, --options opts
Использовать указанные параметры монтирования. Аргумент opts — это список, разделенный запятыми. Например:

mount LABEL=mydisk -o noatime,nodev,nosuid

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

Для получения дополнительной информации см. разделы «ПАРАМЕТРЫ МОНТИРОВАНИЯ, НЕ ЗАВИСЯЩИЕ ОТ ФАЙЛОВОЙ СИСТЕМЫ» и «ПАРАМЕТРЫ МОНТИРОВАНИЯ, СПЕЦИФИЧНЫЕ ДЛЯ ФАЙЛОВОЙ СИСТЕМЫ».

--onlyonce
Заставляет команду mount проверять, смонтирована ли файловая система. Это поведение по умолчанию для --all; в противном случае это зависит от драйвера файловой системы ядра. Некоторые файловые системы могут быть смонтированы более одного раза в одной и той же точке монтирования (например, tmpfs).

--options-mode mode
Определяет, как объединять опции из fstab/mtab с опциями из командной строки. mode может быть одним из следующих: ignore, append, prepend или replace. Например, append означает, что опции из fstab добавляются к опциям из командной строки. Значение по умолчанию — prepend, что означает, что опции командной строки оцениваются после опций fstab. Обратите внимание, что последняя опция имеет приоритет, если есть конфликтующие.

--options-source source
Источник параметров по умолчанию. source — это список, разделенный запятыми, состоящий из fstab, mtab и disable. disable отключает fstab и mtab и включает --options-source-force. Значение по умолчанию — fstab,mtab.

--options-source-force
Использовать опции из fstab/mtab, даже если указаны и устройство, и каталог.

-R, --rbind
Перемонтировать поддерево и все возможные подточки монтирования в другом месте (чтобы его содержимое было доступно в обоих местах). См. выше, подраздел «Операция bind-монтирования».

-r, --read-only
Смонтировать файловую систему в режиме только для чтения. Синоним -o ro.

Обратите внимание, что, в зависимости от типа файловой системы, состояния и поведения ядра, система может по-прежнему выполнять запись на устройство. Например, ext3 и ext4 воспроизведут журнал, если файловая система будет содержать незавершенные изменения. Чтобы предотвратить этот тип доступа для записи, вы можете захотеть смонтировать файловую систему ext3 или ext4 с опциями монтирования ro,noload или установить само блочное устройство в режим только для чтения, см. команду blockdev(8).

-s
Допускать неточные параметры монтирования, вместо того чтобы выдавать ошибку. Это будет игнорировать параметры монтирования, не поддерживаемые типом файловой системы. Не все файловые системы поддерживают эту опцию. В настоящее время она поддерживается только вспомогательной программой mount.nfs.

--source device
Если для команды mount указан только один аргумент, то этот аргумент может быть интерпретирован как целевая директория (точка монтирования) или источник (устройство). Эта опция позволяет явно указать, что аргумент является источником монтирования.

--target directory
Если для команды mount указан только один аргумент, то этот аргумент может быть интерпретирован как целевая директория (точка монтирования) или источник (устройство). Эта опция позволяет явно указать, что аргумент является целевой директорией монтирования.

--target-prefix directory
Добавляет указанный каталог в начало ко всем целевым директориям. Эта опция может использоваться для следования правилам fstab, но операции монтирования выполняются в другом месте, например:

mount --all --target-prefix /chroot -o X-mount.mkdir

Монтирует все записи из системного файла fstab в /chroot, и все отсутствующие точки монтирования создаются (благодаря X-mount.mkdir). См. также --fstab для использования альтернативного файла fstab.

-T, --fstab path
Указывает альтернативный файл fstab. Если путь является каталогом, то файлы в каталоге сортируются с помощью strverscmp(3); файлы, начинающиеся с "." или без расширения ".fstab", игнорируются. Опцию можно указать несколько раз. Эта опция предназначена в основном для initramfs или скриптов chroot, где указываются дополнительные конфигурации помимо стандартной системной конфигурации.

Обратите внимание, что команда mount не передает опцию --fstab вспомогательным программам /sbin/mount.type, что означает, что альтернативные файлы fstab будут невидимы для этих программ. Это не является проблемой для обычных операций монтирования, но операции монтирования, выполняемые пользователем (не от имени root), всегда требуют файл fstab для проверки прав пользователя.

-t, --types fstype
Аргумент, следующий за -t, используется для указания типа файловой системы. Файловые системы, которые в настоящее время поддерживаются, зависят от работающего ядра. Полный список файловых систем можно найти в /proc/filesystems и /lib/modules/$(uname -r)/kernel/fs. Наиболее распространенные: ext2, ext3, ext4, xfs, btrfs, vfat, sysfs, proc, nfs и cifs.

Программы mount и [umount]({filename}../../umount)(8) поддерживают подтипы файловых систем. Подтип определяется суффиксом '.subtype'. Например, 'fuse.sshfs'. Рекомендуется использовать обозначение подтипа, а не добавлять какие-либо префиксы к источнику монтирования (например, 'sshfs#example.com' устарело).

Если опция -t не указана или указан тип auto, mount попытается определить желаемый тип. mount использует библиотеку libblkid(3) для определения типа файловой системы; если это не дает никаких результатов, mount попытается прочитать файл /etc/filesystems или, если он не существует, /proc/filesystems. Все типы файловых систем, перечисленные там, будут опробованы, за исключением тех, которые помечены как "nodev" (например, devpts, proc и nfs). Если файл /etc/filesystems заканчивается строкой с одной звездочкой (*), mount прочитает /proc/filesystems после этого. При попытке все типы файловых систем будут монтироваться с опцией монтирования silent.

Автоматическое определение типа может быть полезно для пользовательских дискет. Создание файла /etc/filesystems может быть полезно для изменения порядка проверки (например, для попытки использовать vfat перед msdos или ext3 перед ext2) или если вы используете загрузчик модулей ядра.

В списке, разделенном запятыми, может быть указано несколько типов для опции -t, а также в записи /etc/fstab. Список типов файловых систем для опции -t может быть предварен префиксом no, чтобы указать типы файловых систем, с которыми не следует предпринимать никаких действий. Префикс no не имеет эффекта, если он указан в записи /etc/fstab.

Префикс no может иметь смысл при использовании опции -a. Например, команда

mount -a -t nomsdos,smbfs

монтирует все файловые системы, за исключением msdos и smbfs.

Для большинства типов все, что должна делать программа монтирования, — это выполнять простую системную команду mount(2), и не требуется специальных знаний о типе файловой системы. Однако для нескольких типов (например, nfs, nfs4, cifs, smbfs, ncpfs) требуется специальный код. Файловые системы nfs, nfs4, cifs, smbfs и ncpfs имеют отдельную программу монтирования. Чтобы можно было единообразно обрабатывать все типы, mount будет выполнять программу /sbin/mount.type (если она существует), когда она вызывается с типом type. Поскольку различные версии программы smbmount имеют разные соглашения о вызовах, /sbin/mount.smbfs может быть скриптом оболочки, который настраивает желаемый вызов.

-U, --uuid uuid

Монтирует раздел, у которого указан данный UUID.

-v, --verbose

Включает подробный режим. Начиная с версии 2.41, если доступен новый API монтирования ядра, он также будет выводить информационные сообщения ядра.

-w, --rw, --read-write

Монтирует файловую систему в режиме чтения-записи. Режим чтения-записи является значением по умолчанию для ядра, а по умолчанию для команды mount — сначала попытаться смонтировать в режиме только для чтения, если предыдущий системный вызов mount(2) с флагами чтения-записи для устройств, защищенных от записи, завершился неудачно.

Синоним — -o rw.

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

-h, --help

Отображает текст справки и завершает работу.

-V, --version

Отображает версию и завершает работу.

ПАРАМЕТРЫ МОНТИРОВАНИЯ, НЕ ЗАВИСЯЩИЕ ОТ ФАЙЛОВОЙ СИСТЕМЫ

Некоторые из этих параметров полезны только в том случае, если они указаны в файле /etc/fstab.

Некоторые из этих параметров могут быть включены или отключены по умолчанию в системном ядре. Чтобы проверить текущую настройку, см. параметры в /proc/mounts. Обратите внимание, что файловые системы также имеют параметры монтирования по умолчанию, специфичные для каждой файловой системы (см., например, вывод tune2fs -l для файловых систем extN).


Заметки о виртуальной файловой системе

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

Параметры nosuid, noexec, nodiratime, relatime, noatime, strictatime и nosymfollow интерпретируются только уровнем виртуальной файловой системы ядра и применяются к точке монтирования, а не к самой файловой системе. Чтобы получить полное представление о файловых системах и параметрах VFS, попробуйте:

findmnt -o TARGET,VFS-OPTIONS,FS-OPTIONS

Начиная с версии 2.39, libmount может использовать новый интерфейс монтирования ядра для рекурсивного задания атрибутов VFS. Для обеспечения обратной совместимости эта функция не включена по умолчанию, даже если запрошена рекурсивная операция (например, rbind). Новый аргумент параметра «recursive» можно указать, например:

mount -orbind,ro=recursive,noexec=recursive,nosuid /foo /bar

Это рекурсивно связывает файловые системы из /foo в /bar, делая /bar и все подсистемы доступными только для чтения и без возможности выполнения, но только /bar будет иметь параметр «nosuid». Необязательный аргумент «recursive» для параметров монтирования VFS является ЭКСПЕРИМЕНТАЛЬНОЙ функцией.

Заметки о настройке «только для чтения»

Параметр «только для чтения» (ro или rw) интерпретируется виртуальной файловой системой и файловой системой, и это зависит от того, как параметр указан в командной строке mount(8). Для обеспечения обратной совместимости по умолчанию он используется для обоих уровней во время стандартных операций монтирования.

Операция «-o bind,remount,ro» применяется только к точке монтирования VFS, в то время как операция «-o remount,ro» применяется как к VFS, так и к суперблоку файловой системы. Такая семантика позволяет создать точку монтирования, доступную только для чтения, сохраняя файловую систему доступной для записи из другой точки монтирования.

Начиная с версии 2.41, libmount может использовать необязательные аргументы vfs и fs (например, ro=fs), чтобы указать, где следует применить параметр «только для чтения». Например, при использовании команды:

mount -o ro=vfs /dev/sdc1 /A

файловая система будет смонтирована как доступная для чтения и записи на уровне суперблока, но узел /A будет установлен как доступный только для чтения. В предыдущих версиях для достижения того же результата требовалась дополнительная операция «-o bind,remount,ro».

Общие параметры монтирования

Следующие параметры применяются к любой файловой системе, которая монтируется, но не каждая файловая система фактически поддерживает их. Например, параметр sync оказывает влияние только на файловые системы ext2, ext3, ext4, fat, vfat, ufs и xfs.

async

Все операции ввода-вывода с файловой системой должны выполняться асинхронно. (См. также параметр sync.)

atime

Не используйте функцию noatime, поэтому время доступа к inode контролируется настройками ядра по умолчанию. См. также описание параметров монтирования relatime и strictatime.

noatime

Не обновляйте время доступа к inode в этой файловой системе (например, для более быстрого доступа к новостной очереди, чтобы ускорить работу новостных серверов). Это работает для всех типов inode (включая каталоги), поэтому это подразумевает nodiratime.


auto
Можно смонтировать с помощью опции -a.

noauto
Можно смонтировать только явно (то есть опция -a не приведет к монтированию файловой системы).

context=context, fscontext=context, defcontext=context и rootcontext=context
Опция context= полезна при монтировании файловых систем, которые не поддерживают расширенные атрибуты, таких как дискета или жесткий диск, отформатированный в VFAT, или систем, которые обычно не работают под SELinux, таких как диск, отформатированный в ext3 или ext4, с рабочей станции, не использующей SELinux. Вы также можете использовать context= для файловых систем, которым вы не доверяете, например, для дискеты. Это также помогает обеспечить совместимость с файловыми системами, поддерживающими xattr, в более ранних версиях ядра 2.4.<x>. Даже если xattr поддерживаются, вы можете сэкономить время, не назначая метку каждому файлу, назначив весь диск одному контексту безопасности.

Обычно используемая опция для съемных носителей — context="system_u:object_r:removable_t".

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

Вы можете установить контекст безопасности по умолчанию для файлов без меток, используя опцию defcontext=. Это переопределяет значение, установленное для файлов без меток в политике, и требует файловую систему, поддерживающую маркировку xattr.

Опция rootcontext= позволяет явно пометить корневой inode монтируемой ФС до того, как эта ФС или inode станет видимой для пользовательского пространства. Это оказалось полезным для таких вещей, как stateless Linux. Специальное значение @target можно использовать для назначения текущего контекста целевого места монтирования.

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

Предупреждение: значение context может содержать запятые, в этом случае значение должно быть правильно заключено в кавычки, иначе mount будет интерпретировать запятую как разделитель между параметрами монтирования. Не забудьте, что оболочка удаляет кавычки, поэтому требуется двойное заключение в кавычки. Например:

mount -t tmpfs none /mnt -o \
'context="system_u:object_r:tmp_t:s0:c127,c456",noexec'

Для получения более подробной информации см. selinux(8).

defaults
Использовать параметры по умолчанию: rw, suid, dev, exec, auto, nouser и async.

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

dev
Интерпретировать специальные символьные или блочные устройства в файловой системе.

nodev
Не интерпретировать специальные символьные или блочные устройства в файловой системе.

diratime

Обновлять время последнего доступа к inode каталогов в этой файловой системе. Это поведение по умолчанию. (Эта опция игнорируется, если установлена опция noatime.)

nodiratime

Не обновлять время последнего доступа к inode каталогов в этой файловой системе. (Эта опция подразумевается, когда установлена опция noatime.)

dirsync

Все обновления каталогов в файловой системе должны выполняться синхронно. Это влияет на следующие системные вызовы: creat(2), link(2), unlink(2), symlink(2), mkdir(2), rmdir(2), mknod(2) и rename(2).

exec

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

noexec

Не разрешать прямое выполнение каких-либо двоичных файлов в смонтированной файловой системе.

group

Разрешить обычному пользователю монтировать файловую систему, если одна из групп этого пользователя совпадает с группой устройства. Эта опция подразумевает опции nosuid и nodev (если только они не будут переопределены последующими опциями, например, в строке опций group,dev,suid).

iversion

Каждый раз, когда inode изменяется, поле i_version будет увеличиваться.

noiversion

Не увеличивать поле inode i_version.

mand

Разрешить обязательные блокировки в этой файловой системе. См. fcntl(2). Эта опция устарела в Linux 1.

nomand

Не разрешать обязательные блокировки в этой файловой системе.

_netdev

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

nofail

Не сообщать об ошибках для этого устройства, если оно не существует.

relatime

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

Начиная с Linux 2.6.30, ядро использует поведение, предоставляемое этой опцией по умолчанию (если только не указана опция noatime), и для получения традиционного поведения требуется опция strictatime. Кроме того, начиная с Linux 2.6.30, время последнего доступа к файлу всегда обновляется, если ему больше 1 дня.

norelatime

Не использовать функцию relatime. См. также опцию монтирования strictatime.

strictatime

Позволяет явно запросить полное обновление времени доступа. Это позволяет ядру использовать relatime или noatime по умолчанию, но при этом позволяет пользователям переопределять это. Для получения дополнительной информации о параметрах монтирования по умолчанию в системе см. /proc/mounts.

nostrictatime

Использовать поведение ядра по умолчанию для обновления времени доступа к inode.

lazytime

Обновлять только время (atime, mtime, ctime) в памяти для inode файла.

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

Временные метки на диске обновляются только тогда, когда:

inode необходимо обновить из-за какого-либо изменения, не связанного с временными метками файла.

приложение использует fsync(2), syncfs(2) или sync(2)

неудаленный inode удаляется из памяти

прошло более 24 часов с момента записи inode на диск

nolazytime
Не используйте функцию lazytime.

suid
Учитывайте биты set-user-ID и set-group-ID или возможности файлов при выполнении программ из этой файловой системы.

nosuid
Не учитывайте биты set-user-ID и set-group-ID или возможности файлов при выполнении программ из этой файловой системы. Кроме того, переходы домена SELinux требуют разрешения nosuid_transition, для которого, в свою очередь, также требуется возможность политики nnp_nosuid_transition.

silent
Включите флаг silent.

loud
Отключите флаг silent.

owner
Разрешите обычному пользователю монтировать файловую систему, если этот пользователь является владельцем устройства. Эта опция подразумевает опции nosuid и nodev (если только их не переопределить последующими опциями, как в опции owner,dev,suid).

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

Операция перемонтирования вместе с флагом bind имеет специальные семантические особенности. См. выше, подраздел «Операция монтирования bind».

По умолчанию поведение ядра VFS для флагов монтирования (nodev, nosuid, noexec, ro) заключается в том, чтобы сбрасывать все неуказанные флаги при перемонтировании. Поэтому mount(8) пытается сохранить текущие настройки в соответствии с fstab или /proc/self/mountinfo. Это поведение по умолчанию можно изменить с помощью --options-mode. Рекурсивное изменение флагов монтирования (поддерживается, начиная с версии 2.39 в системах с системным вызовом mount_setattr(2)), например, mount -o remount,ro=recursive, не использует поведение «reset-unspecified», и оно работает как простая операция добавления/удаления, а неуказанные флаги не изменяются.

Функциональность перемонтирования следует стандартному способу работы команды mount с опциями из fstab. Это означает, что mount не читает fstab (или mtab), только когда указаны и устройство, и каталог.

mount -o remount,rw /dev/foo /dir

После этого вызова все старые параметры монтирования заменяются, и любые произвольные данные из fstab (или mtab) игнорируются, за исключением опции loop=, которая генерируется и поддерживается внутренне командой mount.

mount -o remount,rw /dir

После этого вызова mount читает fstab и объединяет эти опции с опциями из командной строки (-o). Если в fstab не найдена точка монтирования, то используются параметры монтирования по умолчанию из /proc/self/mountinfo.

mount позволяет использовать --all для перемонтирования всех уже смонтированных файловых систем, соответствующих указанному фильтру (-O и -t). Например:

mount --all -o remount,ro -t vfat

перемонтирует все уже смонтированные файловые системы vfat в режиме только для чтения. Каждая из файловых систем перемонтируется с помощью mount -o remount,ro /dir. Это означает, что команда mount читает fstab или mtab и объединяет эти опции с опциями из командной строки.

ro[=(recursive|vfs|fs)]
Смонтируйте файловую систему в режиме только для чтения. Необязательный аргумент — это экспериментальная функция, поддерживаемая только файловым API монтирования на основе дескрипторов файлов, и он игнорируется для старого системного вызова mount(2).

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

Аргументы vfs и fs указывают уровень, на котором должен быть применен флаг «только для чтения». fs определяет суперблок файловой системы (уникальный экземпляр файловой системы в ядре), а vfs определяет узел монтирования. Если атрибут не указан, то оба уровня устанавливаются в режим «только для чтения».

Для получения дополнительной информации обратитесь к разделу «Примечания о настройке режима «только для чтения»».

rw[=(recursive|vfs|fs)]

Монтирует файловую систему в режиме чтения-записи.

sync

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

user

Разрешает обычному пользователю монтировать файловую систему. Имя пользователя, выполняющего монтирование, записывается в файл mtab (или в личный файл libmount в /run/mount на системах без обычного файла mtab), чтобы этот же пользователь мог снова отмонтировать файловую систему. Этот параметр подразумевает параметры noexec, nosuid и nodev (если только они не будут переопределены последующими параметрами, как в строке параметров user,exec,dev,suid).

nouser

Запрещает обычному пользователю монтировать файловую систему. Это значение по умолчанию; оно не подразумевает никаких других параметров.

users

Разрешает любому пользователю монтировать и отмонтировать файловую систему, даже если ее смонтировал другой обычный пользователь. Этот параметр подразумевает параметры noexec, ^ osuid и nodev (если только они не будут переопределены последующими параметрами, как в строке параметров users,exec,действительный,suid).

X-*

Все параметры, начинающиеся с «X-», интерпретируются как комментарии или как специфичные для пользовательского приложения параметры. Эти параметры не хранятся в пользовательском пространстве (например, в файле mtab) и не отправляются в помощники mount.type или в системный вызов mount(2). Предлагаемый формат: X-appname.option.

x-*

То же, что и параметры X-*, но они хранятся постоянно в пользовательском пространстве. Это означает, что параметры также доступны для umount(8) или других операций. Обратите внимание, что хранение параметров монтирования в пользовательском пространстве — сложная задача, поскольку необходимо использовать инструменты libmount, и нет гарантии, что параметры всегда будут доступны (например, после операции перемещения монтирования или в неразделяемом пространстве имен).

Обратите внимание, что до util-linux v2.30 параметры x-* не поддерживались libmount и хранились в пользовательском пространстве (функциональность была такой же, как у X-* сейчас), но в связи с растущим числом вариантов использования (в initrd, systemd и т. д.) функциональность была расширена, чтобы существующие конфигурации fstab можно было использовать без изменений.

X-mount.auto-fstypes=список

Указывает разрешенные или запрещенные типы файловых систем для автоматического определения файловой системы.

Список — это список имен файловых систем, разделенных запятыми. Автоматическое определение файловой системы вызывается типом файловой системы «auto» или когда тип файловой системы не указан.

Список следует принципу, по которому mount оценивает шаблоны типов (см. -t для получения дополнительной информации). Разрешены только указанные типы файловых систем, или все указанные типы запрещены, если список начинается с «no».


Например, X-mount.auto-fstypes="ext4,btrfs" допускает только ext4 и btrfs, а X-mount.auto-fstypes="novfat,xfs" допускает все файловые системы, кроме vfat и xfs.

Обратите внимание, что запятая используется в качестве разделителя между параметрами монтирования, это означает, что значения auto-fstypes должны быть правильно заключены в кавычки, не забудьте, что оболочка удаляет кавычки, поэтому требуется двойное кавычирование. Например:

mount -t auto -o 'X-mount.auto-fstypes="noext2,ext3"' /dev/sdc1 /mnt/test

^ -mount.mkdir[=mode] Позволяет создать целевой каталог (точку монтирования), если он еще не существует. Необязательный аргумент mode указывает режим доступа к файловой системе, используемый для [mkdir]({filename}../../mkdir)(2) в восьмеричной форме. Значение по умолчанию — 0755. Эта функциональность поддерживается только для пользователей с правами root или при выполнении команды mount без установленных прав suid. Этот параметр также поддерживается в виде x-mount.mkdir, но эта нотация устарела, начиная с версии 2.30. См. также опцию командной строки --mkdir.

^ -mount.nocanonicalize[=type] Позволяет отключить канонизацию путей к исходному файлу и целевому каталогу. По умолчанию команда mount преобразует все пути в абсолютные пути, исключая символические ссылки. Однако такое поведение может быть нежелательным в определенных ситуациях, например, при монтировании через символическую ссылку или символическую ссылку на каталог или другую символическую ссылку. Необязательный аргумент type может быть либо "source", либо "target" (точка монтирования). Если тип не указан, то канонизация отключается для обоих типов. Этот параметр монтирования не влияет на преобразование исходных тегов (например, LABEL= или UUID=) и обработку fstab.

Опция командной строки --no-canonicalize переопределяет этот параметр монтирования и влияет на все преобразования путей и тегов во всех ситуациях, но для обеспечения обратной совместимости она не изменяет флаги системного вызова open_tree и не позволяет использовать монтирование через символическую ссылку.

Обратите внимание, что mount(8) по-прежнему очищает и канонизирует пути к исходному файлу и целевому каталогу, указанные в командной строке пользователями, не являющимися root, независимо от настройки X-mount.nocanonicalize.

^ -mount.noloop Не создавать и не монтировать устройство loop, даже если исходный файл для монтирования является обычным файлом.

^ -mount.subdir=directory Позволяет монтировать подкаталог файловой системы, а не корневой каталог. Это эффективно только тогда, когда новый экземпляр файловой системы подключается к системе. Этот параметр игнорируется для таких операций, как повторное монтирование, bind-монтирование или перемещение.

В настоящее время эта функция реализована путем временного монтирования корневого каталога файловой системы в отделенном пространстве имен, а затем привязки подкаталога к окончательной точке монтирования и размонтирования корневого каталога файловой системы. Монтирование подкаталога становится атомарным для остальной части системы, хотя и реализовано с помощью нескольких системных вызовов mount(2).

Обратите внимание, что эта функция не будет работать в сеансе с отделенным частным пространством имен монтирования (после unshare --mount) в старых ядрах или с mount(8) без поддержки API ядра монтирования на основе файловых дескрипторов. В этом случае необходимо использовать unshare --mount --propagation shared.


Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ.

X-mount.owner=username|UID, X-mount.group=group|GID

Установите владельца и группу точки монтирования после монтирования. Имена разрешаются в целевом пространстве имен монтирования, см. -N.

X-mount.mode=mode

Установите режим точки монтирования после монтирования.

X-mount.idmap=id-type:id-mount:id-host:id-range [id-type:id-mount:id-host:id-range],
X-mount.idmap=file

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

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

Сопоставление идентификаторов должно быть указано с использованием синтаксиса id-type:id-mount:id-host:id-range. Указание u в качестве префикса id-type создает сопоставление UID, g создает сопоставление GID, а опускание id-type или указание b создает как сопоставление UID, так и GID. Параметр id-mount указывает начальный идентификатор в новом монтировании. Параметр id-host указывает начальный идентификатор в файловой системе. Параметр id-range указывает, сколько идентификаторов необходимо сопоставить. Можно указать несколько сопоставлений идентификаторов.

Отдельные сопоставления идентификаторов должны быть разделены пробелами. Обратите внимание, что в файле /etc/fstab пробелы интерпретируются как разделители между полями. Чтобы избежать этого, необходимо экранировать их, используя \040. Например, X-mount.idmap=0:0:1\040500:1000:1.

Например, сопоставление идентификаторов X-mount.idmap=u:1000:0:1 g:1001:1:2 5000:1000:2 создает монтирование с сопоставлением идентификаторов, при котором UID 0 сопоставляется с UID 1000, GID 1 сопоставляется с GUID 1001, GID 2 сопоставляется с GID 1002, UID и GID 1000 сопоставляются с 5000, а UID и GID 1001 сопоставляются с 5001 в монтировании.

При указании сопоставления идентификаторов напрямую будет выделено новое пространство имен пользователя с запрошенным сопоставлением идентификаторов. Затем созданное пространство имен пользователя будет привязано к монтированию.

Пользователь может указать файл пространства имен пользователя.

Затем пространство имен пользователя будет привязано к монтированию, и сопоставление идентификаторов пространства имен пользователя станет сопоставлением идентификаторов монтирования.

Например, X-mount.idmap=/proc/PID/ns/user привяжет пространство имен пользователя процесса PID к монтированию.

nosymfollow

Не переходить по символическим ссылкам при разрешении путей. Символические ссылки все еще можно создавать, и readlink(1), readlink(2), realpath(1) и realpath(3) все по-прежнему работают правильно.

ПАРАМЕТРЫ МОНТИРОВАНИЯ, СПЕЦИФИЧНЫЕ ДЛЯ ФАЙЛОВЫХ СИСТЕМ

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

┌──────────────────┬───────────────┐
│                  │               │
│ Файловая система(ы)    │ Страница руководства   │
├──────────────────┼───────────────┤
│                  │               │
│ btrfs            │ btrfs(5)      │
├──────────────────┼───────────────┤
│                  │               │
│ cifs             │ mount.cifs(8) │
├──────────────────┼───────────────┤
│                  │               │
│ ext2, ext3, ext4 │ ext4(5)       │
├──────────────────┼───────────────┤
│                  │               │

│ fuse │ fuse(8) │ ├──────────────────┼───────────────┤ │ │ │ │ nfs │ nfs(5) │ ├──────────────────┼───────────────┤ │ │ │ │ tmpfs │ tmpfs(5) │ ├──────────────────┼───────────────┤ │ │ │ │ xfs │ xfs(5) │ └──────────────────┴───────────────┘


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

Следующие параметры применимы только к определенным файловым системам. Мы сортируем их по файловой системе. Все параметры указываются после флага -o.

Поддерживаемые параметры зависят от используемого ядра. Дополнительную информацию можно найти в файлах, специфичных для файловой системы, в подкаталоге Documentation/filesystems исходного кода ядра.

Параметры монтирования для adfs

uid=значение и gid=значение

Устанавливает владельца и группу файлов в файловой системе (по умолчанию: uid=gid=0).

ownmask=значение и othmask=значение

Устанавливает маску разрешений для разрешений ADFS «владельца» и разрешений «других» соответственно (по умолчанию: 0700 и 0077 соответственно). См. также /usr/src/linux/Documentation/filesystems/adfs.rst.

Параметры монтирования для affs

uid=значение и gid=значение

Устанавливает владельца и группу корневого каталога файловой системы (по умолчанию: uid=gid=0, но если указаны параметры uid или gid без указания значения, используются UID и GID текущего процесса).

setuid=значение и setgid=значение

Устанавливает владельца и группу для всех файлов.

mode=значение

Устанавливает режим для всех файлов в значение & 0777, игнорируя исходные разрешения. Добавляет разрешение на поиск к каталогам, у которых есть разрешение на чтение. Значение указывается в восьмеричной системе.

protect

Запрещает любые изменения битов защиты в файловой системе.


usemp

Устанавливает UID и GID корневого каталога файловой системы равными UID и GID точки монтирования при первой синхронизации или размонтировании, а затем очищает этот параметр. Странно...

verbose

Выводит информационное сообщение для каждого успешного монтирования.

prefix=string

Префикс, используемый перед именем тома при переходе по символической ссылке.

volume=string

Префикс (длиной не более 30 символов), используемый перед '/' при переходе по символической ссылке.

reserved=value

(По умолчанию: 2.) Количество неиспользуемых блоков в начале устройства.

root=value

Явно указывает местоположение корневого блока.

bs=value

Указывает размер блока. Допустимые значения: 512, 1024, 2048, 4096.

grpquota|noquota|quota|usrquota

Эти параметры принимаются, но игнорируются. (Однако утилиты квот могут реагировать на эти строки в /etc/fstab.)

Параметры монтирования для debugfs

Файловая система debugfs — это псевдофайловая система, которая традиционно монтируется в /sys/kernel/debug. Начиная с версии ядра 3.4, debugfs имеет следующие параметры:

uid=n, gid=n

Устанавливает владельца и группу точки монтирования.

mode=value

Устанавливает режим точки монтирования.

Параметры монтирования для devpts

Файловая система devpts — это псевдофайловая система, которая традиционно монтируется в /dev/pts. Чтобы получить псевдотерминал, процесс открывает /dev/ptmx; номер псевдотерминала затем становится доступным для процесса, и к псевдотерминалу-ведущему можно получить доступ по адресу /dev/pts/<номер>.

uid=value и gid=value

Это устанавливает владельца или группу вновь создаваемых псевдотерминалов на указанные значения. Если ничего не указано, они будут установлены на UID и GID создающего процесса. Например, если существует группа tty с GID 5, то gid=5 приведет к тому, что вновь создаваемые псевдотерминалы будут принадлежать группе tty.

mode=value

Устанавливает режим вновь создаваемых псевдотерминалов на указанное значение. По умолчанию 0600. Значение mode=620 и gid=5 делает "mesg y" значением по умолчанию для вновь создаваемых псевдотерминалов.

newinstance

Создает частный экземпляр файловой системы devpts, так что индексы псевдотерминалов, выделяемых в этом новом экземпляре, независимы от индексов, созданных в других экземплярах devpts.

Все монтирования devpts без параметра newinstance используют один и тот же набор индексов псевдотерминалов (т. е. режим наследования). Каждый экземпляр devpts с параметром newinstance имеет свой собственный набор индексов псевдотерминалов.

Этот параметр в основном используется для поддержки контейнеров в ядре Linux. Он реализован в версиях ядра Linux, начиная с 2.6.29. Кроме того, этот параметр монтирования действителен только в том случае, если CONFIG_DEVPTS_MULTIPLE_INSTANCES включен в конфигурации ядра.

Чтобы эффективно использовать этот параметр, /dev/ptmx должен быть символической ссылкой на pts/ptmx. См. Documentation/filesystems/devpts.txt в исходном коде ядра Linux для получения подробной информации.

ptmxmode=value

Устанавливает режим для нового узла устройства ptmx в файловой системе devpts.

При поддержке нескольких экземпляров devpts (см. параметр newinstance выше), каждый экземпляр имеет свой собственный узел ptmx в корне файловой системы devpts (обычно /dev/pts/ptmx).


Для обеспечения совместимости со старыми версиями ядра, режим нового узла ptmx по умолчанию равен 000. ptmxmode=value указывает более полезный режим для узла ptmx и настоятельно рекомендуется при использовании опции newinstance.

Эта опция реализована только в версиях ядра Linux, начиная с 2.6.29. Кроме того, эта опция действительна только в том случае, если CONFIG_DEVPTS_MULTIPLE_INSTANCES включена в конфигурации ядра.

Параметры монтирования для fat

(Примечание: fat — это не отдельная файловая система, а общая часть файловых систем msdos, umsdos и vfat.)

blocksize={512|1024|2048}

Задает размер блока (по умолчанию 512). Эта опция устарела.

uid=value и gid=value

Устанавливает владельца и группу для всех файлов. (По умолчанию: UID и GID текущего процесса.)

umask=value

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

dmask=value

Задает umask, применяемый только к каталогам. По умолчанию используется umask текущего процесса. Значение указывается в восьмеричной системе счисления.

fmask=value

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

allow_utime=value

Эта опция управляет проверкой разрешений для mtime/atime.

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

2   Другие пользователи могут изменять временную метку.

По умолчанию значение устанавливается из опции dmask. (Если каталог доступен для записи, то utime(2) также разрешен, т. е. ~dmask & 022).

Обычно utime(2) проверяет, что текущий процесс является владельцем файла или имеет возможность CAP_FOWNER. Но файловые системы FAT не имеют UID/GID на диске, поэтому обычная проверка слишком строгая. С помощью этой опции можно ее ослабить.

check=value

Можно выбрать три различных уровня строгости:

r[elaxed]

Принимаются и считаются эквивалентными символы верхнего и нижнего регистра, длинные части имени усекаются (например, verylongname.foobar становится verylong.foo), ведущие и встроенные пробелы допускаются в каждой части имени (имя и расширение).

n[ormal]

Как и «relaxed», но многие специальные символы (*, ?, <, пробелы и т. д.) отклоняются. Это значение по умолчанию.

s[trict]

Как и «normal», но имена, содержащие длинные части или специальные символы, которые иногда используются в Linux, но не принимаются MS-DOS (+, =, и т. д.), отклоняются.

codepage=value

Задает кодировку для преобразования в короткие имена символов в файловых системах FAT и VFAT. По умолчанию используется кодировка 437.

conv=mode

Эта опция устарела и может привести к сбою или быть проигнорирована.

cvf_format=module

Заставляет драйвер использовать модуль CVF (Compressed Volume File) cvf_module вместо автоматического определения. Если ядро поддерживает kmod, опция cvf_format=xxx также управляет динамической загрузкой модуля CVF. Эта опция устарела.

cvf_option=option

Опция, передаваемая модулю CVF. Эта опция устарела.

debug

Включить флаг отладки. Будет выведена версия и список параметров файловой системы (эти данные также выводятся, если параметры кажутся несогласованными).


discard

Если установлено, команды discard/TRIM будут отправляться на блочное устройство при освобождении блоков. Это полезно для SSD-накопителей и разреженных/тонко выделенных логических дисков (LUN).

dos1xfloppy

Если установлено, используется резервная конфигурация BIOS Parameter Block, определяемая размером устройства. Эти статические параметры соответствуют значениям по умолчанию, предполагаемым DOS 1.x для дискет и образов дискет размером 160 КБ, 180 КБ, 320 КБ и 360 КБ.

errors={panic|continue|remount-ro}

Укажите поведение FAT в случае критических ошибок: panic, продолжение без каких-либо действий или перемонтирование раздела в режиме только для чтения (по умолчанию).

fat={12|16|32}

Укажите 12-, 16- или 32-битную FAT. Это переопределяет автоматическую процедуру определения типа FAT. Используйте с осторожностью!

iocharset=value

Набор символов для преобразования между 8-битными символами и 16-битными символами Unicode. По умолчанию используется iso8859-1. Длинные имена файлов хранятся на диске в формате Unicode.

nfs={stale_rw|nostale_ro}

Включите эту опцию, только если вы хотите экспортировать файловую систему FAT через NFS.

stale_rw: Эта опция поддерживает индекс (кэш) inode каталога, который используется кодом, связанным с NFS, для повышения эффективности поиска. Полные операции с файлами (чтение/запись) через NFS поддерживаются, но из-за вытеснения из кэша на NFS-сервере могут возникать случайные ошибки ESTALE.

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

Для обеспечения обратной совместимости также принимается опция -o nfs, по умолчанию использующая stale_rw.

tz=UTC

Эта опция отключает преобразование меток времени между местным временем (используемым Windows в FAT) и UTC (которое Linux использует внутренне). Это особенно полезно при монтировании устройств (например, цифровых камер), для которых установлено время UTC, чтобы избежать проблем с местным временем.

time_offset=minutes

Задайте смещение для преобразования меток времени из местного времени, используемого FAT, в UTC. То есть, minutes будут вычитаться из каждой метки времени, чтобы преобразовать ее в UTC, которое используется внутренне в Linux. Обратите внимание, что эта опция все же не обеспечивает правильные метки времени во всех случаях при наличии летнего времени — метки времени в другом режиме летнего времени будут отличаться на один час.

quiet

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

rodir

FAT имеет атрибут ATTR_RO (только для чтения). В Windows атрибут ATTR_RO каталога просто игнорируется и используется только приложениями в качестве флага (например, он установлен для пользовательской папки).


Если вы хотите использовать ATTR_RO в качестве флага «только для чтения» даже для каталога, установите этот параметр.

showexec

Если установлено, биты разрешений на выполнение файла будут разрешены только в том случае, если часть имени имеет расширение .EXE, .COM или .BAT. По умолчанию не установлено.

sys_immutable

Если установлено, атрибут ATTR_SYS в FAT будет обрабатываться как флаг IMMUTABLE в Linux. По умолчанию не установлено.

flush

Если установлено, файловая система попытается выполнить сброс на диск раньше, чем обычно. По умолчанию не установлено.

usefree

Использовать значение «свободных кластеров», хранящееся в FSINFO. Оно будет использоваться для определения количества свободных кластеров без сканирования диска. Но по умолчанию оно не используется, потому что в некоторых случаях современные версии Windows не обновляют его правильно. Если вы уверены, что значение «свободных кластеров» в FSINFO верно, с помощью этого параметра вы можете избежать сканирования диска.

dots, nodots, dotsOK=[yes|no]

Различные неудачные попытки принудительного применения соглашений Unix или DOS к файловой системе FAT.

Параметры монтирования для hfs

creator=cccc, type=cccc

Установите значения creator/type, как показано в MacOS Finder, используемом для создания новых файлов. Значения по умолчанию: '????'.

uid=n, gid=n

Установите владельца и группу для всех файлов. (По умолчанию: UID и GID текущего процесса.)

dir_umask=n, file_umask=n, umask=n

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

session=n

Выберите сеанс CD-ROM для монтирования. По умолчанию решение оставляет драйверу CD-ROM. Этот параметр не будет работать ни с чем, кроме CD-ROM в качестве базового устройства.

part=n

Выберите номер раздела n с устройства. Имеет смысл только для CD-ROM. По умолчанию таблица разделов не анализируется.

quiet

Не выдавать сообщения об ошибках по поводу недопустимых параметров монтирования.

Параметры монтирования для hpfs

uid=value и gid=value

Установите владельца и группу для всех файлов. (По умолчанию: UID и GID текущего процесса.)

umask=value

Установите umask (битмаска разрешений, которых нет). По умолчанию используется umask текущего процесса. Значение указывается в восьмеричной системе.

case={lower|asis}

Преобразуйте все имена файлов в нижний регистр или оставьте их как есть. (По умолчанию: case=lower.)

conv=mode

Этот параметр устарел и может не работать или игнорироваться.

nocheck

Не прерывать монтирование, если определенные проверки согласованности не пройдены.

Параметры монтирования для iso9660

ISO 9660 — это стандарт, определяющий структуру файловой системы, используемую на компакт-дисках (CD-ROM). (Эта файловая система также встречается на некоторых DVD. См. также файловую систему UDF.)

Обычно имена файлов ISO 9660 имеют формат 8.3 (т. е. ограничения DOS на длину имени файла), и, кроме того, все символы написаны в верхнем регистре. Кроме того, отсутствует поле для владения файлом, защиты, количества ссылок, поддержки блочных/символьных устройств и т. д.

Rock Ridge — это расширение ISO 9660, которое обеспечивает все эти функции, подобные Unix. По сути, это расширения каждой записи каталога, которые предоставляют всю дополнительную информацию, и когда используется Rock Ridge, файловая система неотличима от обычной файловой системы Unix (за исключением того, что она доступна только для чтения).


norock

Отключить использование расширений Rock Ridge, даже если они доступны. См. map.

nojoliet

Отключить использование расширений Microsoft Joliet, даже если они доступны. См. map.

check={r[elaxed]|s[trict]}

При check=relaxed имя файла сначала преобразуется в нижний регистр перед выполнением поиска. Это, вероятно, имеет смысл только в сочетании с norock и map=normal. (По умолчанию: check=strict.)

uid=value и gid=value

Назначить всем файлам в файловой системе указанный идентификатор пользователя или группы, возможно, переопределяя информацию, найденную в расширениях Rock Ridge. (По умолчанию: uid=0, gid=0.)

map={n[ormal]|o[ff]|a[corn]}

Для не-Rock Ridge томов, обычное преобразование имен преобразует верхний регистр в нижний регистр ASCII, удаляет завершающий символ ';1' и преобразует ';' в '.'. При map=off преобразование имен не выполняется. См. norock. (По умолчанию: map=normal.) map=acorn аналогичен map=normal, но также применяет расширения Acorn, если они присутствуют.

mode=value

Для не-Rock Ridge томов, назначить всем файлам указанный режим. (По умолчанию: разрешение на чтение и выполнение для всех.) Октальные значения режима требуют ведущий 0.

unhide

Также показывать скрытые и связанные файлы. (Если обычные файлы и связанные или скрытые файлы имеют одинаковые имена, это может сделать обычные файлы недоступными.)

block={512|1024|2048}

Установить размер блока на указанное значение. (По умолчанию: block=1024.)

conv=mode

Этот параметр устарел и может не работать или игнорироваться.

cruft

Если старший байт длины файла содержит другие нежелательные данные, установите этот параметр монтирования, чтобы игнорировать старшие биты длины файла. Это подразумевает, что файл не может быть больше 16 МБ.

session=x

Выберите номер сессии на многосессионном компакт-диске.

sbsector=xxx

Сессия начинается с сектора xxx.

Следующие параметры аналогичны параметрам для vfat, и их указание имеет смысл только при использовании дисков, закодированных с использованием расширений Microsoft Joliet.

iocharset=value

Набор символов для преобразования 16-битных символов Unicode на компакт-диске в 8-битные символы. По умолчанию используется iso8859-1.

utf8

Преобразовать 16-битные символы Unicode на компакт-диске в UTF-8.

Параметры монтирования для jfs

iocharset=name

Набор символов для преобразования из Unicode в ASCII. По умолчанию преобразование не выполняется. Используйте iocharset=utf8 для преобразования в UTF-8. Это требует, чтобы CONFIG_NLS_UTF8 был установлен в файле .config ядра.

resize=value

Изменить размер тома до указанного количества блоков. JFS поддерживает только увеличение тома, а не уменьшение. Этот параметр действителен только во время повторного монтирования, когда том смонтирован в режиме чтения-записи. Ключевое слово resize без значения увеличит размер тома до полного размера раздела.

nointegrity

Не записывать в журнал. Основное назначение этого параметра — обеспечить более высокую производительность при восстановлении тома из резервной копии. Целостность тома не гарантируется, если система аварийно завершается.

integrity

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


errors={continue|remount-ro|panic}

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

noquota|quota|usrquota|grpquota

Эти опции принимаются, но игнорируются.

Опции монтирования для msdos

Смотрите опции монтирования для fat. Если файловая система msdos обнаруживает несоответствие, она сообщает об ошибке и устанавливает файловую систему в режим только для чтения. Файловая система может быть снова сделана доступной для записи путем ее перемонтирования.

Опции монтирования для ncpfs

Как и nfs, реализация ncpfs ожидает двоичный аргумент (структуру ncp_mount_data) в системном вызове mount(2). Этот аргумент создается с помощью ncpmount(8), и текущая версия mount (2.12) ничего не знает о ncpfs.

Опции монтирования для ntfs

iocharset=name

Набор символов, который следует использовать при возврате имен файлов. В отличие от VFAT, NTFS подавляет имена, содержащие неконвертируемые символы. Устарело.

nls=name

Новое имя для опции, ранее называвшейся iocharset.

utf8

Использовать UTF-8 для преобразования имен файлов.

uni_xlate={0|1|2}

Для 0 (или 'no' или 'false') не использовать escape-последовательности для неизвестных символов Unicode. Для 1 (или 'yes' или 'true') или 2 использовать escape-последовательности в стиле vfat, состоящие из 4 байт и начинающиеся с ":". Здесь 2 дает little-endian кодировку, а 1 - byteswapped bigendian кодировку.

posix=[0|1]

Если включено (posix=1), файловая система различает верхний и нижний регистр. 8.3 псевдонимы имен представлены в виде жестких ссылок, а не подавляются. Эта опция устарела.

uid=value, gid=value и umask=value

Устанавливает разрешения файлов в файловой системе. Значение umask указывается в восьмеричной системе. По умолчанию файлы принадлежат пользователю root и не доступны для чтения другим пользователям.

Опции монтирования для overlay

Начиная с Linux 3.18, псевдо-файловая система overlay реализует union mount для других файловых систем.

Файловая система overlay объединяет две файловые системы - верхнюю файловую систему и нижнюю файловую систему. Когда имя существует в обеих файловых системах, объект в верхней файловой системе становится видимым, в то время как объект в нижней файловой системе либо скрыт, либо, в случае каталогов, объединен с верхним объектом.

Нижняя файловая система может быть любой файловой системой, поддерживаемой Linux, и не обязательно должна быть записываемой. Нижняя файловая система может быть даже другой файловой системой overlayfs. Верхняя файловая система обычно будет записываемой, и если это так, она должна поддерживать создание расширенных атрибутов trusted.* и должна предоставлять допустимый d_type в ответах readdir, поэтому NFS не подходит.

Read-only overlay двух read-only файловых систем может использовать любой тип файловой системы. Опции lowerdir и upperdir объединяются в объединенный каталог с использованием:

mount -t overlay overlay \
-olowerdir=/lower,upperdir=/upper,workdir=/work /merged

lowerdir=directory

Любая файловая система, не обязательно должна находиться на записываемой файловой системе.


upperdir=directory
upperdir обычно находится на записываемой файловой системе.

workdir=directory
workdir должен быть пустой директорией, расположенной в той же файловой системе, что и upperdir.

userxattr
Используйте пространство имен расширенных атрибутов "user.overlay." вместо "trusted.overlay.". Это полезно для монтирования overlayfs без привилегий.

redirect_dir={on|off|follow|nofollow}
Если включена функция redirect_dir, то директория будет скопирована (но не ее содержимое). Затем устанавливается расширенный атрибут "{trusted|user}.overlay.redirect", содержащий путь к исходному расположению относительно корня наложения. Наконец, директория перемещается в новое местоположение.

on
Перенаправления включены.

off
Перенаправления не создаются и следуют только в том случае, если функция "redirect_always_follow" включена в конфигурации ядра/модуля.

follow
Перенаправления не создаются, но следуют.

nofollow
Перенаправления не создаются и не следуют (эквивалентно "redirect_dir=off", если функция "redirect_always_follow" не включена).

index={on|off}
Индекс inode. Если эта функция отключена, и файл с несколькими жесткими ссылками скопирован, то это "разорвет" ссылку. Изменения не будут распространяться на другие имена, указывающие на один и тот же inode.

uuid={on|off}
Может использоваться для замены UUID базовой файловой системы в дескрипторах файлов на NULL и, следовательно, для отключения проверок UUID. Это может быть полезно, если базовый диск скопирован, и UUID этой копии изменен. Это применимо только в том случае, если все нижние/верхние/рабочие директории находятся в одной и той же файловой системе, в противном случае будет использоваться обычное поведение.

nfs_export={on|off}
Когда базовая файловая система поддерживает экспорт NFS, и включена функция "nfs_export", файловую систему overlay можно экспортировать в NFS.

С функцией "nfs_export" при копировании любого объекта из нижнего уровня создается запись индекса в директории индекса. Имя записи индекса представляет собой шестнадцатеричное представление дескриптора файла исходного объекта, который был скопирован. Для не-директории запись индекса является жесткой ссылкой на inode верхнего уровня. Для директории запись индекса содержит расширенный атрибут "{trusted|user}.overlay.upper" с закодированным дескриптором файла inode директории верхнего уровня.

При кодировании дескриптора файла из объекта файловой системы overlay применяются следующие правила:

Для объекта, не являющегося объектом верхнего уровня, кодируется дескриптор файла нижнего уровня из inode нижнего уровня.

Для индексированного объекта кодируется дескриптор файла нижнего уровня из исходного места копирования.

Для чистого объекта верхнего уровня и для существующего неиндексированного объекта верхнего уровня кодируется дескриптор файла верхнего уровня из inode верхнего уровня.

Закодированный дескриптор файла overlay включает:

Заголовок, содержащий информацию о типе пути (например, нижний/верхний уровень).

UUID базовой файловой системы.

Кодирование базового inode в базовой файловой системе.

Этот формат кодирования идентичен формату кодирования дескрипторов файлов, которые хранятся в расширенном атрибуте "{trusted|user}.overlay.origin". При декодировании дескриптора файла overlay выполняются следующие шаги:

Найти базовый уровень по UUID и информации о типе пути.

Декодирует файловый дескриптор файловой системы в базовый дескриптор каталога.

Для файлового дескриптора нижнего уровня ищет дескриптор в индексном каталоге по имени.

Если в индексе найден «whiteout», возвращает ESTALE. Это представляет объект наложенной файловой системы, который был удален после того, как его файловый дескриптор был закодирован.

Для некаталога создает отключенный дескриптор наложенной файловой системы из декодированного базового дескриптора, типа пути и индексного inode, если он найден.

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

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

Когда наложенная файловая система имеет несколько нижних слоев, каталог промежуточного слоя может иметь «перенаправление» на нижний каталог. Поскольку «перенаправления» промежуточного слоя не индексируются, файловый дескриптор нижнего уровня, который был закодирован из исходного каталога «перенаправления», не может быть использован для поиска каталогов промежуточного или верхнего слоев. Аналогично, файловый дескриптор нижнего уровня, который был закодирован из потомка исходного каталога «перенаправления», не может быть использован для восстановления подключенного пути наложенной файловой системы. Чтобы смягчить случаи, когда каталоги не могут быть декодированы из файлового дескриптора нижнего уровня, эти каталоги копируются при кодировании и кодируются как файловый дескриптор верхнего уровня. В наложенной файловой системе без верхнего слоя это смягчение не может быть использовано, и для экспорта NFS в этой конфигурации требуется отключить следование перенаправлениям (например, «redirect_dir=nofollow»).

Наложенная файловая система не поддерживает подключенные файловые дескрипторы, не относящиеся к каталогу, поэтому экспорт с конфигурацией subtree_check exportfs приведет к сбоям при поиске файлов через NFS.

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

Примечание: параметры монтирования index=off,nfs_export=on конфликтуют для монтирования с возможностью записи и приведут к ошибке.

xino={on|off|auto}

Функция «xino» составляет уникальный идентификатор объекта из фактического номера inode объекта (st_ino) и индекса базового fsid. Функция «xino» использует старшие биты номера inode для fsid, поскольку базовые файловые системы редко используют старшие биты номера inode. В случае, если номер inode базового уровня переполняет старшие биты xino, наложенная файловая система вернется к поведению, не использующему xino, для этого inode.

Для получения подробного описания влияния этой опции обратитесь к https://docs.kernel.org/filesystems/overlayfs.html

metacopy={on|off}

Когда включена функция копирования только метаданных, overlayfs будет копировать только метаданные (в отличие от всего файла), когда выполняется операция, специфичная для метаданных, такая как chown/chmod. Полный файл будет скопирован позже, когда файл будет открыт для записи.

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


volatile

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

Преимущество монтирования с опцией "volatile" заключается в том, что все формы вызовов синхронизации для верхней файловой системы опускаются.

Чтобы избежать ложного чувства безопасности, семантика syncfs (и fsync) для переменных монтирований "volatile" немного отличается от остальной части VFS. Если после монтирования с опцией "volatile" произойдет какая-либо ошибка обратной записи в файловую систему верхнего каталога, все функции синхронизации будут возвращать ошибку. После достижения этого состояния файловая система не восстановится, и каждый последующий вызов синхронизации будет возвращать ошибку, даже если в верхнем каталоге не произошло новых ошибок с момента последнего вызова синхронизации.

Когда наложение монтируется с опцией "volatile", создается каталог "$workdir/work/incompat/volatile". При следующем монтировании наложение проверяет наличие этого каталога и отказывается монтироваться, если он присутствует. Это явный признак того, что пользователь должен удалить верхний и рабочий каталоги и создать новые. В очень ограниченных случаях, когда пользователь знает, что система не дала сбой, и содержимое верхнего каталога не повреждено, каталог "volatile" можно удалить.

Параметры монтирования для reiserfs

Reiserfs — это файловая система с журналированием.

conv

Инструктирует версию 3.6 reiserfs смонтировать файловую систему версии 3.5, используя формат 3.6 для вновь создаваемых объектов. Эта файловая система больше не будет совместима с reiserfs 5tools.

hash={rupasov|tea|r5|detect}

Выберите, какую хеш-функцию будет использовать reiserfs для поиска файлов в каталогах.

rupasov

Хеш, изобретенный Юрием Ю. Рупасовым. Он быстр и сохраняет локальность, сопоставляя лексикографически близкие имена файлов с близкими значениями хеша. Этот параметр не следует использовать, так как он вызывает высокую вероятность коллизий хешей.

tea

Функция Дэвиса-Майера, реализованная Джереми Фитцхарджингом. Она использует хеш, переставляющий биты в имени. Она обеспечивает высокую случайность и, следовательно, низкую вероятность коллизий хешей с некоторыми затратами на процессор. Это можно использовать, если возникают ошибки EHASHCOLLISION с хешем r5.

r5

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

detect

Инструктирует монтировать, обнаруживать используемую хеш-функцию, изучая монтируемую файловую систему и записывать эту информацию в суперблок reiserfs. Это полезно только при первом монтировании старой файловой системы.

hashed_relocation

Настраивает аллокатор блоков. Это может обеспечить повышение производительности в некоторых ситуациях.

no_unhashed_relocation

Настраивает аллокатор блоков. Это может обеспечить повышение производительности в некоторых ситуациях.

noborder

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

nolog

Отключает журналирование. Это может обеспечить небольшое повышение производительности в некоторых ситуациях за счет потери быстрого восстановления reiserfs после сбоев. Даже если этот параметр включен, reiserfs все равно выполняет все операции журналирования, кроме фактической записи в область журналирования. Реализация nolog находится в стадии разработки.


notail
По умолчанию reiserfs хранит небольшие файлы и «концевые части файлов» непосредственно в своем дереве. Это приводит в замешательство некоторые утилиты, такие как lilo(8). Этот параметр используется для отключения упаковки файлов в дерево.

replayonly
Воспроизвести транзакции, содержащиеся в журнале, но не монтировать файловую систему. В основном используется reiserfsck.

resize=number
Параметр монтирования, который позволяет расширять разделы reiserfs в режиме онлайн. Указывает reiserfs предполагать, что на устройстве имеется указанное количество блоков. Этот параметр предназначен для использования с устройствами, находящимися под управлением логического управления томами (LVM). Существует специальная утилита resizer, которую можно получить с ftp://ftp.namesys.com/pub/reiserfsprogs.

user_xattr
Включить расширенные пользовательские атрибуты. См. страницу руководства attr(1).

acl
Включить списки управления доступом POSIX. См. страницу руководства [acl]({filename}../../acl)(5).

barrier=none / barrier=flush
Отключает / включает использование барьеров записи в коде журналирования. barrier=none отключает, barrier=flush включает (по умолчанию). Это также требует наличия стека ввода-вывода, который может поддерживать барьеры, и если reiserfs получает ошибку при записи в барьер, он снова отключит барьеры с предупреждением. Барьеры записи обеспечивают правильное упорядочение операций записи в журнал на диске, что делает безопасным использование энергонезависимых кэшей диска, но с некоторой потерей производительности. Если ваши диски имеют резервное питание каким-либо образом, отключение барьеров может безопасно повысить производительность.

Параметры монтирования для ubifs

UBIFS — это файловая система для флэш-памяти, которая работает поверх томов UBI. Обратите внимание, что atime не поддерживается и всегда отключен.

Имя устройства можно указать следующим образом:

ubiX_Y
Устройство UBI номер X, том номер Y

ubiY
Устройство UBI номер 0, том номер Y

ubiX:NAME
Устройство UBI номер X, том с именем NAME

ubi:NAME
Устройство UBI номер 0, том с именем NAME

В качестве альтернативы можно использовать другой разделитель вместо двоеточия.

Доступны следующие параметры монтирования:

bulk_read
Включить bulk-read. Предварительное чтение VFS отключается, так как оно замедляет работу файловой системы. Bulk-Read — это внутренняя оптимизация. Некоторые флэш-памяти могут читать быстрее, если данные читаются за один проход, а не в несколько запросов на чтение. Например, OneNAND может выполнять «чтение во время загрузки», если он читает более одной страницы NAND.

no_bulk_read
Не выполнять bulk-read. Это значение по умолчанию.

chk_data_crc
Проверять контрольные суммы CRC-32 данных. Это значение по умолчанию.

no_chk_data_crc
Не проверять контрольные суммы CRC-32 данных. При этом файловая система не проверяет контрольную сумму CRC-32 данных, но проверяет ее для внутренней информации об индексах. Этот параметр влияет только на чтение, а не на запись. CRC-32 всегда вычисляется при записи данных.

compr={none|lzo|zlib}
Выберите компрессор по умолчанию, который используется при записи новых файлов. Все еще можно читать сжатые файлы, даже если файловая система смонтирована с параметром none.

Параметры монтирования для UDF

UDF — это файловая система «Universal Disk Format», разработанная организацией OSTA (Optical Storage Technology Association) и часто используемая для DVD-ROM, как правило, в виде гибридной файловой системы UDF/ISO-9660. Однако ее вполне можно использовать и отдельно на жестких дисках, флэш-накопителях и других блочных устройствах. См. также iso9660.

uid=
Присваивает всем файлам в файловой системе указанного пользователя. uid=forget можно указать независимо от (или, как правило, в дополнение к) uid=<пользователь>, и в этом случае UDF не будет хранить идентификаторы пользователей на носителе. Фактически, записанный идентификатор пользователя — это 32-битное переполнение uid -1, как определено в стандарте UDF. Значение указывается либо как <пользователь>, который является допустимым именем пользователя, либо как соответствующий десятичный идентификатор пользователя, либо в виде специальной строки «forget».

gid=
Присваивает всем файлам в файловой системе указанную группу. gid=forget можно указать независимо от (или, как правило, в дополнение к) gid=<группа>, и в этом случае UDF не будет хранить идентификаторы групп на носителе. Фактически, записанный идентификатор группы — это 32-битное переполнение gid -1, как определено в стандарте UDF. Значение указывается либо как <группа>, которая является допустимым именем группы, либо как соответствующий десятичный идентификатор группы, либо в виде специальной строки «forget».

umask=
Маскирует указанные разрешения для всех inode, прочитанных из файловой системы. Значение указывается в восьмеричной системе.

mode=
Если задан параметр mode=, разрешения для всех не-каталогов inode, прочитанных из файловой системы, будут установлены в указанное значение mode. Значение указывается в восьмеричной системе.

dmode=
Если задан параметр dmode=, разрешения для всех каталогов inode, прочитанных из файловой системы, будут установлены в указанное значение dmode. Значение указывается в восьмеричной системе.

bs=
Устанавливает размер блока. Значение по умолчанию до версии ядра 2.6.30 составляло 2048. Начиная с версии 2.6.30 и до версии 4.11 использовался логический размер блока устройства с откатом до 2048. Начиная с версии 4.11 используется логический размер блока с откатом до любого допустимого размера блока между логическим размером блока устройства и 4096.

Для получения дополнительной информации см. страницу руководства mkudffs(8) версии 2.0+, см. разделы «СОВМЕСТИМОСТЬ» и «РАЗМЕР БЛОКА».

unhide
Показывает скрытые файлы.

undelete
Показывает удаленные файлы в списках.

adinicb
Встраивает данные в inode. (по умолчанию)

noadinicb
Не встраивает данные в inode.

shortad
Использует короткие дескрипторы адресов UDF.

longad
Использует длинные дескрипторы адресов UDF. (по умолчанию)

nostrict
Отключает строгую совместимость.

iocharset=
Устанавливает набор символов NLS. Для этого требуется ядро, скомпилированное с опцией CONFIG_UDF_NLS.

utf8
Устанавливает набор символов UTF-8.

Параметры монтирования для отладки и восстановления после сбоев

novrs
Игнорирует последовательность распознавания тома и пытается смонтировать ее в любом случае.

session=
Выбирает номер сеанса для многосессионных оптических носителей. (по умолчанию — последний сеанс)

anchor=
Переопределяет стандартное расположение якоря. (по умолчанию — 256)

lastblock=
Устанавливает последний блок файловой системы.

Устаревшие исторические параметры монтирования, которые могут встречаться и должны быть удалены

uid=ignore
Игнорируется, используйте uid=<пользователь> вместо этого.

gid=ignore

Игнорируется, используйте gid=<группа> вместо этого.

volume=

Не реализовано и игнорируется.

partition=

Не реализовано и игнорируется.

fileset=

Не реализовано и игнорируется.

rootdir=

Не реализовано и игнорируется.

Параметры монтирования для ufs

ufstype=значение
UFS — это файловая система, широко используемая в различных операционных системах. Проблема заключается в различиях между реализациями. Некоторые функции определенных реализаций не документированы, поэтому трудно автоматически определить тип UFS. Поэтому пользователь должен указывать тип UFS с помощью параметра монтирования. Возможные значения:

old

Старый формат UFS, по умолчанию, только для чтения. (Не забудьте указать опцию -r).

44sd

Для файловых систем, созданных в BSD-подобной системе (NetBSD, FreeBSD, OpenBSD).

ufs2

Используется в FreeBSD 5.x, поддерживается в режиме чтения-записи.

5bsd

Синоним для ufs2.

sun

Для файловых систем, созданных SunOS или Solaris на Sparc.

sunx86

Для файловых систем, созданных Solaris на x86.

hp

Для файловых систем, созданных HP-UX, только для чтения.

nextstep

Для файловых систем, созданных NeXTStep (на NeXT station) (в настоящее время только для чтения).

nextstep-cd

Для NextStep CDROM (block_size == 2048), только для чтения.

openstep

Для файловых систем, созданных OpenStep (в настоящее время только для чтения). Та же файловая система также используется macOS.

onerror=значение

Определяет поведение при возникновении ошибки:

panic

Если возникает ошибка, вызвать панику ядра.

[lock|umount|repair]

Эти параметры монтирования в настоящее время ничего не делают; при возникновении ошибки в консоль выводится только сообщение.

Параметры монтирования для umsdos

См. параметры монтирования для msdos. Параметр dotsOK явно отключен в umsdos.

Параметры монтирования для vfat

Прежде всего, распознаются параметры монтирования для fat. Параметр dotsOK явно отключен в vfat. Кроме того, есть:

uni_xlate

Преобразуйте необработанные символы Unicode в специальные экранированные последовательности. Это позволяет создавать резервные копии и восстанавливать имена файлов, созданные с использованием любых символов Unicode. Без этого параметра вместо этого используется символ '?', когда преобразование невозможно. Символ экранирования — ':’, поскольку он в противном случае недопустим в файловой системе vfat. Последовательность экранирования, которая используется, где u — символ Unicode, выглядит следующим образом: ‘:’, (u & 0x3f), ((u>>6) & 0x3f), (u>>12).

posix

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

nonumtail

Сначала попытайтесь создать короткое имя без порядкового номера, прежде чем пытаться использовать имя~номер.расширение.

utf8

UTF8 — это безопасная для файловой системы 8-битная кодировка Unicode, которая используется консолью. Ее можно включить для файловой системы с помощью этого параметра или отключить с помощью utf8=0, utf8=no или utf8=false. Если задан uni_xlate, UTF8 отключается.

shortname=режим

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

lower

Принудительно приводить короткое имя к нижнему регистру при отображении; хранить длинное имя, когда короткое имя не состоит только из прописных букв.


win95

Принудительно преобразует короткое имя в верхний регистр при отображении; сохраняет длинное имя, если короткое имя не состоит только из символов верхнего регистра.

winnt

Отображает короткое имя как есть; сохраняет длинное имя, если короткое имя не состоит только из символов нижнего или верхнего регистра.

mixed

Отображает короткое имя как есть; сохраняет длинное имя, если короткое имя не состоит только из символов верхнего регистра. Этот режим является режимом по умолчанию, начиная с Linux 2.6.32.

Параметры монтирования для usbfs

devuid=uid и devgid=gid и devmode=mode

Устанавливает владельца, группу и режим для файлов устройств в файловой системе usbfs (по умолчанию: uid=gid=0, mode=0644). Режим указывается в восьмеричной системе.

busuid=uid и busgid=gid и busmode=mode

Устанавливает владельца, группу и режим для каталогов шин в файловой системе usbfs (по умолчанию: uid=gid=0, mode=0555). Режим указывается в восьмеричной системе.

listuid=uid и listgid=gid и listmode=mode

Устанавливает владельца, группу и режим для файлов устройств (по умолчанию: uid=gid=0, mode=0444). Режим указывается в восьмеричной системе.

ПОДДЕРЖКА DM-VERITY

Цель device-mapper verity обеспечивает проверку целостности блочных устройств в режиме «только чтение» с использованием API криптографии ядра. Команда монтирования может открыть устройство dm-verity и выполнить проверку целостности перед монтированием файловой системы устройства. Требуется libcryptsetup, включенная в libmount (опционально через dlopen(3)). Если libcryptsetup поддерживает извлечение корневого хеша уже смонтированного устройства, существующие устройства будут автоматически повторно использоваться в случае совпадения. Параметры монтирования для dm-verity:

verity.hashdevice=путь

Путь к устройству хеш-дерева, связанному с исходным томом, который необходимо передать dm-verity.

verity.roothash=шестнадцатеричное_значение

Шестнадцатеричное представление хеша корня verity.hashdevice. Взаимоисключающий с verity.roothashfile.

verity.roothashfile=путь

Путь к файлу, содержащему шестнадцатеричное представление хеша корня verity.hashdevice. Взаимоисключающий с verity.roothash.

verity.hashoffset=смещение

Если хеш-дерево находится внутри исходного тома, dm-verity использует смещение (по умолчанию: 0) для доступа к дереву.

verity.fecdevice=путь

Путь к устройству коррекции ошибок (FEC), связанному с исходным томом, которое необходимо передать dm-verity. Необязательно. Требуется, чтобы ядро было собрано с CONFIG_DM_VERITY_FEC.

verity.fecoffset=смещение

Если устройство FEC находится внутри исходного тома, dm-verity использует смещение (по умолчанию: 0) для доступа к области FEC. Необязательно.

verity.fecroots=значение

Количество байтов четности для FEC (по умолчанию: 2). Необязательно.

verity.roothashsig=путь

Путь к подписи PKCS7 (1ssl) шестнадцатеричной строки корневого хеша. Требуется crypt_activate_by_signed_key() из cryptsetup и ядро, собранное с CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG. Для повторного использования устройства подписи должны использоваться либо для всех монтирований устройства, либо ни для одного из них. Необязательно.

verity.oncorruption=ignore|restart|panic

Указывает ядру игнорировать, перезагружать или переходить в режим паники при обнаружении повреждения. По умолчанию операция ввода-вывода просто завершается с ошибкой. Требуется Linux 4.1 или более поздней версии и libcryptsetup 2.3.4 или более поздней версии. Необязательно.


Поддерживается, начиная с util-linux v2.35.

Примеры команд:

mksquashfs /etc /tmp/etc.raw
veritysetup format /tmp/etc.raw /tmp/etc.verity --root-hash-file=/tmp/etc.roothash
openssl smime -sign -in /tmp/etc.roothash -nocerts -inkey private.key \
-signer private.crt -noattr -binary -outform der -out /tmp/etc.roothash.p7s
mount -o verity.hashdevice=/tmp/etc.verity,verity.roothashfile=/tmp/etc.roothash,\
verity.roothashsig=/tmp/etc.roothash.p7s /tmp/etc.raw /mnt

Создание образа squashfs из каталога /etc, устройство проверки целостности и монтирование проверенной файловой системы в /mnt. Ядро проверит, что корневой хеш подписан ключом из кольца ключей ядра, если используется roothashsig.

ПОДДЕРЖКА LOOP-УСТРОЙСТВА

Другой возможный тип — монтирование через loop-устройство. Например, команда

mount /tmp/disk.img /mnt -t vfat -o loop=/dev/loop3

назначит loop-устройство /dev/loop3 для файла /tmp/disk.img, а затем смонтирует это устройство в /mnt.

Если явно не указано loop-устройство (а просто указана опция -o loop), то команда mount попытается найти какое-нибудь неиспользуемое loop-устройство и использовать его, например:

mount /tmp/disk.img /mnt -o loop

Команда mount автоматически создает loop-устройство из обычного файла, если не указан тип файловой системы или тип файловой системы известен libblkid, например:

mount /tmp/disk.img /mnt

mount -t ext4 /tmp/disk.img /mnt

Этот тип монтирования поддерживает три опции, а именно loop, offset и sizelimit, которые на самом деле являются опциями для losetup(8). (Эти опции можно использовать в дополнение к опциям, специфичным для типа файловой системы).

Начиная с Linux 2.6.25, поддерживается автоматическое уничтожение loop-устройств, что означает, что любое loop-устройство, выделенное командой mount, будет освобождено командой umount независимо от /etc/mtab.

Вы также можете вручную освободить loop-устройство, используя losetup -d или umount -d.

Начиная с util-linux v2.29, команда mount повторно использует loop-устройство, а не инициализирует новое устройство, если один и тот же файл резервного копирования уже используется для какого-либо loop-устройства с тем же смещением и ограничением размера. Это необходимо для предотвращения повреждения файловой системы.

СТАТУС ВЫХОДА

Команда mount имеет следующие коды выхода (биты можно объединять оператором OR):

0   успех

1   неправильный вызов или недостаточные права

2   системная ошибка (нехватка памяти, невозможно создать fork, больше нет доступных loop-устройств)

4   внутренняя ошибка монтирования

8   прерывание пользователя

16  проблемы с записью или блокировкой /etc/mtab

32  ошибка монтирования

64  некоторые монтирования выполнены успешно

Команда mount -a возвращает 0 (все успешно), 32 (все не удалось) или 64 (некоторые не удалось, некоторые успешно).

126 не удалось выполнить внешнюю команду /sbin/mount.<type> (начиная с util-linux v2.41)

ВНЕШНИЕ ПОМОЩНИКИ

Синтаксис внешних команд монтирования:

/sbin/mount.suffix spec dir [-sfnv] [-N namespace] [-o options] [-t type.subtype]

где suffix — это тип файловой системы, а опции -sfnvoN имеют то же значение, что и обычные опции mount. Опция -t используется для файловых систем с поддержкой подтипов (например, /sbin/mount.fuse -t fuse.sshfs).

Команда mount не передает параметры монтирования unbindable, runbindable, private, rprivate, slave, rslave, shared, rshared, auto, noauto, comment, x-*, loop, offset и sizelimit вспомогательным программам mount.<suffix>. Все остальные параметры используются в виде списка, разделенного запятыми, в качестве аргумента для опции -o.

Значение кода возврата вспомогательной программы возвращается как код возврата mount(8). Значение 126 возвращается, если вспомогательная программа монтирования найдена, но execl() завершилась с ошибкой.

ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ

`LIBMOUNT_FORCE_MOUNT2={always|never|auto}`
принудительно использовать классический системный вызов `mount(2)` (требуется поддержка нового API монтирования на основе файловых дескрипторов). По умолчанию `auto`; в этом случае `libmount` пытается действовать разумно и использовать классический `mount(2)` только для известных проблем. Если новый API монтирования недоступен, `libmount` все равно может использовать традиционный `mount(2)`, даже если `LIBMOUNT_FORCE_MOUNT2` установлено в `never`.

`LIBMOUNT_FSTAB=<путь>`
переопределяет расположение файла `fstab` по умолчанию (игнорируется для `suid`).

`LIBMOUNT_DEBUG=all`
включает отладочный вывод `libmount`.

`LIBBLKID_DEBUG=all`
включает отладочный вывод `libblkid`.

`LOOPDEV_DEBUG=all`
включает отладочный вывод настройки устройства loop.

ФАЙЛЫ

См. также раздел «Файлы /etc/fstab, /etc/mtab и /proc/mounts» выше.

`/etc/fstab`
таблица файловых систем

`/run/mount`
приватный каталог среды выполнения `libmount`

`/etc/mtab`
таблица смонтированных файловых систем или символическая ссылка на `/proc/mounts`

`/etc/mtab~`
файл блокировки (не используется в системах с символической ссылкой `mtab`)

`/etc/mtab.tmp`
временный файл (не используется в системах с символической ссылкой `mtab`)

`/etc/filesystems`
список типов файловых систем, которые нужно попробовать

ИСТОРИЯ

Команда `mount` существовала в Version 5 AT&T UNIX.

ОШИБКИ

Возможна ситуация, когда поврежденная файловая система может привести к сбою.

Некоторые файловые системы Linux не поддерживают `-o sync` и `-o dirsync` (файловые системы `ext2`, `ext3`, `ext4`, `fat` и `vfat` поддерживают синхронные обновления (в стиле BSD) при монтировании с опцией `sync`).

Опция `-o remount` может не изменять параметры монтирования (все параметры, специфичные для `ext2fs`, кроме `sb`, могут быть изменены при повторном монтировании, например, но нельзя изменить `gid` или `umask` для `fatfs`).

Возможно, файлы `/etc/mtab` и `/proc/mounts` не совпадают в системах с обычным файлом `mtab`. Первый файл основан только на опциях команды `mount`, но содержимое второго файла также зависит от ядра и других настроек (например, на удаленном NFS-сервере — в некоторых случаях команда `mount` может сообщать ненадежную информацию о точке монтирования NFS, а файл `/proc/mount` обычно содержит более надежную информацию). Это еще одна причина заменить файл `mtab` символической ссылкой на файл `/proc/mounts`.

Проверка файлов в файловых системах NFS, на которые ссылаются файловые дескрипторы (то есть семейства функций `fcntl` и `ioctl`), может привести к непоследовательным результатам из-за отсутствия проверки согласованности в ядре, даже если используется опция монтирования `noac`.

Опция `loop` с опциями `offset` или `sizelimit` может завершиться с ошибкой при использовании более старых ядер, если команда `mount` не может подтвердить, что размер блочного устройства был настроен, как запрошено. Эту ситуацию можно обойти, вручную использовав команду `losetup(8)` перед вызовом `mount` с настроенным устройством loop.

АВТОРЫ

Карел Зак <_>

ССЫЛКИ

mount(2), umount(2), filesystems(5), fstab(5), nfs(5), xfs(5), mount_namespaces(7), xattr(7), e2label(8), findmnt(8), losetup(8), lsblk(8), mke2fs(8), mountd(8), nfsd(8), swapon(8), tune2fs(8), umount(8), xfs_admin(8)

СООБЩЕНИЕ ОБ ОШИБКАХ

Для сообщений об ошибках используйте систему отслеживания проблем [https://github.com/util-linux/util-linux/issues].

ДОСТУПНОСТЬ

Команда mount является частью пакета util-linux, который можно загрузить из архива Linux Kernel Archive [https://www.kernel.org/pub/linux/utils/util-linux/].