Всё о монтировании: от системного администрирования до IT криминалистики


Оглавление

1. Основы монтирования и использования команды mount

1.1 Что такое монтирование

1.2 Как соотносится операция монтирования с разбивкой на разделы и форматированием

1.3 Что нужно для монтирования

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

1.5 Как увидеть точки монтирования

1.6 Как смонтировать диск

1.7 Как смонтировать диск только для чтения

1.8 Как размонтировать диск

1.9 Операция привязки bind

1.10 Перемещение точки монтирования

1.11 Как перемонтировать диск

1.12 Просмотр информации о блочных устройствах

2. Монтирование образов дисков и доступ к файлам на них

2.1 Как просмотреть информации об образах для монтирования. Как определить файловую систему образа

2.2 Как смонтировать файл образа диска (раздела)

2.3 Пример просмотра содержимого образов с помощью монтирования

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

3.1 Структура записей в /etc/fstab

3.2 Управление опциями монтирования с помощью /etc/fstab


3.3 Проверка файла /etc/fstab

4. Доступ к содержимому дисков виртуальных машин и их изменение

5. Файловая система в оперативной памяти

6. Автоматическое монтирование и его отключение

6.1 Включение и отключение автоматического монтирования на уровне графического окружения рабочего стола

6.2 Включение и отключение автоматического монтирования на уровне udev

6.3 Автоматическое монтирование с помощью udisks2 и udiskie

7. Монтирование сетевых файловых систем

8. Опции команды mount и опции монтирования

8.1 Опции команды mount

8.2 Опции монтирования, не зависящие от файловой системы

8.3 Опции монтирования, специфичные для файловых систем

8.4 Файловые системы ext4, ext3, ext2, ext

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

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


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

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

8.8.1 Опции монтирования для ntfs-3g

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

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

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

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

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

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

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

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

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

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

8.19 Опции монтирования для cifs и smb3

8.20 Опции монтирования sshfs


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


1. Основы монтирования и использования команды mount

Что такое монтирование

Монтирование в Linux позволяет получить доступ к содержимому диска и организовать структуру файловой системы. С помощью монтирования также можно открыть для работы образ диска (например, созданного с помощью программы dd), а также открыть для доступа и редактирования самые разные файловые системы и образы дисков (например, образы дисков виртуальных машин); даже удалённые сетевые директории могут быть смонтированы, в результате чего они станут доступны как будто бы файлы на любом другом локальном хранилище.

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

В Linux есть такое понятие как «монтирование» диска. Чтобы получить доступ к файлам на этом диске, его нужно сначала смонтировать. Может возникнуть вопрос, зачем такие сложности? Монтирование это мощнейшая вещь, которая позволяет поразительно гибко настроить файловую систему!

Суть монтирования в том, что в файловой системе создаётся новая директория (обычная папка), допустим, это папка /mnt/disk_d. А затем командой mount указывается, что теперь, например, диск /dev/sda смонтирован в директорию /mnt/disk_d. После этого можно получить доступ к файлам диска /dev/sda открыв папку /mnt/disk_d в любом менеджере файлов:

С помощью такого подхода — когда любой диск может быть любой папкой в системе, можно делать очень гибкую настройку. Самый частый пример, встречающийся на практике: файлы пользователя хранятся в папке /home/имя_пользователя/, например, у меня это папка /home/mial/. При установке операционной системы я могу сделать так, что мой второй или третий диск (а не системный) будет смонтирован в точку /home/mial/. То есть вся операционная система будет располагаться на одном диске, а все мои пользовательские файлы — на другом. Что это даёт? В случае переустановки системы, я вновь настрою монтирование диска с моими файлами в папку /home/mial/ и в результате в новой, только что установленной системе, уже будут на месте все мои документы, фотографии и прочее!

Поскольку часто узким местом в мощных компьютерах является скорость чтения с диска, то на на серверах с высокой нагрузкой практикуется перенос файлов баз данных (например, /var/lib/mysql/ на другой диск), возможен перенос файлов сервера (/srv/http/) на третий диск, файлов логов (/var/log/httpd/) на ещё один диск и т. д. Это позволяет добиться того, что данные из баз данных считываются независимо от записи журналов, то есть пока выполняются операции чтения-записи для одного процесса, другому процессу не нужно ждать своей очереди — всё выполняется одновременно.

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

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

Смотрите также: Структура директорий Linux. Важные файлы Linux

Как соотносится операция монтирования с разбивкой на разделы и форматированием

