Поблагодари автора прямо сейчас на странице Спасибо!

Mount

Материал из Пингвиньи радостей

Перейти к: навигация, поиск

Содержание

Статья о команде монтирования файловой системы Mount

Mount это утилита для монтирования файловой системы объекта.

  Монтированием здесь называется процесс подключения файловой структуры объекта,
  например жёсткого диска или сетевого ресурса, к каталогу файловой системы.
  Доступ к файловой структуре ресурса будет осуществляться в зависимости от
  параметров монтирования, например только для чтения или в режиме чтения/записи,
  до тех пор по не будет выполнена команда umount или не осуществлена перезагрузка операционной среды.

Установка

В *nix системах программа устанавливается автоматически при установке операционной среды.

Синтаксис

Формат вызова утилиты

  # mount [параметры] устройство каталог
  где
  устройство           - имя подключаемого объекта
  каталог              - папка - точка подключения файловой структуры объекта
  параметры            - (необязательные) параметры монтирования, например
  -V, --version
      Получение информации о версии программы.
  -h, --help
      Вывод помощи по программе.
  -v, --verbose
      Подробное информирование о выполняемых действиях.
  -a, --all
      Монтирование всех файловых систем, описанных в файле /etc/fstab.
  -F, --fork
      Подключение файловых систем различных устройств или серверах NFS параллельно.
      Параметр -F используется с параметром -a и по умолчанию отключен.
      Параллельное подключение быстрее, но имеет неопределённость в порядке монтирования.
      Поэтому параметр -F нельзя применять для одновременного монтирования например и /usr и /usr/spool. 
  -f, --fake
      Выполнить всё возможное для завершения системного вызова;
      Если это невозможно, тогда создаётся видимость успешного выполнения монтирования файловой системы.
      Параметр может быть использован в сочетании с -v для анализа процесса монтирования.
  -i, --internal-only
      Запрет вызова специальной программы монтирования /sbin/mount.<filesystem> даже если она существует.
  -l
      Добавление метки к отчёту о монтировании
      Для работы этого параметра должно быть разрешено чтение с подключаемого устройства или использованы права суперпользователя.
      Для установки такой метки на файловых системах ext2/ext3/ext4 может быть использована утилита e2label(8),
      на XFS - утилита xfs_admin(8), на reiserfs - reiserfstune(8). 
  -n, --no-mtab
      Осуществляет монтирование без записи в /etc/mtab.
      Необходимость в этом возникает когда, например /etc находится на файловой системе с режимом доступа "только для чтения". 
  --no-canonicalize
      Не канонизировать пути.
      По умолчанию команда монтирования канонизирует все пути (из командной строки или FSTab) и хранит канонические пути в файле /etc/mtab.
      Эта опция может использоваться вместе с флагом -f для уже канонизированных абсолютных путей.
  -p, --pass-fd num
      В случае применения loop-монтирования с шифрованием, читает ключевую фразу из файлового дескриптора num, а не с терминала. 
  -s
      Запрет аварийного завершения, даже в случае неподходящих параметров монтирования.
      При этом параметры, не поддерживаемые файловой системой, будут проигнорированы.
      Не все файловые системы поддерживают этот параметр.
      Параметр предназначен для поддержки в Linux авто-монтирования при помощи AutoFS. 
  -r, --read-only
      Монтирование файловой системы в режиме "только для чтения".
      Параметр является синонимом -o ro.
  -w, --rw
      Монтирование файловой системы в режиме "чтения/запись". (режим по умолчанию)
      Параметр является синонимом -o rw.
  -L label
      Монтирование раздела (жёсткого диска) содержащего метку label.
  -U uuid
      Монтирование раздела (жёсткого диска) определённого уникальным UUID.
      Как и предыдущий параметр, требует (начиная с ядра Linux 2.1.116) наличия файла /proc/partitions. 
  -t, --types vfstype
      Описание типа файловой системы.
         В настоящее время поддерживаются следующие типы файловых систем: adfs, affs,  autofs,  cifs,  coda, coherent, cramfs, debugfs,
      devpts, efs, ext, ext2, ext3, ext4, hfs, hfsplus, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs,
      reiserfs, romfs, squashfs, smbfs, sysv, tmpfs, ubifs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs.
         Для большинства типов файловых систем выполнение команды mount сводится к простому системному вызову mount(2) без уточнения
      типа файловой системы в запросе. Однако, для некоторых файловых систем (например таких как nfs, nfs4, cifs, smbfs, ncpfs)
      добавление специального кода является необходимым. Поэтому файловые системы nfs, nfs4, cifs, smbfs, и ncpfs имеют отдельные программы
      монтирования вида /sbin/mount.TYPE. Данные программы могут представлять как двоичные файлы, так и сценарии оболочки как например
      /sbin/mount.smbfs.
         Если параметр -t не используется или, если вместо определения типа используется слово auto, то тип файловой системы определяется автоматически.
      Если команда mount была собрана с библиотекой blkid, то определение типа файловой системы будет осуществляться этой библиотекой.
      Иначе, команда mount попытается установить тип, исследуя суперблок. Если и в этом случае попытка авто-определения закончится неудачей,
      для монтирования будет использована информация из файла /etc/filesystems, или, если он не существует, файла /proc/filesystems.
      Все типы файловых систем, перечисленные в этих файлах, будут перепробованы, за исключением тех, которые отмечены как "nodev" (т.е.,
      devpts, proc и nfs). Если файл /etc/filesystems заканчивается строкой с одиночным символом '*', при монтировании будет
      дополнительно использован и файл /proc/filesystems.
         Использование auto удобно для облегчения монтирования дискет (floppy) и других съемных носителей.
      Создание и использование файла /etc/filesystems может быть полезным для того, чтобы изменить очередность в распознавании типа файловой системы
      (т.е., проверить, например, сначала как vfat, а потом msdos или ext3, а потом ext2) или в случае использования автозагрузки определённого
      модуля ядра.
         Внимание: при автоматическом распознавании типа файловой системы используется эвристический метод, который основан на поиске
      определенных `магических последовательностей'. Из-за этого не исключена вероятность ошибок, которые могут привести к фатальным последствиям.
      Если данные на носителе дороги и точно известен тип файловой системы, лучше не разрешать команде mount делать это автоматически.
         Более чем один тип файловой системы может быть задан списком, где в качестве разделителя типов используется запятая.
      Тип файловой системы может также начинаться с префикса no отменяющего указанное действие для данного типа.
      (Эта возможность очень удобна в сочетании с параметром -a.). Например, команда:
         # mount -a -t nomsdos,ext 
      монтирует все файловые системы кроме указанных типов msdos и ext. 
  -O, --test-opts opts
      Исключение монтирования некоторых файловых систем из общего списка, который предполагается параметром -a.
      Параметр используется в сочетании с параметром -a и похож на -t только, в этом случае, исключение происходит в контексте
      параметра -a и связанного с ним файла /etc/fstab. Например, команда:
         # mount -a -O no_netdev 
      монтирует все файловые системы за исключением тех, которые имеют параметр _netdev в строках монтирования файла /etc/fstab.
      В этом заключается основное отличие -O от -t, для которого требуется точное указание типа, а ключевое слово no,
      предваряющее один из параметров, не распространяется на остальные.
      Параметры -t и -O обладают эффектом дополнять действия друг друга; это означает, что команда
         # mount -a -t ext2 -O _netdev 
      монтирует все файловые системы ext2 с параметром _netdev, за исключением всех файловых систем,
      для которых не задан один из двух параметров, или ext2, или _netdev.
  -o, --options opts
      Указание списка параметров монтирования, разделенных запятыми, например
         # mount LABEL=mydisk -o noatime,nouser 
      Параметры монтирования устанавливают тип файловой системы, порядок и правила её подключения.
      Параметры могут быть использованы в командной строке или скрипте или представлены в файле /etc/fstab.
      Параметры монтирования могут быть [[#Общие параметры монтирования|общими] для всех файловых систем и специфичными для каждой.
  -B, --bind
      Перемонтирование (дополнительное монтирование) поддерева каталогов еще в одну точку
      После этого содержимое объекта становится доступным из обоих точек.
  -R, --rbind
      Перемонтирование (дополнительное монтирование) поддерева каталогов и всех связанных с ним подмонтирований еще в одну точку.
      После этого содержимое объекта становится доступным из обоих точек.
  -M, --move
      Перемещение поддерева каталогов в другое место.

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

Общие параметры монтирования могут быть использованы для любой файловой системы.

  async
      Установка выполнения операций ввода/вывода (I/O) файловой системы асинхронно.
      То есть не связанно с временем завершения самой команды ввода/вывода.
  sync
      Установка выполнения операций ввода/вывода (I/O) файловой системы синхронно.
      То есть операция ввода/вывода будет выполняться в момент выполнения самой команды ввода/вывода.
      В случае носителей с ограниченным количеством циклов записи (например карты флэш-памяти) синхронизация может сократить их время службы.
  atime
      Установка обновления времени доступа в дескрипторе файла для каждого обращения. (параметр по умолчанию)
  noatime
      Запрет обновления времени доступа в дескрипторе файла для каждого обращения.
      Установка параметра может существенно увеличить срок службы носителей с ограниченным количеством циклов записи (например карты флэш-памяти)
      и увеличить скорость работы системы (например серверов новостей).
  auto
      Может монтироваться с параметром -a. 
  noauto
      Разрешает монтирование лишь по прямому указанию (т.е. параметр -a не монтирует эту файловую систему). 
  context=context, fscontext=context, defcontext=context, rootcontext=context
      -
  defaults
      Установка параметров по умолчанию: rw, suid, dev, exec, auto, nouser и async.
  dev
      Различает файловые системы символьно-ориентированных и блочно-ориентированных устройств. 
  nodev
      Не различает файловые системы символьно-ориентированных и блочно-ориентированных устройств. 
  diratime
      Установка обновления времени доступа в дескрипторе каталога. (параметр по умолчанию)
  nodiratime
      Запрет обновления времени доступа в дескрипторе каталога.
  dirsync
      Установка обновления каталогов в пределах файловой системы с целью синхронизации.
      Это происходит при следующих системных вызовах: creat, link, unlink, symlink, mkdir, rmdir, mknod и rename. 
  exec
      Установка разрешения исполнение двоичных файлов.
  noexec
      Запрет исполнения двоичных файлов на смонтированной файловой системе.
      (До недавнего времени можно было управлять любыми двоичными данными так или иначе используя команду /lib/ld*.so /mnt/binary.
       Однако начиная с версии Linux 2.4.25 / 2.6.0. это уже не представляется возможным.) 
  group
      Позволяет обычному пользователю (не суперпользователю) монтировать файловую систему, если он является членом одной из групп,
      которой принадлежит устройство. Этот параметр сопровождается таким же действием, как и параметры nosuid и nodev (если не будет
      перекрыт последующими параметрами в строке, как например, group, dev, suid). 
  encryption
      Определение используемого алгоритма шифрования.
      Применяется в сочетании с параметром loop.
  keybits
      Установка размера ключа используемого в алгоритме шифрования.
      Применяется в сочетании с параметрами loop и encryption.
  noiversion
      Запрет приращения поля i_version в дескрипторе.
  mand
      Разрешение принудительно заблокировать данную файловую систему. Детальную информацию см. fcntl(2).
  nomand
      Запрет принудительной блокировки данной файловой системы.
  _netdev
      Файловая система, находящаяся на устройстве, которому требуется сетевой доступ
      (используется для предотвращения попыток системы монтировать эту файловую систему пока доступна сеть). 
  nofail
      Запрет отчёта об ошибках для устройства, если он не существует.
  relatime
      -
  norelatime
      -
  strictatime
      -
  nostrictatime
      -
  suid
      Разрешение действовать битам полномочий SUID и SGID.
      SUID (Set-User-IDentifier) - установка идентификатора владельца
      SGID (Set-Group-IDentifier - установка идентификатора группы
  nosuid
      Запрет использования битов полномочий SUID и SGID.
      Применение параметра представляет опасность в случае, если установлен suidperl(1).)
  owner
      Позволяет обычному пользователю (не суперпользователю) монтировать файловую систему, если он является владельцем устройства.
      Этот параметр сопровождается таким же действием, как и параметры nosuid и nodev
      (если не будет перекрыт последующими параметрами в строке, как например, owner, dev, suid).
  remount
      Пробует перемонтировать уже смонтированную файловую систему.
      Это может быть необходимо, когда требуется поменять флаги режима доступа. Например, файловая система с режимом "только для чтения"
      может быть преобразована и после перемонтирования допускает режим "чтение/запись". Это действие не изменяет устройство или точку монтирования. 
  ro
      Монтирует файловую систему "только для чтения". 
  rw
      Монтирует файловую систему в режиме доступа "чтение/запись". 
   user
      Разрешает обычному пользователю монтировать файловую систему.
      Имя монтирующего пользователя сохраняется в файле /etc/mtab так, что он может размонтировать файловую систему позже.
      Этот параметр подразумевает автоматическую активацию параметров noexec, nosuid, nodev
      (если только далее в строке они не перекрываются последовательностью параметров user, exec, dev, suid).
  nouser
      Запрещает обычному пользователю (не суперпользователю) монтировать файловую систему. (Параметр по умолчанию)
  users
      Разрешает любому пользователю монтировать и размонтировать файловую систему.
      Этот параметр подразумевает автоматическую активацию параметров noexec, nosuid, nodev
      (если только далее в строке они не перекрываются последовательностью параметров, например, users, exec, dev, suid).
  Замечание:
  Следует помнить, что не каждая файловая система поддерживает все параметры.
  Например параметр sync сегодня поддерживается только файловыми системами ext2, ext3, fat, vfat and ufs.

Специфичные параметры монтирования

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

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

  Файловая система ext2 является стандартной файловой системой для Linux. Начиная с ядра Linux 2.5.46, большинство параметров монтирования, по умолчанию,
  определяются суперблоком файловой системы. Установка может быть осуществлена с помощью tune2fs.
  acl / noacl
     Поддерживает Списки Управления Доступом POSIX (Access Control Lists) (или нет). 
  bsddf / minixdf
     Устанавливает поведение системного вызова statfs в случае предоставления статистики по файловой системе.
     При этом minixdf возвращает в поле f_blocks общее количество блоков, используемых файловой системой, а
     bsddf (параметр по умолчанию) - отбрасывает часть блоков, которые необходимы файловой системе ext2, но не применяются для хранения файлов.
  check
     Проверяет файловую систему (блоки и индексные дескрипторы) во время монтирования.
  check=none / nocheck
     Не выполняет никаких проверок во время монтирования. Этот параметр увеличивает производительность. Современные ядра не используют никаких параметров
     проверок, поскольку проверка с помощью e2fsck во время загрузки системы является более эффективной. 
  debug
     Выводит отладочную информацию при каждом (пере)монтировании. 
  errors=continue / errors=remount-ro / errors=panic
     Определяет поведение в случае обнаружения ошибок:
     errors=continue
        игнорирует ошибки, однако помечает файловую систему как некорректную, после этого монтирование продолжается. 
     errors=remount-ro
        перемонтирует файловую систему в режим "только для чтения". 
     errors=panic
        аварийно завершает процесс монтирования и блокирует работу системы. 
     Установка по умолчанию задана в суперблоке файловой системы и может быть изменена с помощью tune2fs.
  grpid или bsdgroups / nogrpid или sysvgroups
     Эти параметры определяют, какой идентификатор группы получит вновь созданный файл. Если указан параметр grpid, файл принимает GID каталога, в котором он создан;
     иначе (по умолчанию или второй вариант) файл принимает GID текущего процесса, если только для каталога не установлен SGID, поскольку в этом случае берется GID
     родительского каталога и может также приобрести SGID. 
  grpquota / noquota / quota / usrquota
     Эти параметры доступны, но будут проигнорированы. 
  nobh
     Не присоединять buffer_heads к файлу кешируемых страниц (pagecache). (Доступно начиная с ядра 2.5.49.) 
  nouid32
     Не использовать 32-битные UID-ы и GID-ы. Эта возможность введена для поддержки очень старых ядер, которые хранят и ожидают только 16-битные значения. 
  oldalloc или orlov
     Использовать старый алгоритм распределения или алгоритм Орлова для новых индексных дескрипторов. По умолчанию используется алгоритм Орлова. 
  resgid=n и resuid=n
     Файловая система ext2 резервирует определенный процент доступного дискового пространства под свои нужды (по умолчанию 5%). Эти параметры определяют
     кто может использовать зарезервированные блоки. Так, для resgid зарезервированные блоки может использовать любой, если он принадлежит к группе n.
     В случае resuid эти блоки может использовать любой, чей UID равен n. 
  sb=n
     Взамен блока 1, в качестве суперблока используется n блок. Это может быть полезно, когда файловая система повреждена (или ранее были сделаны резервные
     копии суперблоков для каждых 8192 блоков: в блок 1, 8193, 16385, ... Сотни, а возможно даже тысячи таких копий для большой файловой системы).
     Начиная с ядра 1.08, mke2fs имеет параметр -s (распределенный (sparse) суперблок) для сокращения числа резервных копий суперблоков, а начиная с версии 1.15
     это является режимом по умолчанию. Следует заметить, что в случае, если файловая система ext2 была создана современной mke2fs, то она не может быть смонтирована
     в режиме "чтение/запись" под Linux 2.0.*.) Для номера блока здесь используется 1k разрядов. Так, если вы пожелаете использовать логический блок 32768 на
     файловой системе с 4k блоками, используйте "sb=131072". 
  user_xattr / nouser_xattr
     Поддержка дополнительных атрибутов "user." (или нет).

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

  Файловая система `ext3' является расширением файловой системы ext2, в которой реализована функция журналирования. Для неё поддерживаются как параметры ext2,
  так и дополнительные следующие параметры:
  journal=update
     Обновляет журнал файловой системы ext3 к текущему формату. 
  journal=inum
     Если журнал уже существует, этот параметр игнорируется. Иначе, она определяет номер индексного дескриптора (inode), который будет исполнять роль журнала
     файловой системы ext3; для ext3 будет создан новый журнал, который заменит прежнее содержимое для файла, чей номер inode равен inum. 
  noload
     Не загружать журнал файловой системы ext3 при монтировании. 
  data=journal / data=ordered / data=writeback
     Определяют режим журналирования для файловых данных. Метаданные журналируются всегда. Чтобы на корневой файловой системе использовать другие режимы,
     кроме ordered, передайте необходимый режим ядру в виде параметра, например rootflags=data=journal.
     journal
        До начала изменений (сохранения) в основной файловой системе, все данные помещаются сначала в журнал. 
     ordered
        Этот режим по умолчанию. Все изменения сначала происходят в основной файловой системе, а затем их метаданные регистрируются в журнале. 
     writeback
        Оперирование данными без резервирования - данные сохраняются в основной файловой системе, после этого метаданные регистрируются в журнале.
        Этот параметр считается высокопроизводительным. Он гарантирует внутреннюю целостность файловой системы, однако это может приводить к перезаписи
        старыми данными информации в файлах после аварийного завершения работы системы и последующего процесса восстановления из журнала. 
  commit=nrsec
     Синхронизировать все данные и метаданные каждые nrsec секунд. По умолчанию это значение равно 5 секундам. Нуль означает - взять по умолчанию.

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

  Вместо текстовой строки параметров, разобранной ядром, файловая система nfs ожидает двоичного аргумента типа struct nfs_mount_data. Программа mount
  самостоятельно трансформирует параметры в форму `tag=value', и помещает их в следующую структуру: rsize=n, wsize=n, timeo=n, retrans=n, acregmin=n,
  acregmax=n, acdirmin=n, acdirmax=n, actimeo=n, retry=n, port=n, mountport=n, mounthost=name, mountprog=n, mountvers=n, nfsprog=n, nfsvers=n, namlen=n.
  К особенно ценным параметрам относятся:
  rsize=8192,wsize=8192
     Эти значения устанавливают соответственно размер буферов чтения и записи вместо принятого по умолчанию размера буфера 4096. Такая установка значительно
     ускоряет NFS подключения. (NFSv2 не работает с очень большими значениями rsize и wsize.) 
  hard
     Позволяет программе осуществляющей доступ к файлу на смонтированной файловой системы NFS, "зависнуть", если на сервере произошла аварийная ситуация.
     Процесс не может быть прерван или завершен, если только не указан параметр intr. После восстановления работоспособности сервера NFS, программа продолжит
     обработку с того места, где её застал сбой. Возможно hard,intr то то что вам нужно.
  soft
     Этот параметр позволяет ядру установить тайм-аут, если сервер NFS не отвечает в течении некоторого времени. Период тайм-аута задается параметром timeo=time.
     Этот параметр должен быть полезен если ваш сервер NFS иногда не отвечает или будет перезагружаться пока некоторые процессы попытаются получить доступ к файлу
     на сервере. Обычно это является причиной многих беспокойств.
  nolock
     Не использует блокировку и не запускает lockd.

Примеры использования

  # mount устройство каталог                          - монтирование устройства в каталог с автоматическим определение типа файловой системы 
  # mount -t ntfs /dev/hdd2 <каталог>                 - монтирование жесткого диска hdd2 с файловой системой ntfs
  # mount -t cifs //<IP_или_ИМЯ>/<РЕСУРС> <каталог>   - монтирование сетевого samba ресурса (например с windows системы)
  # mount -t nfs <IP_или_ИМЯ>:/<РЕСУРС> <каталог>     - монтирование сетевых ресурсов NFS
  # mount -o loop <ФАЙЛ>.iso <каталог>                - монтирование образа CD/DVD диска
  # mount -t ramfs -o size=128m ramfs <каталог>       - создание диска в ОЗУ размером 128 Мб

Ссылки:

Литература

Справочная информация

  • 13.05.2014: Mount: создание статьи о команде монтирования файловой системы
  • 23.02.2015: Mount: добавлен раздел о Специфичных параметрах монтирования
Личные инструменты