Монтирование — это один из видов действий, которые можно выполнять с диском (блочным устройством). Обращаясь к устройству по его имени /dev/* возможно:

  • создавать новые разделы
  • удалять существующие разделы
  • форматировать разделы или весь диск
  • выполнять низкоуровневые настройки на уровне устройства (установка флага только чтение на уровне диска, выполнять сброс кэша записи на диске, контроль Advanced Power Management и прочее), а также считывать значения этих настроек и свойств диска
  • клонировать содержимое диска с помощью команды dd (или аналогов) в файл или на другой диск
  • восстанавливать содержимое диска из файла командой dd
  • монтировать разделы диска (или весь диск, если он не разбит на разделы)

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

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

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

Чтобы выяснить, какая программа препятствует операции размонтирования/перемонтирования, можно использовать программу lsof следующим образом:

lsof /ТОЧКА/МОНТИРОВАНИЯ/

Например, я пытаюсь перемонтировать диск, смонтированный в директорию /mnt/disk_d/ и получаю ошибку, что диск используется. Чтобы определить, какая команда это делает, я запускаю:

lsof /mnt/disk_d/

Как можно увидеть, данной программой является doublecmd, идентификатором процесса, по которому её можно выключить с помощью команды kill, является 14470, также показано, что программу запустил пользователь mial, а также показано, какой именно файл или папка являются открытыми (колонка NAME).

Также смотрите связанные статьи:

Что нужно для монтирования

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

Самыми распространёнными файловыми системами являются ext2, ext3, ext4, xfs, btrfs, vfat, sysfs, proc, nfs и cifs.

Уже на этапе установке Linux из ISO образа вы могли сталкиваться с одной из этих файловых систем. Образ диска ISO сам по себе является файловой системой iso9660. Но это ещё не всё, на образе файлы дистрибутива могут быть упакованы в файлы *.sfs — это файловая система sysfs (так сделано в Manjaro). На установочном образе Linux Mint вы сможете найти файл filesystem.squashfs, это файловая система Squashfs.

Содержимое установочного диска Manjaro:

Содержимое установочного диска Linux Mint:

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

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

cat /proc/filesystems
ls -l /lib/modules/$(uname -r)/kernel/fs

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

Поддержка файловой системы NTFS (по умолчанию используется в современных версиях Windows в качестве основной файловой системы) в Linux также имеется. Ядро обеспечивает базовую поддержку — доступ для чтения файлов. Для полной поддержки с возможностью записи необходимо установить драйвер ntfs-3g.

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

sudo apt install ntfs-3g

Для установки в Arch Linux и производные:

sudo pacman -S ntfs-3g

Подробности смотрите в статье «Диск Windows монтируется только для чтения (РЕШЕНО)».

Поддержка exFAT должна уже присутствовать на уровне ядра, но если у вас какие-то проблемы с данной файловой системой, то установите драйвер и пакет утилит.

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

sudo apt install exfat-fuse exfatprogs

Для установки в Arch Linux и производные:

sudo pacman -S exfatprogs

Смотрите также: В чем разница между FAT32, exFAT и NTFS?​

Поддержка Network File Systems (NFS) должна уже присутствовать на уровне ядра, но если у вас какие-то проблемы с данной файловой системой, то установите пакет утилит, включающий программу-помощник для монтирования.

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

sudo apt install libnfs-utils

Для установки в Arch Linux и производные:

sudo pacman -S nfs-utils

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

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

sudo apt install nilfs-tools

Для установки в Arch Linux и производные:

sudo pacman -S nilfs-utils

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

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

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

Итак, подытожим, для монтирования нам не нужно беспокоиться о типе файловой системы, поскольку она определяется автоматически. Нам не нужно заботиться о поддерживаемых типах файловых систем, поскольку ядро Linux имеет встроенную поддержку большинства из них.

Как увидеть точки монтирования

Для просмотра устройств и точек их монтирования, выполните команду:

findmnt --real

Эта команда отображает целевую точку монтирования (TARGET), исходное устройство (SOURCE), тип файловой системы (FSTYPE) и соответствующие параметры монтирования (OPTIONS) для каждой файловой системы, как показано на скриншоте. Подробности смотрите в статье «Команда findmnt для просмотра смонтированных файловых систем в Linux».

Команда findmnt без опций покажет больше данных:

findmnt

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

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

mount | grep "^/dev"

А для показа всех точек монтирования, запустите команду следующим образом:

mount

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

findmnt -p

Как смонтировать диск

Общая команда монтирования диска имеет вид:

mount ОПЦИИ УСТРОЙСТВО ДИРЕКТОРИЯ

В ней:

  • ОПЦИИ — опции утилиты mount или опции монтирования
  • УСТРОЙСТВО — блочное устройство или файл образа, который мы хотим подключить к файловой системе
  • ДИРЕКТОРИЯ — папка, где будут доступны файлы со смонтированного устройства

Среди ОПЦИЙ можно указать, например, тип файловой системы или режим только для чтения (по умолчанию монтирование выполняется для чтения и для записи). Существует большое количество опций, некоторые из которых применимы для всех файловых систем, а некоторые из которых специфичны только для определённых файловых систем. Программа mount имеет свои опции, которые относятся к поведению этой утилиты, а также имеются опции, которые относятся к файловым системам, такие опции указываются после -o.

Некоторые опции можно указать любым из этих способов, например, опцию -w, которая означает монтирование для чтения и записи (её псевдонимы —rw, —read-write), также можно указать как «-o rw».

Справочная информация по опциям будет приведена в конце данной статьи.

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

Поэтому обычно для монтирования используется команда вида:

sudo mount /dev/имя_раздела /точка/монтирования/

Допустим, я хочу, чтобы новый диск с именем /dev/sda был подключён (смонтирован) к папке /mnt/disk_d (название папки можно выбрать любое, а точка монтирования необязательно должна быть в директории /mnt/ — можно сделать в домашней папке или в любой другой).

Начинаем с создания директории, в которую будет смонтирован диск:

sudo mkdir /mnt/disk_d

Монтируем диск /dev/sda:

sudo mount /dev/sda /mnt/disk_d

Разрешаем доступ всем в этот диск, чтобы обычный пользователь также мог смотреть и записывать туда файлы:

sudo chmod 0777 /mnt/disk_d

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

Как смонтировать диск только для чтения

Для монтирования диска с правами записи, используется любая из опций: -w, —rw, —read-write, -o rw. На самом деле, ни одну из них указывать не нужно, поскольку монтирования с правами записи является поведением по умолчанию.

Чтобы смонтировать диск только с правами чтения, используйте любой из вариантов опции: -r, —read-only, -o ro.

Обратите внимание, что, в зависимости от типа файловой системы, состояния и поведения ядра, система все ещё может записывать данные на устройство. Например, ext3 и ext4 будут использовать журнал, если файловая система загрязнена. Чтобы предотвратить такой доступ для записи, вы можете смонтировать файловую систему ext3 или ext4 с параметрами монтирования ro,noload или установить само блочное устройство в режим только для чтения с помощью команды blockdev:

sudo blockdev --setro УСТРОЙСТВО

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

Программа hdparm также позволяет установить флаг read-only устройства. Когда значение read-only установлено на 1, Linux не разрешает операции записи на устройство.

Чтобы установить флаг read-only:

sudo hdparm -r1 /dev/ДИСК

Чтобы снять флаг read-only (устройство станет доступным для записи):

sudo hdparm -r0 /dev/ДИСК

Чтобы проверить текущее состояние флага read-only:

sudo hdparm -r /dev/ДИСК

Пример проверки значения флага read-only для диска /dev/nvme0n1:

sudo hdparm -r /dev/nvme0n1

Вывод (режим только чтение отключён, то есть возможна запись на устройство):

/dev/nvme0n1:
 readonly      =  0 (off)

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

mount --bind СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ
mount -o remount,bind,ro СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

О привязке (bind) и перемонтировании будет далее.

Как размонтировать диск

Для размонтирования диска используется любая из двух команд:

sudo umount /dev/имя_раздела

Или:

sudo umount /точка/монтирования/

Частой ошибкой является когда указывают с командой umount одновременно ени диска и точки монтирования — нужно указать только что-то одно.

Если вы получили ошибку, что диск занят, это означает, что какая-то программа держит открытым файл на этом диске. Чтобы выяснить, какая программа препятствует операции размонтирования/перемонтирования, можно использовать программу lsof следующим образом:

lsof /ТОЧКА/МОНТИРОВАНИЯ/

Операция привязки bind

Для перемонтирования файловой иерархии в другое место используется команда вида:

mount --bind СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

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

Важно понимать, что «привязка» не создаёт никаких узлов второго класса или специальных узлов в VFS ядра. «Привязка» — это просто ещё одна операция по присоединению файловой системы. Нигде не хранится информация о том, что файловая система была прикреплена операцией «привязки». СТАРАЯ_ДИРЕКТОРИЯ и НОВАЯ_ДИРЕКТОРИЯ независимы, более того, СТАРУЮ_ДИРЕКТОРИЮ можно размонтировать.

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

mount --bind foo foo

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

mount --rbind СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

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

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

mount -o bind,ro foo foo

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

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

mount --bind СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ
mount -o remount,bind,ro СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

Обратите внимание, что привязка только для чтения создаст точку монтирования только для чтения (запись VFS), но исходный суперблок файловой системы по-прежнему будет доступен для записи, что означает, что СТАРАЯ_ДИРЕКТОРИЯ будет доступна для записи, а НОВАЯ_ДИРЕКТОРИЯ будет доступна только для чтения.

Также можно изменить флаги записи VFS nosuid, nodev, noexec, noatime, nodiratime и relatime с помощью операции "remount,bind". Остальные флаги (например, специфичные для файловой системы) игнорируются. Рекурсивно изменить параметры монтирования (например, с -o rbind,ro) невозможно.

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

Перемещение точки монтирования

Можно переместить точку монтирования в другую директорию, для этого используется команда вида:

mount --move СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

Это приведёт к тому, что содержимое, которое ранее отображалось в СТАРАЯ_ДИРЕКТОРИЯ, теперь будет доступно в НОВАЯ_ДИРЕКТОРИЯ. Физическое расположение файлов не меняется. Обратите внимание, что СТАРАЯ_ДИРЕКТОРИЯ должен быть точкой монтирования.

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

findmnt -o TARGET,PROPAGATION

Как перемонтировать диск

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

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

Команда перемонтирования имеет общий вид:

sudo mount ОПЦИИ -o remount /ТОЧКА/МОНТИРОВАНИЯ

К примеру, чтобы перемонтировать диск, смонтированный в /mnt/disk_d, установив права доступа на «только для чтения»:

sudo mount -r -o remount /mnt/disk_d

Можно также указать одновременно устройство и точку монтирования:

sudo mount ОПЦИИ -o remount /dev/УСТРОЙСТВО /ТОЧКА/МОНТИРОВАНИЯ

Пример перемонтирования корневой файловой системы с опцией «чтение и запись»:

mount -rw -o remount /

Опция «чтение и запись» может быть помещена в опцию строки команды -o, например:

mount -o remount,rw /dev/УСТРОЙСТВО /ТОЧКА/МОНТИРОВАНИЯ

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

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

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

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

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

Просмотр информации о блочных устройствах

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

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

Отсюда возникает вопрос, как узнать имя раздела для монтирования? Устройства в Linux имеют имена вида /dev/*. Большинство дисков и USB накопителей имеют имена вида /dev/sd*, где в качестве * (звёздочки) используются буквы от a и далее, то есть b, c, d… Номер буквы соответствует порядковому номеру диска в системе. Если диск разбит на разделы, то после буквы идёт цифра раздела, например, /dev/sda1, /dev/sda2 и так далее. Если диск не разбит на разделы, то его можно смонтировать по имени без цифры, например, /dev/sda. Если же диск разбит на разделы, то нужно указать его имя с цифрой раздела, например, /dev/sda3.

В зависимости от используемой технологии дисков, у них могут быть другие имена. Пример имени диска NVMe: /dev/nvme0n1. В этом случае нумерация разделов также не подчиняется описанным выше правилам, первый и второй разделы имеют имена /dev/nvme0n1p1 и /dev/nvme0n1p2 соответственно.

Смотрите также: Что такое диски NVMe и стоит ли их покупать?

Итак, необходимо правильно определить имя диска (или имя раздела, если диск разбит на разделы).

Обзорную информацию о дисках в системе может дать команда:

smartctl --scan

Пример вывода:

/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d sat # /dev/sdb [SAT], ATA device
/dev/nvme0 -d nvme # /dev/nvme0, NVMe device

Эта команда показала, что в системе есть диски трёх типов: SCSI (внутренний жёсткий диск), [SAT], ATA (жёсткий диск, подключённый по USB переходнику к компьютеру), NVMe (внутренний твердотельный диск).

На самом деле, вывод команды неполный (пропущена USB флешка) и в нём полностью отсутствует информация о разделах. Тем не менее она может помочь вам сориентироваться в присутствующих на вашей системе дисках.

Хорошим вариантом является следующая программа:

fdisk -l

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

Если вы всё равно не можете разобраться, то со съёмными носителями (внешними USB дисками и флешками), вы можете поступить так: выполнить команду fdisk -l до подключения диска, затем подключить диск/флешку, выполнить команду fdisk -l ещё раз и посмотреть, какой диск добавился.

Если диск монтируется автоматически, то его имя можно увидеть с помощью команда мониторинга:

findmnt -p

Ещё одна команда, показывающая обзорную информацию об именах дисках, их файловых системах, ярлык и занятое пространство (в процентах) и доступный объём свободного места (в гигабайтах):

lsblk -f

Возможно вы сможете найти полезную информацию в LABEL разделов, чтобы показать сразу все разделы, выполните:

blkid

Если вы уже почти определились с разделом и хотите подтвердить свою правоту, то информацию по конкретному разделу можно получить командой вида:

blkid /dev/РАЗДЕЛ

Пример вывода:

/dev/sdb4: BLOCK_SIZE="512" UUID="CA966DBC966DA9A1" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="19fe120d-27b7-40a1-87a0-010d03a2f20e"

Команда file также может рассказать много интересного про раздел:

file -sL /dev/РАЗДЕЛ

Пример вывода:

/dev/sdb4: DOS/MBR boot sector, code offset 0x52+2, OEM-ID "NTFS    ", sectors/cluster 8, Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 1323008, dos < 4.0 BootSector (0x80), FAT (1Y bit by descriptor); NTFS, sectors/track 63, sectors 248745983, $MFT start cluster 786432, $MFTMirror start cluster 2, bytes/RecordSegment 2^(-1*246), clusters/index block 1, serial number 0ca966dbc966da9a1; contains bootstrap BOOTMGR

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

2. Монтирование образов дисков и доступ к файлам на них

Как просмотреть информации об образах для монтирования. Как определить файловую систему образа

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

Пример проверки файла test.image:

file /mnt/disk_d/test.image

Вывод:

/mnt/disk_d/test.image: ISO 9660 CD-ROM filesystem data 'ARCH_202010' (bootable)

Это ISO образ.

Пример анализа образа disk.ntfs:

file /mnt/disk_d/disk.ntfs

Вывод:

/mnt/disk_d/disk.ntfs: DOS/MBR boot sector, code offset 0x52+2, OEM-ID "NTFS    ", sectors/cluster 8, Media descriptor 0xf8, sectors/track 63, heads 255, dos < 4.0 BootSector (0x0), FAT (1Y bit by descriptor); NTFS, sectors/track 63, physical drive 0x80, sectors 15654911, $MFT start cluster 786432, $MFTMirror start cluster 2, bytes/RecordSegment 2^(-1*246), clusters/index block 1, serial number 06258074758071a05; contains bootstrap BOOTMGR

Как можно убедиться, это образ с файловой системой NTFS.

Проверка образа rootfs.sfs:

file /mnt/disk_d/rootfs.sfs

Вывод:

/mnt/disk_d/rootfs.sfs: Squashfs filesystem, little endian, version 4.0, zstd compressed, 625010200 bytes, 58466 inodes, blocksize: 262144 bytes, created: Sat Jun  6 08:14:32 2020

Это образ с файловой системой Squashfs.

Анализ образа ext3-img-kw-1.dd:

file /mnt/disk_d/ext3-img-kw-1.dd

Вывод:

/mnt/disk_d/ext3-img-kw-1.dd: Linux rev 1.0 ext3 filesystem data, UUID=e2307119-024a-427f-bd74-dbe8a95687a6, volume name "KW_SEARCH"

Это образ с файловой системой ext3.

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

sudo dd if=/dev/sdc of=/mnt/disk_d/disk.ntfs

В этой команде утилита dd считывает содержимое диска /dev/sdc и сохраняет его в файл /mnt/disk_d/disk.ntfs. Помните, что программа dd считывает не файлы, а байты со всего диска. Поэтому получаемый образ по размеру будет равен диску (разделу) с которого он был сделан, независимо от заполненности этого диска. То есть если флешка размером 8 Гигабайт и на ней ничего не записано, то всё равно получится образ размером 8 Гигабайт.

Связанная статья: Инструкция по использованию команды dd

Вы также можете перейти на страницу http://dftt.sourceforge.net/ — на ней есть ссылки на уроки, с которых вы можете скачать образы самых разных файловых систем.

Как смонтировать файл образа диска (раздела)

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

mount ОПЦИИ ОБРАЗ ДИРЕКТОРИЯ

В ней:

  • ОПЦИИ — опции утилиты mount или опции монтирования
  • ОБРАЗ — файл с образом диска
  • ДИРЕКТОРИЯ — папка, где будут доступны файлы со смонтированного устройства

По сути, синтаксис монтирования образов с помощью mount отличается от монтирования диска тем, что вместо УСТРОЙСТВА указывается путь до ОБРАЗА. ОПЦИИ указывать необязательно, тип файловой системы будет определён автоматически.

К примеру, нужно смонтировать образ диска disk.ntfs, расположенный по пути /mnt/disk_d/disk.ntfs.

Начнём с создания временной точки монтирования в /tmp:

mkdir /tmp/disk

Монтируем образ /mnt/disk_d/disk.ntf в папку /tmp/disk:

sudo mount /mnt/disk_d/disk.ntfs /tmp/disk

Просмотрим содержимое образа disk.ntfs:

ls -l /tmp/disk

Мы можем видеть файлы, размещённые в образе disk.ntfs, их можно открывать и копировать.

Некоторые файловые системы (например, ISO образы) доступны только для чтения. Но в данном случае мы можем записать любые изменения в папку /tmp/disk и они сохраняться в файле disk.ntfs даже после размонтирования и повторного монтирования диска disk.ntfs.

Для размонтирования образа можно использовать любую из команд:

sudo umount /ПУТЬ/ДО/ОБРАЗА
sudo umount /ТОЧКА/МОНТИРОВАНИЯ/

Пример просмотра содержимого образов с помощью монтирования

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

Создадим папку для монтирования:

mkdir /tmp/iso

У меня установочный диск расположен по пути /mnt/disk_d/Share/manjaro-kde-20.0.3-200606-linux56.iso, а монтировать я его буду в /tmp/iso, тогда команда следующая:

sudo mount /mnt/disk_d/Share/manjaro-kde-20.0.3-200606-linux56.iso /tmp/iso

Получено следующее сообщение:

mount: /tmp/iso: WARNING: source write-protected, mounted read-only.

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

Посмотрим содержимое установочного диска:

ls -l /tmp/iso

Там среди прочего есть файл efi.img, проверим, какая у него файловая система:

file /tmp/iso/efi.img

Вывод:

/tmp/iso/efi.img: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, root entries 512, sectors 8192 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 6, sectors/track 32, heads 64, serial number 0xf3278f27, label: "MISO_EFI   ", FAT (12 bit)

Похоже, что это FAT.

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

mkdir /tmp/efi

И смонтируем файл /tmp/iso/efi.img в папку /tmp/efi:

sudo mount /tmp/iso/efi.img /tmp/efi

Теперь нам доступно содержимое этого файла:

ls -l /tmp/efi

Вернёмся к нашему смонтированному ISO образу и посмотрим содержимое папки manjaro/x86_64/:

ls -l /tmp/iso/manjaro/x86_64/

Крошечные файлы с расширением .md5 это просто контрольные суммы. Но файлы desktopfs.sfs, livefs.sfs, mhwdfs.sfs и rootfs.sfs интереснее. Они содержат основные файлы, необходимые для работы LIVE образа и установки дистрибутива Linux.

Мы можем посмотреть содержимое любого из этих файлов. Допустим, нас интересует desktopfs.sfs.

Создаём для него новую временную точку монтирования:

mkdir /tmp/desktopfs

И монтируем файл /tmp/iso/manjaro/x86_64/desktopfs.sfs в папку /tmp/desktopfs:

sudo mount /tmp/iso/manjaro/x86_64/desktopfs.sfs /tmp/desktopfs

Смотрим содержимое файла desktopfs.sfs:

ls -l /tmp/desktopfs

Вы можете самостоятельно смонтировать и изучить содержимое других образов .sfs на этом установочном диске. Либо для самостоятельных упражнений вы можете скачать установочный диск Linux Mint. Там образ файловой системы расположен в файле casper/filesystem.squashfs.

Что касается установочного диска Kali Linux, то там сопроводители дистрибутива не стали использовать образы, а просто разместили файлы внутри iso9660, то есть его не так интересно исследовать.

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

Структура записей в /etc/fstab

При включении компьютера с Linux диски уже смонтированы в системе: главный диск смонтирован в / (корень), загрузочный диск смонтирован в /boot, дополнительные диски смонтированы в /mnt/*. Информация для этих монтирвоаний содержится в файле /etc/fstab. Система автоматически монтирует диски на основании записей, содержащихся в файле /etc/fstab.

Файл fstab содержит описательную информацию о файловых системах, которые может монтировать система. fstab только читается программами, но не записывается; системный администратор обязан правильно создать и поддерживать этот файл. Порядок записей в fstab важен, потому что утилиты fsck, mount и umount последовательно выполняют итерацию через fstab, делая своё дело.

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

Ниже приведён типичный пример записи в fstab:

UUID=01e4d4f5-698f-4dc2-987b-270499457f48	/         	ext4      	rw,relatime	0 1

Первое поле (fs_spec).

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

Для обычных монтирований оно будет содержать (ссылку на) узел специального блочного устройства (созданный утилитой mknod) для монтируемого устройства, например, «/dev/cdrom» или «/dev/sdb7». Для монтирования NFS это поле — <host>:<dir>, например, «knuth.aeb.nl:/». Для файловых систем без хранилища можно использовать любую строку, которая будет отображаться, например, в выводе df. Обычно для procfs используется «proc»; а для tmpfs используются «mem», «none» или «tmpfs». Другие специальные файловые системы, такие как udev и sysfs, обычно не указываются в fstab.

Вместо имени устройства можно указать LABEL=<label> или UUID=<uuid>. Это рекомендуемый метод, поскольку имена устройств часто совпадают с порядком обнаружения оборудования и могут измениться при добавлении или удалении других дисков. Например, «LABEL=Boot» или «UUID=3e6be9de-8139-11d1-9106-a43f08d823a6». (Используйте инструмент, специфичный для файловой системы, например e2label, xfs_admin или fatlabel, чтобы установить LABEL в файловых системах).

Также можно использовать ARTUUID= и PARTLABEL=. Эти идентификаторы разделов поддерживаются, например, для таблицы разделов GUID (GPT).

Подробности смотрите в статье: Постоянные имена для файловых устройств

Чтобы узнать UUID всех дисков используйте любую из следующих команд:

findmnt --real -o TARGET,SOURCE,FSTYPE,UUID
mount | grep "^/dev"
blkid
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,UUID

Чтобы узнать UUID определённого диска, используйте любую из следующих команд:

findmnt --real -o TARGET,SOURCE,FSTYPE,UUID /dev/ДИСК
blkid /dev/ДИСК
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,UUID /dev/ДИСК

Обратите внимание, что mount использует UUID как строки. В документации сказано, что строковое представление UUID должно быть основано на символах нижнего регистра. Но по факту для некоторых дисков UUID состоит из букв в верхнем регистре — использование таких UUID с заглавными буквами не вызывает каких-либо проблем.

Второе поле (fs_file).

Это поле описывает точку монтирования (цель) для файловой системы. Для разделов подкачки это поле должно быть указано как «none». Если имя точки монтирования содержит пробелы или табуляции, их можно использовать как «\040» и «\011» соответственно.

Третье поле (fs_vfstype).

Это поле описывает тип файловой системы. Linux поддерживает множество типов файловых систем: ext4, xfs, btrfs, f2fs, vfat, ntfs, hfsplus, tmpfs, sysfs, proc, iso9660, udf, squashfs, nfs, cifs и многие другие.

Запись подкачки в этом поле должна содержать «swap».

Запись «none» полезна для привязки или перемещения монтирований.

Можно указать несколько типов в списке, разделённом запятыми.

mount и umount поддерживают подтипы файловых систем. Подтип определяется суффиксом «.subtype». Например, «fuse.sshfs». Рекомендуется использовать нотацию подтипа, а не добавлять префикс в первое поле fstab (например, «sshfs#example.com» является устаревшим).

Четвёртое поле (fs_mntops).

В этом поле описаны параметры монтирования, связанные с файловой системой.

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

Основные параметры, не зависящие от файловой системы:

defaults

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

noauto

не монтировать при использовании команды «mount -a» (например, во время загрузки)

user (пользователь)

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

owner (владелец)

позволяет монтировать указанному владельцу устройства

комментарий

или x-<name> для использования программами поддержки fstab

nofail

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

Пятое поле (fs_freq).

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

Шестое поле (fs_passno).

Это поле используется fsck для определения порядка, в котором выполняется проверка файловых систем во время загрузки. Корневая файловая система должна быть указана с fs_passno равным 1.

Для других файловых систем значение fs_passno должно быть равно 2. Файловые системы на диске будут проверяться последовательно, но файловые системы на разных дисках будут проверяться одновременно, чтобы использовать параллелизм, доступный на оборудовании. По умолчанию нулевое значение (не использовать fsck), если оно отсутствует.

Рассмотрим пример реального файла /etc/fstab на моей системе:

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/nvme0n1p2
UUID=01e4d4f5-698f-4dc2-987b-270499457f48	/         	ext4      	rw,relatime	0 1

# /dev/nvme0n1p1
UUID=7327-B4E4      	/boot     	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro	0 2
/dev/sda   /mnt/disk_d  ext4    rw,relatime 0   0

#/swapfile none swap defaults 0 0

Этот файл отчасти создан автоматически, отчасти дописан вручную.

Автоматическая часть была создана командой в соответствии с «Инструкцией по установке Arch Linux»:

genfstab -U -p /mnt >> /mnt/etc/fstab

Самая первая строка является комментарием и просто напоминает значение полей.

Затем строка «# /dev/nvme0n1p2» также является комментарием, она содержит удобное для восприятия имя диска, чтобы было проще ориентироваться, к какому диску относится последующая запись.

Следующая строка начинается с «UUID=01e4d4f5-698f-4dc2-987b-270499457f48» — это уникальный идентификатор диска. Вторым полем идёт «/», это означает, что диск смонтирован в корень файловой системы. Затем «ext4» указывает на тип файловой системы. Затем идут опции монтирования «rw,relatime». Затем идёт «0», означающий, что не нужно выгружать файловые системы. Последней идёт «1», означающая, что в случае возникновения проблем этот диск должен быть проверен первым.

Следующая строка вновь является комментарием, показывающим нам, к какому диску она относится «# /dev/nvme0n1p1».

Затем идёт идентификатор диска «UUID=7327-B4E4», обратите внимание, что он намного короче предыдущего — видимо, зависит от файловой системы. Затем идёт точка монтирования «/boot», то есть это загрузочный раздел, который монтируется в указанную папку. Далее тип файловой системы «vfat». Затем опции монтирования «rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro» — все опции монтирования будут рассмотрены в конце данной статьи, поэтому не будем на них останавливаться. Затем идёт «0», означающий, что не нужно выгружать файловые системы, затем идёт «2», означающая, что диск должен быть проверен вторым.

На этом заканчивается автоматически сгенерированная часть и начинается часть дописанная мною вручную.

После установки системы, второй внутренний диск мной был отформатирован в файловую систему ext4, у этого диска название /dev/sda и он смонтирован в директорию /mnt/disk_d с опциями «rw,relatime». Вместо имени диска /dev/sda можно указать его UUID — но это не критично.

Далее идёт закомментированная строка, подключающая файл подкачки «#/swapfile none swap defaults 0 0». Поскольку строка закомментированна, это означает, что файл подкачки не используется.

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

Управление опциями монтирования с помощью /etc/fstab

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

К примеру, у меня есть внешний USB диск, который при подключении к компьютеру по умолчанию монтируется в «/run/media/mial/Новый том».

Мне такое название точки монтирования не нравится, я хочу, чтобы именно этот диск монтировался в /mnt/disk_e (как на моём старом компьютере это был диск E:\).

В этом случае мне нужно отмонтировать диск и заново его монтировать примерно следующей командой:

sudo mount -t ntfs -o rw,utf8 /dev/sdc1 /mnt/disk_e

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

sudo gedit /etc/fstab

Мне необходимо узнать UUID данного диска (поскольку при подключении он иногда получает имя /dev/sdc1, иногда /dev/sdd1 или другие, например, если к компьютеру уже подключены другие диски или флешки). UUID диска можно узнать например так:

blkid /dev/sdc1

Вывод:

dev/sdc1: LABEL="M-PM-^]M-PM->M-PM-2M-QM-^KM-PM-9 M-QM-^BM-PM->M-PM-<" BLOCK_SIZE="512" UUID="26FC3023FC2FEC2D" TYPE="ntfs" PARTUUID="fd8237ec-01"

Теперь в файл /etc/fstab я добавляю следующие строки:

# /dev/sdc1 1.5 ТБ внешний USB
UUID=26FC3023FC2FEC2D	/mnt/disk_e	ntfs	nofail,rw,utf8	0	0

Первая из них — комментарий, который напомнит мне, к чему относится эта запись.

Затем идёт строка, с описанными выше полями. В первом поле я идентифицирую диск — я использую не его имя, а UUID, поскольку имя устройства может меняться. Затем указываю точку монтирвоания (/mnt/disk_e). Затем тип файловой системы (ntfs). Затем идут опции, обратите внимание, что ОБЯЗАТЕЛЬНО нужно добавить опцию nofail, иначе если этот диск не подключён к компьютеру во время загрузки, компьютер может вовсе не загрузиться из-за ошибки в файле /etc/fstab. Затем идут ещё две цифры необязательных полей (отмена выгрузки файловых систем и отмена проверки).

Теперь в любое время при подключении этого диска он будет автоматически смонтирован в /mnt/disk_e. Это можно проверить с помощью команды:

findmnt --real

Примечание: вы можете обратить внимание, что опции монтирования из файла /etc/fstab и опции монтирования на скриншоте не совпадают. Дело в том, что программа mount может использовать программы-помогатели, которые фактически и выполняют монтирования. При вызове программ-помогателей некоторые опции могут теряться или игнорироваться программой, которая в конечном счёте выполняет монтирование. По этой же причине, кстати, вместо файловой системы ntfs указана fuseblk — это означает, что работу по монтированию диска выполнила FUSE.

Смотрите также: Что такое FUSE. Что такое файловая система fuseblk

Ещё одним следствием описания монтирования в файле /etc/fstab является то, что для указанных там дисков можно использовать сокращённую команду монтирования — указывая только точку монтирования или только имя устройства, например:

sudo mount /mnt/disk_e

Эта команда сработает как надо, смонтировав диск /dev/sdc1 в /mnt/disk_e — недостающие сведения и опции монтирования будут взяты из /etc/fstab.

Смотрите также Опции монтирования для ntfs.

Проверка файла /etc/fstab

Для проверки записей в файле /etc/fstab используйте команду

findmnt --verify

На скриншоте можно увидеть, что диск с UUID равным 26FC3023FC2FEC2D является недоступным (unreachable). Это может означать, что запись в файле /etc/fstab имеет ошибку. Но в данном случае диск с UUID=26FC3023FC2FEC2D — это съёмный диск, для его монтирования указана опция nofail (не вызывать фатальную ошибку, даже если диск отсутствует), поэтому предупреждение можно проигнорировать.

Для вывода более подробной информации добавьте опцию —verbose:

findmnt --verify --verbose

Все пункты успешно прошли проверку, рассмотрим более подробно записи проблемного диска:

/mnt/disk_e
   [ ] target exists
   [ ] VFS options: rw
   [ ] FS options: utf8
   [ ] userspace options: noauto,nofail
   [W] unreachable: UUID=26FC3023FC2FEC2D

Они означают:

  • /mnt/disk_e — точка монтирования
  • [ ] target exists — целевая папка (точка монтирования), существуют, то есть директория /mnt/disk_e имеется в системе
  • [ ] VFS options: rw — найдена такая опция монтирования как rw, то есть диск монтируется для чтения и для записи. VFS — это опции ядра, системных вызовов. Эти опции одинаковы для всех файловых систем.
  • [ ] FS options: utf8 — найдена опция, специфичная для данной файловой системы. Этой опцией является utf8, то есть для преобразования имён файлов будет использоваться кодировка UTF-8.
  • [ ] userspace options: noauto,nofail — здесь перечислены опции пользовательского пространства. Опция noauto означает не монтировать автоматически, а опция nofail означает не сообщает об ошибках для этого устройства, если оно не существует — эта опция важна для съёмных носителей и сетевых дисков, которые могут отсутствовать во время загрузки компьютера.

4. Доступ к содержимому дисков виртуальных машин и их изменение

Мы рассмотрели монтирование обычных дисков в файловую систему. Затем мы рассмотрели монтирование образов дисков в файловую систему. Теперь мы рассмотрим монтирование дисков виртуальных машин в файловую систему. На самом деле, последняя тема стоит особняком от уже рассмотренных вопросов — она не имеет отношения к команде mount (хотя поддержка файловых систем виртуальных дисков нужна чтобы можно было работать с ними).

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

Для работы с образами виртуальных машин необходим пакет libguestfs.

libguestfs — это набор инструментов для доступа и изменения образов дисков виртуальных машин (ВМ). Вы можете использовать его для просмотра и редактирования файлов внутри гостей, создания сценариев для изменений виртуальных машин, мониторинга статистики использования/свободного диска, создания гостей, P2V, V2V, выполнения резервного копирования, клонирования виртуальных машин, создания виртуальных машин, форматирования дисков, изменения размера дисков и многого другого.

libguestfs может получить доступ практически к любому образу диска, который только можно вообразить. Он может делать это безопасно — без необходимости root и с несколькими уровнями защиты от вредоносных образов дисков. Он может получить доступ к образам дисков на удалённых машинах или на компакт-дисках/USB-накопителях. Он может получить доступ к проприетарным системам, таким как VMware и Hyper-V.

Все эти функции доступны через оболочку с поддержкой сценариев под названием guestfish или интерактивную спасательную оболочку virt-rescue.

libguestfs — это библиотека C, которая может быть связана с программами управления C и C++ и имеет привязки примерно для десятка других языков программирования. Используя модуль FUSE, вы также можете монтировать гостевые файловые системы на хосте.

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

Для установки в Debian, Kali Linux, Linux Minut, Ubuntu и их производные выполните:

sudo apt install libguestfs-tools

Для установки в Arch Linux, Manjaro, BlackArch и их производные выполните:

sudo pacman -S libguestfs

Данный пакет включает в себя большое количество утилит:

  • guestfs — главная документация по API
  • guestfish — интерактивный шелл
  • guestmount — монтирует файловую систему гостевой машины в основную
  • guestunmount — размонтирует гостевую файловую систему
  • virt-alignment-scan — проверить выравнивание разделов виртуальной машины
  • virt-builder — быстрый построитель образов
  • virt-builder-repository — создаёт репозитории virt-builder
  • virt-cat — показывает файл
  • virt-copy-in — копирует файлы и директории в виртуальную машину
  • virt-copy-out — копирует файлы и директории из виртуальной машины
  • virt-customize — настраивает виртуальные машины
  • virt-df — показывает свободное место на виртуальных дисках
  • virt-dib — безопасный diskimage-builder
  • virt-diff — показывает разницу между виртуальными дисками
  • virt-edit — редактирует файл
  • virt-filesystems — показывает информацию о файловых системах, устройствах, LVM
  • virt-format — стирает и делает пустые диски
  • virt-get-kernel — получает ядро с диска
  • virt-inspector — инспектирует образы виртуальных машин
  • virt-list-filesystems — выводит список файловых систем
  • virt-list-partitions — выводит список разделов дисков
  • virt-log — показывает файлы журналов
  • virt-ls — показывает список файлов
  • virt-make-fs — создаёт файловую систему
  • virt-p2v — конвертирует физическую машину для запуска на KVM
  • virt-p2v-make-disk — делает P2V ISO
  • virt-p2v-make-kickstart — делает P2V kickstart
  • virt-rescue — спасательный шелл
  • virt-resize — изменяет размер виртуальных машин
  • virt-sparsify — сделать виртуальные машины разреженными (с тонким предоставлением)
  • virt-sysprep — отключает виртуальную машину перед клонированием
  • virt-tail — показывает изменения в файле журнала
  • virt-tar — архивирует и выгружает файлы
  • virt-tar-in — архивирует и выгружает файлы
  • virt-tar-out — архивирует и загружает файлы
  • virt-v2v — конвертирует гостевую машину для запуска на KVM
  • virt-win-reg — экспортирует и объединяет ключи реестра Window
  • libguestfs-test-tool — тест libguestfs
  • libguestfs-make-fixed-appliance — сделать libguestfs фиксированным устройством
  • hivex — извлекает куст реестра Windows
  • hivexregedit — объединяет и экспортирует изменения в реестре из файлов в формате regedit
  • hivexsh — оболочка кустов реестра Windows
  • hivexml — конвертирует куст реестра Windows в XML
  • hivexget — извлекает данные из куста реестра Windows
  • supermin — инструмент для создания supermin. Это крошечные устройства (похожие на виртуальные машины), обычно размером около 100 КБ, которые полностью создаются на лету за доли секунды, когда вам нужно загрузить одно из них.
  • guestfsd — демон guestfs

Ключевыми являются программы:

  • guestmount — монтирует файловую систему гостевой машины в основную
  • guestunmount — размонтирует гостевую файловую систему

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

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

Типичная команда монтирования виртуального диска:

guestmount -a '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА' -i --ro /ТОЧКА/МОНТИРОВАНИЯ

После опции -a нужно указать виртуальный диск для монтирования.

Рассмотрим ещё несколько опций:

Опция -i (—inspector) означает использовать код virt-inspector для проверки дисков в поисках операционной системы и монтирование файловых систем, как если бы они были смонтированы на реальной виртуальной машине.

Опция —live позволяет подключиться к работающей виртуальной машине, эта опция является экспериментальной.

Опция -r (—ro) добавляет устройство и монтирует всё только для чтения. Также запрещает запись и делает диск доступным только для чтения для FUSE. Это настоятельно рекомендуется, если вы не собираетесь редактировать гостевой диск. Если гость работает, а эта опция не указана, существует высокий риск повреждения диска в гостевой системе.

Опция -w (—rw) изменяет параметры -a, -d и -m, так что диски добавляются, а монтирование выполняется для чтения-записи.

Итак, смонтируем диск виртуальной машины Windows Server 2019.vdi.

Создадим точку монтирования:

mkdir /tmp/guest

Монтируем диск /mnt/disk_d/Виртуальные машины/Windows Server 2019.vdi в папку /tmp/guest:

guestmount -a '/mnt/disk_d/Виртуальные машины/Windows Server 2019.vdi' -i --ro /tmp/guest

Смотрим содержимое смонтированного диска:

ls -l /tmp/guest

Теперь посмотрим содержимое папки C:/Users/Администратор/Downloads/:

ls -l /tmp/guest/Users/Администратор/Downloads/

Для размонтирования используется команда вида:

guestunmount /ТОЧКА/МОНТИРОВАНИЯ

Например:

guestunmount /tmp/guest

Извлечение кустов реестра Windows

С помощью virt-win-reg можно извлекать кусты реестра Windows, в том числе те, которые доступны только для учётной записи System.

Общий вид команды:

virt-win-reg '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА' 'ИМЯ\КУСТА'

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

Например, команда для извлечения куста HKEY_LOCAL_MACHINE\SYSTEM из операционной системы Windows, чей виртуальный диск расположен в /mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi и сохранение полученных данных в файл SYSTEM.reg:

virt-win-reg '/mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi' 'HKEY_LOCAL_MACHINE\SYSTEM' > SYSTEM.reg

Ещё один пример, извлечение куста реестра HKEY_LOCAL_MACHINE\SAM из образа диска /mnt/disk_d/Виртуальные машины/Windows Server 2019.vdi и сохранение данных в файл SAM.reg:

virt-win-reg '/mnt/disk_d/Виртуальные машины/Windows Server 2019.vdi' 'HKEY_LOCAL_MACHINE\SAM' > SAM.reg

Смотрите также «Анализ реестра Windows».

Просмотр свободного места

Программа virt-df покажет разделы дисков и количество свободного места на них.

Общий вид команды:

virt-df '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА'

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

virt-df '/mnt/disk_d/Виртуальные машины/Linux LMDE.vdi'

Пример вывода для ОС Linux:

Файловая система     Блоки 1К Использовано Доступно Использование, %
Linux LMDE.vdi:/dev/sda1                292272       5220     287052    2%
Linux LMDE.vdi:/dev/sda3              96241020    6280016   85029116    7%

Ещё один пример команды:

virt-df '/mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi'

Пример вывода для ОС Windows:

Файловая система     Блоки 1К Использовано Доступно Использование, %
Windows 10 (en).vdi:/dev/sda1           541692     436548     105144   81%
Windows 10 (en).vdi:/dev/sda2            97280      27139      70141   28%
Windows 10 (en).vdi:/dev/sda4        156624892   26634932  129989960   18% 

Обратите внимание, что разделы в Windows названы по аналогии с разделами Linux.

Анализ виртуальных дисков

Команда virt-inspector проведёт анализ файловых систем и покажет установленные программы, а также некоторую другую информацию об операционных системах.

Общий вид команды:

virt-inspector -a '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА'

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

virt-inspector -a '/mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi'
virt-inspector -a '/mnt/disk_d/Виртуальные машины/Linux LMDE.vdi'

Вывод списка файлов

Вы можете посмотреть содержимое любой папки на виртуальном диске с помощью virt-ls.

Общий вид команды:

virt-ls -a '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА' '/ПАПКА'

Обратите внимание, что даже в Windows путь начинается с / (обозначение корневой папки).

Следующая команда покажет содержимое корня диска C: для виртуального диска /mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi:

virt-ls -a '/mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi' '/'

Пример вывода:

$Recycle.Bin
$WinREAgent
Documents and Settings
DumpStack.log.tmp
PerfLogs
Program Files
Program Files (x86)
ProgramData
Recovery
System Volume Information
Users
Windows
pagefile.sys
swapfile.sys

Просмотр содержимого файла

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

Общий вид команды:

virt-cat -a '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА' '/ПАПКА/ФАЙЛ'

Обратите внимание, что даже в Windows путь начинается с / (обозначение корневой папки).

Следующая команда покажет содержимое файла C:\DumpStack.log.tmp из виртуального диска /mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi:

virt-cat -a '/mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi' '/DumpStack.log.tmp'

Просмотр разделов дисков

Программа virt-filesystems просто покажет количество разделов дисков и их номера.

Общий вид команды:

virt-filesystems -a '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА'

Пример команды и вывода для Windows:

virt-filesystems -a '/mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi'
/dev/sda1
/dev/sda2
/dev/sda4

Пример команды и вывода для Linux:

virt-filesystems -a '/mnt/disk_d/Виртуальные машины/Linux LMDE.vdi' 
/dev/sda1
/dev/sda3

5. Файловая система в оперативной памяти

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

tmpfs — это виртуальная файловая система, располагающаяся в оперативной памяти.

Средство tmpfs позволяет создавать файловые системы, содержимое которых находится в виртуальной памяти. Поскольку файлы в таких файловых системах обычно находятся в ОЗУ, доступ к файлам осуществляется очень быстро.

Файловая система создаётся автоматически при монтировании файловой системы с типом tmpfs с помощью следующей команды:

sudo mount -t tmpfs -o size=10M tmpfs /mnt/mytmpfs

Файловая система tmpfs имеет следующие свойства:

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

Если файловая система tmpfs размонтирована, её содержимое теряется (удаляется).

Вы можете скопировать в tmpfs файлы для максимально быстрого доступа. Это могут быть файлы баз данных или веб-сервера.

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

Ещё одна возможная причина использование — незаметность, при работе в tmpfs всё будет происходить в оперативной памяти, а на постоянных хранилищах не останется никаких следов.

Рассмотрим пример копирования файлов — насколько быстрее это будет происходить в tmpfs по сравнению с дисками.

Создадим точку монтирования:

mkdir /tmp/mytmpfs

Создадим виртуальную файловую систему размером 20 Гигабайт в оперативной памяти:

sudo mount -t tmpfs -o size=20g tmpfs /tmp/mytmpfs

Скопируем туда файл размером в несколько Гигабайт:

cp /mnt/disk_d/Vuse/Space.Cop.2016.L2.BDRip.720p.mkv /tmp/mytmpfs

Проверим, сколько времени понадобится для создания копии этого файла в оперативной памяти:

time cp /tmp/mytmpfs/Space.Cop.2016.L2.BDRip.720p.mkv /tmp/mytmpfs/copy.mkv

Результат:

real	0m1,403s
user	0m0,020s
sys	0m1,381s

Понадобилось совсем немного времени — примерно полторы секунды.

А теперь сделаем копию этого же файла на жёстком диске:

time cp /mnt/disk_d/Vuse/Space.Cop.2016.L2.BDRip.720p.mkv /mnt/disk_d/Vuse/copy.mkv

Результат:

real	0m14,463s
user	0m0,065s
sys	0m4,041s

Понадобилось 14 секунд — в 10 раз больше времени.

Итак, используя tmpfs можно добиться максимальной скорости доступа к файлам.

Смотрите также Опции монтирования для tmpfs.

6. Автоматическое монтирование и его отключение

Включение и отключение автоматического монтирования на уровне графического окружения рабочего стола

Если подключить к компьютеру с Linux флешку или внешний USB диск, то система его автоматически смонтирует и откроет окно файлового менеджера. Причём окно будет открыто даже если у вам это не нужно и даже если у вас уже открыто окно файлового менеджера. Это довольно раздражительно.

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

Чтобы это отключить, установите пакет dconf-editor.

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

sudo apt install dconf-editor

Для установки в Arch Linux и производные:

sudo pacman -S dconf-editor

После установки запустите в консоли:

dconf-editor

Для Cinnamon перейдите в пункты: org -> cinnamon -> desktop -> media-handling. И отключите automount-open:

Для GNOME перейдите в пункты: org -> gnome -> desktop -> media-handling. И отключите automount-open.

Для Xfce4 перейдите в пункты: org -> gnome -> desktop -> media-handling. И отключите automount-open.

Обратите внимание на то, что программа dconf-editor запускается без sudo. Если вы запустите её с sudo, то сделанная настройка будто бы не сработает. На самом деле, эта настройка будет установлена на пользователя root, а не для вашего пользователя.

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

Для Cinnamon:

gsettings set org.cinnamon.desktop.media-handling automount-open false

Для GNOME:

gsettings set org.gnome.desktop.media-handling automount-open false

Для Xfce4:

gsettings set org.gnome.desktop.media-handling automount-open false

Как отключить автоматическое монтирование дисков

Если вам не нужно автоматическое монтирование дисков вообще, то его также можно отключить.

Чтобы это сделать с помощью dconf-editor, для Cinnamon перейдите в пункты: org -> cinnamon -> desktop -> media-handling. И отключите automount.

Для GNOME перейдите в пункты: org -> gnome -> desktop -> media-handling и отключите automount.

Для Xfce4 перейдите в пункты: org -> gnome -> desktop -> media-handling и отключите automount.

Отключение в командной строке.

Для Cinnamon:

gsettings set org.cinnamon.desktop.media-handling automount false

Для GNOME:

gsettings set org.gnome.desktop.media-handling automount false

Для Xfce4:

gsettings set org.gnome.desktop.media-handling automount false

Включение и отключение автоматического монтирования на уровне udev

[В ПРОЦЕССЕ ПОДГОТОВКИ]

Автоматическое монтирование с помощью udisks2 и udiskie

[В ПРОЦЕССЕ ПОДГОТОВКИ]

7. Монтирование сетевых файловых систем

Примеры монтирования сетевых файловых систем вы найдёте по следующим ссылкам:

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

8. Опции команды mount и опции монтирования

Опции команды mount

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

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

-a, —all

Смонтировать все файловые системы (указанных типов), упомянутые в fstab (кроме тех, чья строка содержит ключевое слово noauto). Файловые системы монтируются в соответствии с их порядком в fstab. Команда mount сравнивает источник файловой системы, цель (и корень fs для bind mount или btrfs) для обнаружения уже смонтированных файловых систем. Таблица ядра с уже смонтированными файловыми системами кэшируется во время монтирования —all. Это означает, что все повторяющиеся записи 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. Настоятельно рекомендуется не использовать этот параметр командной строки для обычных операций монтирования.

Обратите внимание, что mount не передаёт эту опцию помощникам /sbin/mount.ТИП.

-F, —fork

(Используется вместе с -a.) Разветвляет новое воплощение mount для каждого устройства. Это позволит выполнять монтирование на разных устройствах или на разных серверах NFS параллельно.

Эта опция имеет преимущество в скорости; также таймауты NFS продолжаются параллельно. Недостатком является то, что порядок операций монтирования не определён. Таким образом, вы не можете использовать эту опцию, если хотите монтировать и /usr и /usr/spool.

-f, —fake

Делает все, кроме самого системного вызова; проще говоря, это подделка монтирования файловой системы. Эта опция полезна вместе с флагом -v, чтобы определить, что пытается сделать команда монтирования. Её также можно использовать для добавления записей для устройств, которые были смонтированы ранее с параметром -n. Параметр -f проверяет наличие существующей записи в /etc/mtab и завершается ошибкой, если запись уже существует (при обычном монтировании без подделки эта проверка выполняется ядром).

-i, —internal-only

Не вызывать помощник /sbin/mount.ФАЙЛОВАЯ-СИСТЕМА, даже если он существует.

-L, —label МЕТКА

Скопировать раздел, имеющий указанную метку.

-l, —show-labels

Добавляет метки в вывод монтирования. Для этого у mount должно быть разрешение на чтение с дискового устройства (например, root-идентификатор пользователя). Такую метку можно установить для ext2, ext3 и ext4 с помощью утилиты e2label, для XFS с помощью xfs_admin и для reiserfs с помощью reiserfstune.

-M, —move

Переместить поддерево в другое место. Смотрите выше подраздел «Перемещение точки монтирования».

-n, —no-mtab

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

-N, —namespace ns

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

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

Смотрите mount_namespaces для получения дополнительной информации.

-O, —test-opts opts

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

mount -a -O no_netdev

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

Она отличается от -t тем, что каждый параметр соответствует точно; ведущее «no» в начале одного варианта не отменяет остальных.

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

mount -a -t ext2 -O _netdev

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

-o, —options ОПЦИИ

Использовать указанные параметры монтирования. Аргумент ОПЦИИ представляет собой список, разделённый запятыми. Например:

mount LABEL=mydisk -o noatime,nodev,nosuid

—options-mode РЕЖИМ

Управляет тем, как комбинировать параметры из fstab/mtab с параметрами из командной строки. РЕЖИМ может быть одним из ignore (игнорирования), append (добавления), prepend (добавления перед) или replace (замены). Например, append означает, что параметры из fstab добавляются к параметрам из командной строки. Значение по умолчанию — prepend — это означает, что параметры командной строки оцениваются после параметров fstab. Обратите внимание, что последний вариант выигрывает, если есть конфликтующие.

—options-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.

-s

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

—source УСТРОЙСТВО

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

—target ДИРЕКТОРИЯ

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

—target-prefix ДИРЕКТОРИЯ

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

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

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

-T, —fstab ПУТЬ

Задаёт альтернативный файл fstab. Если ПУТЬ — это каталог, то файлы в каталоге сортируются с помощью strverscmp; файлы, начинающиеся с "." или без расширения .fstab игнорируются. Опция может быть указана более одного раза. Этот параметр в основном разработан для сценариев initramfs или chroot, где указывается дополнительная конфигурация помимо стандартной конфигурации системы.

Обратите внимание, что mount не передаёт параметр —fstab помощникам /sbin/mount.ТИП, что означает, что альтернативные файлы 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 поддерживают подтипы файловых систем. Подтип определяется суффиксом «.subtype». Например, «fuse.sshfs». Рекомендуется использовать обозначение подтипа вместо добавления префикса к источнику монтирования (например, «sshfs#example.com» является устаревшим).

Если опция -t не указана или указан тип auto, mount попытается угадать желаемый тип. Mount использует библиотеку blkid для определения типа файловой системы; если при этом не появится ничего знакомого, 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, — это выполнить простой системный вызов mount, и никаких подробных знаний о типе файловой системы не требуется. Однако для некоторых типов (таких как nfs, nfs4, cifs, smbfs, ncpfs) необходим специальный код. Файловые системы nfs, nfs4, cifs, smbfs и ncpfs имеют отдельную программу монтирования. Чтобы можно было обрабатывать все типы единообразно, mount будет выполнять программу /sbin/mount.ТИП (если она существует) при вызове с типом ТИП. Поскольку разные версии программы smbmount имеют разные соглашения о вызовах, /sbin/mount.smbfs может быть сценарием оболочки, который устанавливает желаемый вызов.

-U, —uuid uuid

Монтирует раздел с указанным uuid.

-v, —verbose

Подробный режим.


-w, —rw, —read-write

Монтирует файловую систему для чтения/записи. Чтение-запись — это значение по умолчанию ядра, а монтировании по умолчанию только для чтения выполняется при попытке монтирования, если предыдущий системный вызов монтирования с флагами чтения-записи на защищённых от записи устройствах файловых систем завершился неудачно.

Синоним -o rw.

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

-V, —version

Показать информацию о версии и выйти.

-h, —help

Показать текст справки и выйти.

Опции монтирования, не зависящие от файловой системы

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

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

tune2fs -l /dev/РАЗДЕЛ

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

async

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

atime

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

Смотрите также «Время создания, доступа и изменения файла: что это, как их узнать и изменить. Как найти файлы по их времени создания, изменения или последнему открытию».

noatime

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

auto

Может быть смонтирован при запуске mount с опцией -a.

noauto

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

context=КОНТЕКСТ, fscontext=КОНТЕКСТ, defcontext=КОНТЕКСТ и rootcontext=КОНТЕКСТ

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

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

Два других параметра — это fscontext= и defcontext=, они оба исключают параметр context=. Это означает, что вы можете использовать fscontext и defcontext друг с другом, но ни один из них не может использоваться с context.

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

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

Параметр rootcontext= позволяет вам явно пометить корневой индексный узел монтируемой файловой системы до того, как эта файловая система или индексный узел станет видимым для пользовательского пространства. Это оказалось полезным для таких вещей, как Linux без сохранения состояния.

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

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

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

Больше подробностей смотрите в справке по selinux.

defaults

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

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

dev

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

nodev

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

diratime

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

nodiratime

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

dirsync

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

exec

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

noexec

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

group

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

iversion

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

noiversion

Не увеличивать поле иноды i_version.

mand

Разрешить обязательную блокировку этой файловой системы. Смотрите fcntl.

nomand

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

_netdev

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

nofail

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

relatime

Обновить время доступа к inode относительно времени модификации или изменения. Время доступа обновляется, только если предыдущее время доступа было раньше, чем текущее время модификации или изменения.

(Подобно noatime, но не нарушает работу mutt или других приложений, которым необходимо знать, был ли файл прочитан с момента последнего изменения.)

Начиная с 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, syncfs или sync
  • неудалённый inode убирается из памяти
  • с момента записи i-node на диск прошло более 24 часов.

nolazytime

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

suid

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

nosuid

Не соблюдать биты set-user-ID и set-group-ID или возможности файла при выполнении программ из этой файловой системы.

silent

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

loud

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

owner

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

remount

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

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

Функциональность повторного монтирования соответствует стандартному способу работы команды 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 не найдена точка монтирования, то разрешено перемонтирование с неуказанным источником.

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

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

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

ro

Смонтировать файловую систему только для чтения.

rw

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

sync

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

user

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

nouser

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

users

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

X-*

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

x-*

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

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

X-mount.mkdir[=РЕЖИМ]

Разрешить создать целевой каталог (точку монтирования), если она ещё не существует. Необязательный аргумент РЕЖИМ определяет режим доступа к файловой системе, используемый для mkdir, в восьмеричной системе счисления. Режим по умолчанию — 0755. Эта функция поддерживается только для пользователей root или при монтировании без прав suid. Опция также поддерживается как x-mount.mkdir, эта нотация устарела с версии 2.30.

Опции монтирования, специфичные для файловых систем

В этом разделе перечислены параметры, относящиеся к конкретным файловым системам.

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

Какие опции поддерживаются немного зависит от работающего ядра.

Файловые системы ext4, ext3, ext2, ext

ext — это сложное расширение файловой системы minix. Она была полностью заменена второй версией расширенной файловой системы (ext2) и была удалён из ядра (в 2.1.21).

ext2 — это высокопроизводительная дисковая файловая система, используемая Linux для фиксированных дисков, а также съёмных носителей. Вторая расширенная файловая система была разработана как расширение расширенной файловой системы (ext).

ext3 — это журналируемая версия файловой системы ext2. Легко переключаться между ext2 и ext3.

ext4 — это набор обновлений для ext3, включая существенные улучшения производительности и надёжности, а также значительное увеличение ограничений на размер тома, файла и каталога.

Вторая, третья и четвёртая расширенные файловые системы, или, как их обычно называют, ext2, ext3 и ext4 — это файловые системы Linux, которые исторически были файловой системой по умолчанию для многих дистрибутивов Linux. Это файловые системы общего назначения, которые были разработаны для обеспечения расширяемости и обратной совместимости. В частности, файловые системы, ранее предназначенные для использования с файловыми системами ext2 и ext3, могут быть смонтированы с помощью драйвера файловой системы ext4, и действительно, во многих современных дистрибутивах Linux драйвер файловой системы ext4 настроен для обработки запросов монтирования для файловых систем ext2 и ext3.

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

Файловая система ext2 — это стандартная файловая система Linux. Начиная с Linux 2.5.46, для большинства параметров монтирования значение по умолчанию определяется суперблоком файловой системы. Установить их можно с помощью tune2fs.

acl|noacl

Поддержка списков контроля доступа POSIX (или нет). Смотрите страницу руководства по acl.

bsddf|minixdf

Задаёт поведение для системного вызова statfs. Поведение minixdf состоит в том, чтобы вернуть в поле f_blocks общее количество блоков файловой системы, в то время как поведение bsddf (которое является по умолчанию) заключается в вычитании служебных блоков, используемых файловой системой ext2 и недоступных для хранения файлов. Таким образом

mount /k -o minixdf; 
df /k; 
umount /k

Filesystem  1024-blocks   Used  Available  Capacity  Mounted on
/dev/sda6     2630655    86954   2412169      3%     /k

mount /k -o bsddf; 
df /k; 
umount /k

Filesystem  1024-blocks  Used  Available  Capacity  Mounted on
/dev/sda6     2543714      13   2412169      0%     /k

(Обратите внимание, что в этом примере показано, что можно добавить параметры командной строки к параметрам, указанным в /etc/fstab.)

check=none или nocheck

Во время монтирования проверка не выполняется. Это значение по умолчанию. Это быстро. Целесообразно время от времени вызывать e2fsck, например во время загрузки. Поведение не по умолчанию не поддерживается (параметры check=normal и check=strict были удалены). Обратите внимание, что эти параметры монтирования не должны поддерживаться, если драйвер ядра ext4 используется для файловых систем ext2 и ext3.

debug

Печать отладочной информации при каждом (повторном) монтировании.

errors={continue|remount-ro|panic}

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

grpid|bsdgroups и nogrpid|sysvgroups

Эти параметры определяют, какой идентификатор группы получает вновь созданный файл. Когда установлен grpid, он принимает идентификатор группы каталога, в котором он создан; в противном случае (по умолчанию) он принимает fsgid текущего процесса, если для каталога не установлен бит setgid, и в этом случае он берет gid из родительского каталога, а также получает установленный бит setgid, если это сам каталог.

grpquota|noquota|quota|usrquota

Параметр монтирования usrquota (то же, что и quota) включает поддержку пользовательских квот в файловой системе. grpquota включает поддержку групповых квот. Вам нужны утилиты quota, чтобы фактически включить систему квот и управлять ею.

nouid32

Отключает 32-битные UID и GID. Это сделано для взаимодействия со старыми ядрами, которые хранят и ожидают только 16-битные значения.

oldalloc или orlov

Использовать старый распределитель или распределитель Орлова для новых inodes. По умолчанию — orlov.

resgid=n и resuid=n

Файловая система ext2 резервирует определённый процент доступного пространства (по умолчанию 5%, смотрите mke2fs(8) и tune2fs(8)). Эти параметры определяют, кто может использовать зарезервированные блоки. (Примерно: тот, кто имеет указанный uid или принадлежит к указанной группе.)

sb=n

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

Дополнительные резервные суперблоки могут быть определены с помощью программы mke2fs с использованием опции -n для вывода на печать, где существуют суперблоки, предполагая, что mke2fs снабжён аргументами, которые соответствуют структуре файловой системы (например, размер блока, количество блоков на группу, sparse_super и т. д.) .

Номер блока здесь использует 1 k единиц. Таким образом, если вы хотите использовать логический блок 32768 в файловой системе с 4k блоками, используйте «sb=131072».

user_xattr|nouser_xattr

Поддержка «пользовательских» расширенных атрибутов (или нет).

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

Файловая система ext3 — это версия файловой системы ext2, в которую добавлено ведение журнала. Она поддерживает те же параметры, что и ext2, а также следующие дополнения:

journal_dev=devnum/journal_path=ПУТЬ

Когда старший/младший номер внешнего устройства журнала изменились, эти параметры позволяют пользователю указать новое местоположение журнала. Журнальное устройство идентифицируется либо по его новым старшим/младшим номерам, закодированным в devnum, либо по пути к устройству.

norecovery/noload

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

data={journal|ordered|writeback}

Задаёт режим ведения журнала для данных файла. Метаданные всегда журналируются. Чтобы использовать в корневой файловой системе режимы, отличные от ordered, передайте режим ядру в качестве параметра загрузки, например rootflags=data=journal.

journal

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

ordered

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

writeback

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

data_err=ignore

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

data_err=abort

Прервать журнал, если в буфере данных файла в режиме ordered возникла ошибка.

barrier=0 / barrier=1

Это отключает/включает использование барьеров записи в коде jbd. barrier=0 отключает, barrier=1 включает (установлен по умолчанию). Для этого также требуется стек ввода-вывода, который может поддерживать барьеры, и если jbd получит ошибку при записи барьера, он снова отключит барьеры с предупреждением. Барьеры записи обеспечивают надлежащий порядок журнальных коммитов на диске, что делает использование кэшей записи на энергозависимый диск безопасным при некотором снижении производительности. Если ваши диски так или иначе имеют резервное питание от батареи, отключение барьеров может безопасно повысить производительность.

commit=nrsec

Начать фиксацию журнала каждые nrsec секунд. Значение по умолчанию — 5 секунд. Ноль означает по умолчанию.

user_xattr

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

jqfmt={vfsold|vfsv0|vfsv1}

Помимо старой системы квот (как в ext2, jqfmt=vfsold или квота версии 1) ext3 также поддерживает журналируемые квоты (квота версии 2). jqfmt=vfsv0 или jqfmt=vfsv1 включает журналируемые квоты. У журналируемых квот есть то преимущество, что даже после сбоя проверка квоты не требуется. Когда функция файловой системы квот включена, журналируемые квоты используются автоматически, и этот параметр монтирования игнорируется.

usrjquota=aquota.user|grpjquota=aquota.group

Для журналируемых квот (jqfmt=vfsv0 или jqfmt=vfsv1) параметры монтирования srjquota=aquota.user и grpjquota=aquota.group необходимы, чтобы указать системе квот, какие файлы базы данных квот использовать. Когда функция файловой системы квот включена, журналируемые квоты используются автоматически, и этот параметр монтирования игнорируется.

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

Файловая система ext4 — это продвинутый уровень файловой системы ext3, который включает улучшения масштабируемости и надёжности для поддержки больших файловых систем.

Параметры journal_dev, journal_path, norecovery, noload, data, commit, orlov, oldalloc, [no]user_xattr, [no]acl, bsddf, minixdf, debug, errors, data_err, grpid, bsdgroups, nogrpid, sysvgroups, resgid, resuid, sb, quota, noquota, nouid32, grpquota, usrquota, usrjquota, grpjquota и jqfmt обратно совместимы с ext3 или ext2.

journal_checksum | nojournal_checksum

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

journal_async_commit

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

barrier=0 / barrier=1 / barrier / nobarrier

Эти параметры монтирования имеют тот же эффект, что и в ext3. Опции монтирования «barrier» и «nobarrier» добавлены для согласованности с другими вариантами монтирования ext4.

Файловая система ext4 по умолчанию включает барьеры записи.

inode_readahead_blks=n

Этот параметр настройки контролирует максимальное количество блоков таблицы inode, которые алгоритм опережающего чтения таблицы inode ext4 будет предварительно считывать в буферный кеш. Значение должно быть степенью 2. Значение по умолчанию — 32 блока.

stripe=n

Количество блоков файловой системы, которые mballoc попытается использовать для размера выделения и выравнивания. Для систем RAID5/6 это должен быть номер размер блока дисковых данных * RAID в блоках файловой системы.

delalloc

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

nodelalloc

Отключить отложенное выделение. Блоки выделяются при копировании данных от пользователя в кеш страницы.

max_batch_time=usec

Максимальное время, в течение которого ext4 должна ожидать пакетной обработки дополнительных операций файловой системы вместе с синхронной операцией записи. Поскольку синхронная операция записи будет принудительно выполнить фиксацию, а затем дожидаться завершения ввода-вывода, это не требует больших затрат и может быть огромным выигрышем в пропускной способности, мы ждём небольшое количество времени, чтобы увидеть, есть ли другие транзакции, которые могут совмещаться с синхронной записью. Используемый алгоритм предназначен для автоматической настройки скорости диска путём измерения количества времени (в среднем), которое требуется для завершения фиксации транзакции. Назовите это время «временем фиксации». Если время выполнения транзакции меньше, чем время фиксации, ext4 попытается засыпать на время фиксации, чтобы увидеть, присоединятся ли к транзакции другие операции. Время фиксации ограничено max_batch_time, которое по умолчанию составляет 15000 мкс (15 мс). Эту оптимизацию можно полностью отключить, установив max_batch_time равным 0.

min_batch_time=usec

Этот параметр устанавливает время фиксации (как описано выше) как минимум min_batch_time. По умолчанию это ноль микросекунд. Увеличение этого параметра может улучшить пропускную способность многопоточных синхронных рабочих нагрузок на очень быстрых дисках за счёт увеличения задержки.

journal_ioprio=prio

Приоритет ввода-вывода (от 0 до 7, где 0 — наивысший приоритет), который следует использовать для операций ввода-вывода, отправленных kjournald2 во время операции фиксации. По умолчанию это 3, что является немного более высоким приоритетом, чем приоритет ввода-вывода по умолчанию.

abort

Смоделирует эффекты вызова ext4_abort() в целях отладки. Обычно это используется при перемонтировании уже смонтированной файловой системы.

auto_da_alloc|noauto_da_alloc

Многие плохие приложения не используют fsync() при замене существующих файлов с помощью таких шаблонов, как

fd = open("foo.new")/write(fd,...)/close(fd)/ rename("foo.new", "foo")

или ещё хуже

fd = open("foo", O_TRUNC)/write(fd,...)/close(fd).

Если auto_da_alloc включен, ext4 обнаружит шаблоны replace-via-rename и replace-via-truncate и сделает так, что любые отсроченные блоки выделялись таким образом, чтобы при следующей фиксации журнала в дефолтном режиме data=ordered блоки данных нового файла будут принудительно записаны на диск до того, как будет зафиксирована операция rename(). Это обеспечивает примерно тот же уровень гарантий, что и ext3, и позволяет избежать проблемы «нулевой длины», которая может возникнуть при сбое системы до того, как блоки отложенного распределения будут перенесены на диск.

noinit_itable

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

init_itable=n

Код lazy itable инициализации будет ждать в n раз больше миллисекунд, которые потребовались для обнуления таблицы inode предыдущей группы блоков. Это сводит к минимуму влияние на производительность системы при инициализации таблицы inode файловой системы.

discard/nodiscard

Определяет, должна ли ext4 выдавать команды discard/TRIM базовому блочному устройству при освобождении блоков. Это полезно для устройств SSD и LUN с разреженным/тонким выделением ресурсов, но по умолчанию отключено, пока не будет проведено достаточное тестирование.

block_validity/noblock_validity

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

dioread_lock/dioread_nolock

Определяет, следует ли ext4 использовать блокировку чтения DIO. Если указана опция dioread_nolock, ext4 выделит неинициализированный экстент перед записью в буфер и преобразует экстент в инициализированный после завершения ввода-вывода. Этот подход позволяет коду ext4 избегать использования мьютекса inode, что улучшает масштабируемость на высокоскоростных хранилищах. Однако это не работает с журналированием данных, и параметр dioread_nolock будет проигнорирован с предупреждением ядра. Обратите внимание, что путь кода dioread_nolock используется только для файлов на основе экстентов. Из-за ограничений, содержащихся в этих параметрах, он по умолчанию отключён (например, dioread_lock).

max_dir_size_kb=n

Это ограничивает размер каталогов, так что любая попытка расширить их сверх указанного предела в килобайтах вызовет ошибку ENOSPC. Это полезно в средах с ограничением памяти, где очень большой каталог может вызвать серьёзные проблемы с производительностью или даже спровоцировать убийцу Out Of Memory. (Например, если доступно только 512 МБ памяти, каталог 176 МБ может серьёзно ограничить стиль системы.)

i_version

Включить поддержку 64-битной версии inode. По умолчанию этот параметр отключён.

nombcache

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

prjquota

Параметр монтирования prjquota включает поддержку квот проекта в файловой системе. Вам нужны утилиты quota, чтобы фактически включить систему квот и управлять ею. Для этой опции монтирования требуется функция файловой системы project.

АТРИБУТЫ ФАЙЛОВ

Файловые системы ext2, ext3 и ext4 поддерживают установку следующих атрибутов файлов в системах Linux с помощью утилиты chattr(1):

  • a — только добавить
  • A — без обновлений atime
  • d — без дампа
  • D — синхронное обновление каталога
  • i — неизменный
  • S — синхронные обновления
  • u — неудаляемый

В дополнение, файловые системы ext3 и ext4 поддерживают следующий флаг:

  • j — журналирование данных

Наконец, файловая система ext4 также поддерживает следующий флаг:

  • e — расширенные атрибуты

Описание этих флагов атрибутов смотрите на странице руководства chattr(1).

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

NTFS — заменяет файловые системы FAT в Microsoft Window (VFAT, FAT32). Она имеет улучшения надёжности, производительности и использования пространства, а также такие функции, как списки контроля доступа, ведение журнала, шифрование и т. д.

iocharset=name

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

nls=name

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

utf8

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

uni_xlate={0|1|2}

При 0 (или «no» или «false») не использовать escape-последовательности для неизвестных символов Unicode. При 1 (или «yes» или «true») или 2 использовать 4-байтовые escape-последовательности в стиле vfat, начинающиеся с «:». Здесь 2 задают обратную кодировку, а 1 — двоичную кодировку с обратным байтом.

posix=[0|1]

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

uid=value, gid=value and umask=value

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

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

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

vfat — это расширенная файловая система FAT, используемая Microsoft Windows95 и Windows NT. vfat добавляет возможность использовать длинные имена файлов в файловой системе MSDOS.

msdos — это файловая система, используемая DOS, Windows и некоторыми компьютерами OS/2. Имена файлов msdos не могут быть длиннее 8 символов, за которыми следует необязательная точка и 3-символьное расширение.

umsdos — это расширенная файловая система DOS, используемая Linux. Он добавляет возможность для длинных имён файлов, UID/GID, разрешений POSIX и специальных файлов (устройств, именованных каналов и т. д.) в файловой системе DOS, не жертвуя совместимостью с DOS.

blocksize={512|1024|2048}

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

uid=ЗНАЧЕНИЕ и gid=ЗНАЧЕНИЕ

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

umask=ЗНАЧЕНИЕ

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

dmask=ЗНАЧЕНИЕ

Установит umask только для каталогов. По умолчанию используется маска umask текущего процесса. ЗНАЧЕНИЕ даётся в восьмеричном формате.

fmask=ЗНАЧЕНИЕ

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

allow_utime=ЗНАЧЕНИЕ

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

20

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

2

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

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

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

check=ЗНАЧЕНИЕ

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

r[elaxed]

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

n[ormal]

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

s[trict]

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

codepage=ЗНАЧЕНИЕ

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

conv=РЕЖИМ

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

cvf_format=МОДУЛЬ

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

cvf_option=option

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

debug

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

discard

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

dos1xfloppy

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

errors={panic|continue|remount-ro}

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

fat={12|16|32}

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

iocharset=ЗНАЧЕНИЕ

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

nfs={stale_rw|nostale_ro}

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

stale_rw

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

nostale_ro

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

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

tz=UTC

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

time_offset=МИНУТЫ

Установит смещение для преобразования меток времени из местного времени, используемого FAT, в UTC. То есть минуты будут вычитаться из каждой временной метки, чтобы преобразовать её в UTC, используемое внутри Linux. Это полезно, когда часовой пояс, установленный в ядре с помощью settimeofday(2), не совпадает с часовым поясом, используемым файловой системой. Обратите внимание, что эта опция по-прежнему не обеспечивает правильные отметки времени во всех случаях при наличии летнего времени — летнее время будет отличаться на один час.

quiet

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

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.

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

exFAT — это простая файловая система, созданная Microsoft. Она предназначена для замены FAT32, устраняя некоторые её ограничения. exFAT — это стандартная файловая система для карт памяти SDXC.

umask=ЗНАЧЕНИЕ

Установит umask (битовую маску разрешений, которые отсутствуют, в восьмеричном формате). По умолчанию — 0.

dmask=ЗНАЧЕНИЕ

Установит umask только для каталогов.

fmask=ЗНАЧЕНИЕ

Установит umask только для файлов.

uid=n

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

gid=n

Установит группу для всех файлов и каталогов. По умолчанию это группа текущего процесса.

ro

Смонтировать файловую систему в режиме только для чтения.

noatime

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

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

Смотрите опции монтирования для msdos. Опция dotsOK явно уничтожается umsdos.

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

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

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

vfat — это расширенная файловая система FAT, используемая Microsoft Windows95 и Windows NT. vfat добавляет возможность использовать длинные имена файлов в файловой системе MSDOS.

В первую очередь vfat поддерживает все опции монтирования fat. Опция dotsOK явно уничтожается vfat. Кроме того, есть следующие опции:

uni_xlate

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

posix

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

nonumtail

Сначала попробовать сделать короткое имя без порядкового номера, а затем попробовать name~num.ext.

utf8

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

shortname=РЕЖИМ

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

lower

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

win95

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

winnt

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

mixed

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

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

Файловая система vboxsf используется для монтирования общей папки VirtualBox из хост-системы в точку монтирования гостевой системы.

Доступные опции монтирования:

rw

монтирование с возможностью записи (по умолчанию)

ro

монтирование только для чтения

uid=UID

установить идентификатор пользователя владельца файла по умолчанию на UID

gid=GID

установить идентификатор группы владельцев файлов по умолчанию на GID

ttl=TTL

установите «время жизни» равным TID для дентри

dmode=РЕЖИМ

переопределить режим всех каталогов на (восьмеричный) РЕЖИМ

fmode=РЕЖИМ

переопределить режим всех обычных файлов на (восьмеричный) РЕЖИМ

umask=UMASK

установите umask в (восьмеричное) UMASK

dmask=UMASK

установить umask только для каталогов

fmask=UMASK

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

iocharset КОДИРОВКА

использовать набор символов КОДИРОВКА для операций ввода-вывода (по умолчанию используется utf8)

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

iso9660 — это файловая система CD-ROM, соответствующая стандарту ISO 9660.

High Sierra

Linux поддерживает High Sierra, предшественник стандарта ISO 9660 для файловых систем CD-ROM. Она автоматически распознаётся файловой системой iso9660, поддерживаемой в Linux.

Rock Ridge

Linux также поддерживает записи протокола общего использования системы, определённые протоколом обмена Rock Ridge. Они используются для дальнейшего описания файлов в файловой системе iso9660 на хосте UNIX и предоставляют такую информацию, как длинные имена файлов, UID/GID, разрешения POSIX и устройства. Она автоматически распознаётся файловой системой iso9660, поддерживаемой в Linux.

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

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

Rock Ridge — это расширение для iso9660, которое предоставляет все эти 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=ЗНАЧЕНИЕ

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

unhide

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

block={512|1024|2048}

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

conv=РЕЖИМ

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

cruft

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

session=x

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

sbsector=xxx

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

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

iocharset=ЗНАЧЕНИЕ

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

utf8

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

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

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

uid=

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

gid=

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

umask=

Скрыть данные разрешения от всех inodes, читаемых из файловой системы. Значение дано в восьмеричном формате.

mode=

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

dmode=

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

bs=

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

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

unhide

Показать другие скрытые файлы.

undelete

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

adinicb

Вставить данные в индексный дескриптор (по умолчанию)

noadinicb

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

shortad

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

longad

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

nostrict

Отмените строгое соответствие.

iocharset=

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

utf8

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

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

novrs

Игнорировать последовательность распознавания томов и все равно попытайтесь смонтировать.

session=

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

anchor=

Отменить стандартное расположение привязки. (по умолчанию = 256)

lastblock=

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

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

uid=ignore

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

gid=ignore

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

volume=

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

partition=

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

fileset=

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

rootdir=

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

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

FUSE (Filesystem in Userspace — файловая система в пространстве пользователя) — это простой интерфейс для программ пользовательского пространства для экспорта виртуальной файловой системы в ядро Linux. FUSE также стремится обеспечить безопасный метод для непривилегированных пользователей для создания и монтирования своих собственных реализаций файловой системы.

ОПРЕДЕЛЕНИЯ

FUSE

Файловая система в ядре, которая перенаправляет запросы процессу пользовательского пространства.

Файловая система

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

libfuse

Общая библиотека, которую большинство файловых систем (в пространстве пользователя) используют для связи с FUSE (файловой системой ядра). libfuse также предоставляет помощник fusermount3 (или fusermount, если у вас более старая версия libfuse), позволяющий непривилегированным пользователям монтировать файловые системы.

Владелец файловой системы

Пользователь, запускающий файловую систему и инструктирующий ядро связать её с определённой точкой монтирования. Последнее обычно выполняется самой файловой системой при запуске. При использовании libfuse это делается путём вызова утилиты fusermount3.

Клиент

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

КОНФИГУРАЦИЯ

Некоторые параметры политики монтирования можно установить в файле /etc/fuse.con. В настоящее время это следующие опции:

mount_max = NNN

Установитемаксимальное количество подключений FUSE, разрешённое для пользователей без полномочий root. По умолчанию 1000.

user_allow_other

Разрешить пользователям без полномочий root указывать параметры монтирования allow_other или allow_root (смотрите ниже).

Эти ограничения устанавливаются помощником fusermount3, поэтому файловые системы, работающие от имени root, могут их обойти.

ПАРАМЕТРЫ

Поддерживается большинство общих параметров монтирования, описанных для mount (ro, rw, suid, nosuid, dev, nodev, exec, noexec, atime, noatime, sync, async, dirsync). Файловые системы монтируются с помощью nodev, по умолчанию nosuid, который может быть переопределен только привилегированным пользователем.

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

Это специфичные для FUSE опции монтирования, которые можно указать для всех файловых систем:

default_permissions

Этот параметр указывает ядру выполнить собственную проверку разрешений вместо того, чтобы перекладывать всю проверку разрешений на файловую систему. Проверка ядром выполняется в дополнение к любым проверкам разрешений файловой системой, и обе должны быть успешными, чтобы операция была разрешена. Ядро выполняет стандартную проверку разрешений UNIX (на основе битов режима и владения записью каталога, а также uid/gid клиента).

Эта опция монтирования активируется неявно, если файловая система включает поддержку ACL во время первоначального согласования функций при открытии устройства fd. В этом случае ядро выполняет как ACL, так и стандартную проверку разрешений unix.

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

allow_other

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

rootmode=M

Задаёт файловый режим корня файловой системы (в восьмеричном представлении).

blkdev

Смонтировать файловую систему, поддерживаемую блочным устройством. Это привилегированный вариант. Устройство должно быть указано с параметром fsname=ИМЯ.

blksize=N

Установит размер блока для файловой системы. Эта опция действительна только для монтирования типа fuseblk. По умолчанию 512.

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

max_read=N

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

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

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

fd=N

Файловый дескриптор, используемый для связи между файловой системой пользовательского пространства и ядром. Дескриптор файла должен быть получен при открытии устройства FUSE (/dev/fuse).

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

user_id=N

group_id=N

Задаёт числовой uid/gid владельца монтирования.

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

fsname=ИМЯ

Устанавливает источник файловой системы (первое поле в /etc/mtab). По умолчанию это имя процесса файловой системы.

subtype=ТИП

Устанавливает тип файловой системы (третье поле в /etc/mtab). По умолчанию это имя процесса файловой системы. Если ядро это поддерживает, в /etc/mtab и /proc/mounts тип файловой системы будет отображаться как fuse.

Если ядро не поддерживает подтипы, исходным полем будет TYPE#NAME, или, если опция fsname не указана, просто TYPE.

Параметры монтирования, специфичные для libfuse:

Эти следующие параметры фактически не передаются ядру, но интерпретируются libfuse. Их можно указать для всех файловых систем, использующих libfuse:

allow_root

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

auto_unmount

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

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

Опции монтирования высокого уровня:

Эти следующие параметры фактически не передаются ядру, но интерпретируются libfuse. Их можно указать только для файловых систем, использующих высокоуровневый API libfuse:

kernel_cache

Эта опция отключает очистку кеша содержимого файла при каждом open(2). Это должно быть включено только в файловых системах, где данные файла никогда не изменяются извне (не через смонтированную файловую систему FUSE). Таким образом, он не подходит для сетевых файловых систем и других «промежуточных» файловых систем.

ПРИМЕЧАНИЕ: если этот параметр не указан (и ни один из direct_io), данные по-прежнему кэшируются после open(2), поэтому системный вызов read(2) не всегда инициирует операцию чтения.

auto_cache

Эта опция является альтернативой kernel_cache. Вместо того чтобы безоговорочно хранить кэшированные данные, кэшированные данные становятся недействительными при open(2), если время модификации или размер файла изменились с момента его последнего открытия.

umask=M

Отменит биты прав доступа в st_mode, установленные файловой системой. Результирующие биты разрешения — это те, которые отсутствуют в заданном значении umask. Значение указывается в восьмеричном представлении.

uid=N

Заменяет поле st_uid, установленное файловой системой (N — числовое значение).

gid=N

Заменяет поле st_gid, установленное файловой системой (N — числовое значение).

entry_timeout=T

Тайм-аут в секундах, в течение которого запросы имени будут кэшироваться. По умолчанию — 1,0 секунда. Для всех вариантов тайм-аута также можно указать доли секунды (например, entry_timeout=2.8)

negative_timeout=T

Тайм-аут в секундах, в течение которого будет кэшироваться отрицательный поиск. Это означает, что если файл не существует (поиск вернул ENOENT), поиск будет повторен только по истечении тайм-аута, и предполагается, что до этого момента файл/каталог не существует. Значение по умолчанию — 0,0 секунды, что означает, что кеширование отрицательных запросов отключено.

attr_timeout=T

Тайм-аут в секундах, в течение которого кэшируются атрибуты файла/каталога. По умолчанию — 1,0 секунда.

ac_attr_timeout=T

Тайм-аут в секундах, в течение которого атрибуты файла кэшируются с целью проверки, должен ли auto_cache сбрасывать данные файла при открытии. По умолчанию используется значение attr_timeout.

noforget

remember=T

Обычно libfuse назначает inode путям только до тех пор, пока ядро знает о них. С этой опцией inodes вместо этого назначаются как минимум на T секунд (или, в случае noforget, на время жизни файловой системы). Для этого потребуется больше памяти, но может потребоваться при использовании приложений, использующих номера inode.

modules=M1[:M2…]

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

Опции mount.fuse3:

Эти параметры интерпретируются с помощью mount.fuse3 и поэтому доступны только при монтировании файловой системы через mount.fuse3 (например, при монтировании с помощью общей команды mount(1) или /etc/fstab). Поддерживаемые опции:

setuid=ПОЛЬЗОВАТЕЛЬ

Перед запуском процесса файловой системы FUSE переключитесь на USER и его основную группу. mount.fuse3 должен быть запущен как root или с CAP_SETUID и CAP_SETGID, чтобы это работало.

drop_privileges

Выполнить настройку файлового дескриптора FUSE и монтирование файловой системы перед запуском процесса файловой системы FUSE. Для этого mount.fuse3 требует привилегии, т.е. должна запускаться как root или, по крайней мере, с CAP_SYS_ADMIN и CAP_SETPCAP. Эта опция запустит процесс файловой системы полностью непривилегированным, то есть без установленных флагов capabilities(7) и prctl(2), которые не позволяют повторно получить привилегии (например, через двоичные файлы setuid или fscaps). Это снижает риск в случае компрометации процесса файловой системы FUSE данными вредоносной файловой системы.

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

tmpfs — это файловая система, содержимое которой находится в виртуальной памяти. Поскольку файлы в таких файловых системах обычно находятся в ОЗУ, доступ к файлам осуществляется очень быстро.

Средство tmpfs позволяет создавать файловые системы, содержимое которых находится в виртуальной памяти. Поскольку файлы в таких файловых системах обычно находятся в ОЗУ, доступ к файлам осуществляется очень быстро.

Файловая система создаётся автоматически при монтировании файловой системы с типом tmpfs с помощью следующей команды:

sudo mount -t tmpfs -o size=10M tmpfs /mnt/mytmpfs

Файловая система tmpfs имеет следующие свойства:

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

Если файловая система tmpfs размонтирована, её содержимое теряется (удаляется).

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

Файловая система tmpfs поддерживает следующие опции монтирования:

size=БАЙТЫ

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

Размер может иметь суффикс k, m или g для Ki, Mi, Gi (двоичные kilo (kibi), двоичные mega (mebi) и двоичные giga (gibi)).

Размер может также иметь суффикс %, чтобы ограничить этот экземпляр процентом физической памяти.

По умолчанию, когда не указан ни размер, ни nr_blocks, size=50%.

nr_blocks=БЛОКИ

То же, что и size, но блоками по PAGE_CACHE_SIZE.

Блоки могут быть указаны с суффиксами k, m или g как и size, но не с суффиксом %.

nr_inodes=inodes

Максимальное количество индексных дескрипторов для этого экземпляра. Значение по умолчанию — половина количества ваших физических страниц RAM или (на машине с highmem) количество страниц lowmem RAM, в зависимости от того, что меньше.

Inodes могут быть указаны с суффиксами k, m или g как и size, но не с суффиксом %.

mode=РЕЖИМ

Установит начальные разрешения для корневого каталога.

gid=gid (начиная с Linux 2.5.7)

Установит начальный идентификатор группы корневого каталога.

uid=uid (начиная с Linux 2.5.7)

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

huge=huge_option (начиная с Linux 4.7.0)

Установит политику выделения памяти для огромной таблицы для всех файлов в этом экземпляре (если включён CONFIG_TRANSPARENT_HUGE_PAGECACHE).

Значение huge_option может быть одним из следующих:

never

Не выделять огромные страницы. Это значение по умолчанию.

always

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

within_size

Выделять огромную страницу только в том случае, если она полностью находится в пределах i_size. Также уважать подсказки fadvise(2)/madvise(2).

advise

Выделять огромные страницы только по запросу с помощью fadvise(2)/madvise(2).

deny

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

force

Включить опцию huge для всех монтирований; полезно для тестирования.

mpol=mpol_option (начиная с Linux 2.6.15)

Задаёт политику выделения памяти NUMA для всех файлов в этом экземпляре (если включён параметр CONFIG_NUMA).

Значение mpol_option может быть одним из следующих:

default

Использовать политику распределения процессов (смотрите set_mempolicy(2)).

prefer:node

Предпочтительно выделять память из данного узла.

bind:nodelist

Выделять память только из узлов в списке узлов.

interleave

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

interleave:nodelist

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

local

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

Список узлов (nodelist) является разделённый запятыми список десятичных чисел и диапазонов, определяющих узлы NUMA. Диапазон — это пара десятичных чисел, разделённых дефисом, наименьшее и наибольшее номера узлов в диапазоне. Например, mpol=bind:0-3,5,7,9-15.

Файловая система tmpfs поддерживает расширенные атрибуты (смотрите xattr(7), но пользовательские расширенные атрибуты не разрешены.

Объем памяти, потребляемой всеми файловыми системами tmpfs, отображается в поле Shmem в /proc/meminfo и в поле shared, отображаемом программой free.

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

SMB (сокр. от англ. Server Message Block) — сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия. Первая версия протокола, также известная как Common Internet File System (CIFS) (Единая файловая система Интернета), была разработана компаниями IBM, Microsoft, Intel и 3Com в 1980-х годах; вторая (SMB 2.0) была создана Microsoft и появилась в Windows Vista. В настоящее время SMB связан главным образом с операционными системами Microsoft Windows, где используется для реализации «Сети Microsoft Windows» (англ. Microsoft Windows Network) и «Совместного использования файлов и принтеров» (англ. File and Printer Sharing).

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

Клиенты соединяются с сервером, используя протоколы TCP/IP (а, точнее, NetBIOS через TCP/IP), NetBEUI или IPX/SPX. После того как соединение установлено, клиенты могут посылать команды серверу (эти команды называются SMB-команды или SMBs), который даёт им доступ к ресурсам, позволяет открывать, читать файлы, писать в файлы и вообще выполнять весь перечень действий, которые можно выполнять с файловой системой. Однако в случае использования SMB эти действия совершаются через сеть.

Практические примеры и инструкции монтирования SMB:

smb — это сетевая файловая система, которая поддерживает протокол SMB, используемый Windows для рабочих групп, Windows NT и Lan Manager.

Опции указываются в виде списка пар ключ=значение, разделённых запятыми. Можно отправить параметры, отличные от перечисленных здесь, при условии, что модуль ядра файловой системы cifs (cifs.ko) поддерживает их. Нераспознанные опции монтирования cifs, переданные в код ядра cifs vfs, будут записаны в журнал ядра.

ОПЦИИ

username=АРГУМЕНТ|user=АРГУМЕНТ

Указывает имя пользователя для подключения. Если это не указано, используется переменная среды USER.

Более ранние версии mount.cifs также позволяли указывать user%password или workgroup/user или workgroup/user%password, чтобы можно было указать пароль и рабочую группу как часть имени пользователя. Поддержка этих альтернативных форматов имени пользователя теперь устарела и больше не должна использоваться. Пользователи должны использовать дискретные опции password= и domain= для указания этих значений. Хотя некоторые версии модуля ядра cifs принимают user= в качестве аббревиатуры для этой опции, его использование может сбить стандартную программу монтирования с мыслью, что это монтирование без суперпользователя. Поэтому рекомендуется использовать полное имя username= параметра.

password=АРГУМЕНТ|pass=АРГУМЕНТ

Указывает пароль CIFS. Если этот параметр не указан, используется переменная среды PASSWD. Если пароль не указан прямо или косвенно через аргумент для монтирования, mount.cifs запросит пароль, если не указана опция guest.

Обратите внимание, что пароль, содержащий символ-разделитель (то есть запятую ','), не будет правильно проанализирован в командной строке. Однако тот же пароль, который определён в переменной среды PASSWD или в файле учётных данных (смотрите ниже) или введён в запросе пароля, будет считан правильно.

credentials=ИМЯ ФАЙЛА|cred=ИМЯ ФАЙЛА

Указывает файл, содержащий имя пользователя и/или пароль и, возможно, имя рабочей группы. Формат файла:

username=значение
password=значение
domain=значение

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

uid=АРГУМЕНТ

устанавливает uid, который будет владеть всеми файлами или каталогами в смонтированной файловой системе, когда сервер не предоставляет информацию о владельце. Он может быть указан как имя пользователя или числовой uid. Если не указан, по умолчанию используется uid 0. Помощник mount.cifs должен иметь версию 1.10 или выше, чтобы поддерживать указание uid в нечисловой форме.

Смотрите раздел «ВЛАДЕНИЕ И РАЗРЕШЕНИЯ НА ФАЙЛЫ И КАТАЛОГ» ниже для получения дополнительной информации.

cruid=АРГУМЕНТ

устанавливает uid владельца кеша учётных данных. Это в первую очередь полезно с sec=krb5. По умолчанию используется реальный uid процесса, выполняющего монтирование. Установка этого параметра предписывает восходящему вызову искать кэш учётных данных, принадлежащий этому пользователю.

gid=АРГУМЕНТ

устанавливает gid, который будет владеть всеми файлами или каталогами в смонтированной файловой системе, когда сервер не предоставляет информацию о владельце. Он может быть указан как имя группы или числовой идентификатор. Если не указан, по умолчанию используется gid 0. Вспомогательный модуль mount.cifs должен иметь версию 1.10 или выше, чтобы поддерживать указание gid в нечисловой форме. Смотрите раздел «ВЛАДЕНИЕ И РАЗРЕШЕНИЯ НА ФАЙЛЫ И КАТАЛОГ» ниже для получения дополнительной информации.

forcegid

указывает клиенту игнорировать любой gid, предоставляемый сервером для файлов и каталогов, и всегда назначать владельцем значение параметра gid=. Смотрите раздел «ВЛАДЕНИЕ И РАЗРЕШЕНИЯ НА ФАЙЛЫ И КАТАЛОГ» ниже для получения дополнительной информации.

idsfromsid

Извлекает uid/gid из специального SID вместо его сопоставления. Смотрите раздел «ВЛАДЕНИЕ И РАЗРЕШЕНИЯ НА ФАЙЛЫ И КАТАЛОГ» ниже для получения дополнительной информации.

port=АРГУМЕНТ

устанавливает номер порта, на котором клиент будет пытаться связаться с сервером CIFS. Если это значение указано, найдёт существующее соединение с этим портом и использует его, если оно существует. Если таковой не существует, попробует создать новое соединение на этом порту. Если это соединение не удаётся, вернёт ошибку. Если это значение не указано, найдёт существующее соединение на порте 445 или 139. Если такое соединение не существует, попробует сначала подключиться через порт 445, а затем через порт 139, если это не удаётся, то есть оба порта не работают, то вернёт ошибку.

netbiosname=АРГУМЕНТ

При подключении к серверам через порт 139 указывает имя источника RFC1001, которое будет использоваться для представления клиентской машины netbios во время инициализации сеанса netbios.

servern=АРГУМЕНТ

Аналогично netbiosname, за исключением того, что он указывает имя netbios сервера вместо клиента. Хотя этот параметр редко требуется для подключения к новым серверам, этот параметр необходим для подключения к некоторым более старым серверам (например, OS/2 или Windows 98 и Windows ME), поскольку при подключении через порт 139 они, в отличие от большинства новых серверов, не поддерживают имя сервера по умолчанию. Имя сервера может содержать до 15 символов и обычно пишется в верхнем регистре.

file_mode=АРГУМЕНТ

Если сервер не поддерживает расширения CIFS Unix, это отменяет режим файла по умолчанию.

dir_mode=АРГУМЕНТ

Если сервер не поддерживает расширения CIFS Unix, это отменяет режим по умолчанию для каталогов.

ip=АРГУМЕНТ|addr=АРГУМЕНТ

Устанавливает IP-адрес назначения. Этот параметр устанавливается автоматически, если часть имени сервера запрошенного имени UNC может быть преобразована (разрешена), поэтому пользователю редко требуется указывать её.

domain=АРГУМЕНТ|dom=АРГУМЕНТ|workgroup=АРГУМЕНТ

Устанавливает домен (рабочую группу) пользователя. Если домены не указаны, будет использоваться пустой домен. Используйте domainauto, чтобы автоматически угадать домен сервера, к которому вы подключаетесь.

domainauto

Если используется проверка подлинности NTLM и не предоставляется домен через домен, угадать домен из запроса NTLM сервера. Раньше это поведение было по умолчанию для ядер старше 2.6.36.

guest

Не запрашивает пароль.

iocharset

Набор символов, используемый для преобразования имён локальных путей в Unicode и обратно. Юникод используется по умолчанию для имён сетевых путей, если сервер поддерживает его. Если iocharset не указан, будет использоваться значение nls_default, указанное во время сборки ядра локального клиента. Если сервер не поддерживает Unicode, этот параметр не используется.

ro

Монтировать только для чтения.

rw

Монтировать для чтения-записи.

setuids

Если расширения CIFS Unix согласованы с сервером, клиент попытается установить эффективный uid и gid локального процесса для вновь созданных файлов, каталогов и устройств (create, mkdir, mknod). Если расширения CIFS Unix не согласованы, для вновь созданных файлов и каталогов вместо использования uid и gid по умолчанию, указанных при монтировании, локально кэширует uid и gid нового файла, что означает, что uid для файла может измениться, когда индекс перезагружается (или пользователь заново монтирует общий ресурс).

nosetuids

Клиент не будет пытаться установить uid и gid для вновь созданных файлов, каталогов и устройств (create, mkdir, mknod), в результате чего сервер установит uid и gid по умолчанию (обычно это uid сервера пользователя, кто монтировал шару). По умолчанию сервер (а не клиент) устанавливает uid и gid. Если CIFS Unix Extensions не согласованы, тогда uid и gid для новых файлов будут выглядеть как uid (gid) установщика или параметр uid (gid), указанный при монтировании.

perm

Клиент выполняет проверку разрешений (vfs_permission проверка uid и gid файла на соответствие режиму и желаемой операции). Обратите внимание, что это в дополнение к обычной проверке ACL на целевой машине, выполняемой серверным программным обеспечением. Проверка разрешений клиента включена по умолчанию.

noperm

Клиент не проверяет разрешения. Это может предоставить доступ к файлам на этом монтировании другим пользователям в локальной клиентской системе. Обычно это требуется только в том случае, если сервер поддерживает расширения CIFS Unix, но UID/GID в клиентской и серверной системах не совпадают достаточно близко, чтобы предоставить доступ пользователю, выполняющему монтирование. Обратите внимание, что это не влияет на обычную проверку ACL на целевой машине, выполняемую серверным программным обеспечением (серверного ACL по имени пользователя, указанному во время монтирования).

dynperm

Указывает серверу поддерживать владение и разрешения в памяти, которые не могут быть сохранены на сервере. Эта информация может исчезнуть в любое время (всякий раз, когда индексный дескриптор удаляется из кеша), поэтому, хотя это может помочь некоторым приложениям работать, такое поведение несколько ненадежно. Смотрите раздел ниже о ВЛАДЕНИИ И РАЗРЕШЕНИЯХ НА ФАЙЛЫ И КАТАЛОГ для получения дополнительной информации.

cache=АРГУМЕНТ

Режим кеширования. Смотрите раздел ниже, посвящённый СОГЛАСОВАННОСТИ КЭША, для получения подробной информации. Допустимые значения:

  • none — не кэшировать данные файла вообще
  • strict — строго соблюдать протокол CIFS/SMB2
  • loose — разрешить свободную семантику кеширования

По умолчанию в ядрах до 3.7 был loose. В ядре 3.7 значение по умолчанию strict.

nostrictsync

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

handlecache

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

nohandlecache

Отключить кеширование дескриптора корневого каталога общего ресурса.

handletimeout=АРГУМЕНТ

Время (в миллисекундах), в течение которого сервер должен зарезервировать дескриптор после аварийного переключения, ожидая повторного подключения клиента. При монтировании с опцией монтирования resilienthandles или persistenthandles или когда их использование запрашивается сервером (continuous availability shares — общие ресурсы непрерывной доступности), этот параметр переопределяет тайм-аут дескриптора сервера по умолчанию (который для большинства серверов составляет 120 секунд).

rwpidforward

Перенаправить pid процесса, открывшего файл, для любой операции чтения или записи в этом файле. Это предотвращает сбой при чтении и записи таких приложений, как wine(1), если мы используем обязательный стиль brlock.

mapchars

Переводит шесть из семи зарезервированных символов (не обратную косую черту, но включая двоеточие, вопросительный знак, вертикальную черту, звёздочку, символы больше и меньше) в диапазон переназначения (выше 0xF000), что также позволяет клиенту CIFS распознавать файлы, созданные с помощью такие символы службой Windows для Mac. Это также может быть полезно при монтировании к большинству версий Samba (что также запрещает создание и открытие файлов, имена которых содержат любой из этих семи символов). Это не действует, если сервер не поддерживает Unicode в сети. Обратите внимание, что файлы, созданные с помощью параметра монтирования mapchars, могут быть недоступны, если общий ресурс смонтирован без этого параметра.

nomapchars

 

 

 

 

 

Опции монтирования sshfs

 

 

 

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

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

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

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

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

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

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

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

_https://github.com/sviehb/jefferson

_https://wiki.emacinc.com/wiki/Mounting_JFFS2_Images_on_a_Linux_PC

_http://www.decker.su/2015/02/mount-jffs2-in-linux.html

_http://www.linux-mtd.infradead.org/faq/jffs2.html

_https://wiki.maemo.org/Modifying_the_root_image

_https://github.com/jclehner/mtd-rw

 

 

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

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

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

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

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

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

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

 

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

[В ПРОЦЕССЕ ПОДГОТОВКИ]

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

[В ПРОЦЕССЕ ПОДГОТОВКИ]


Рекомендуется Вам:

2 комментария to Всё о монтировании: от системного администрирования до IT криминалистики

  1. Sandso:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *