- IgorKa — Информационный ресурс
- Лекция №15 — монтирование файловых систем. Команда mount.
- Экспериментальный блог
- понедельник, 21 декабря 2015 г.
- mount для Windows или работа с дисками в Windows в стиле Unix
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Всё о монтировании: от системного администрирования до IT криминалистики
- Оглавление
- 1. Основы монтирования и использования команды mount
- Что такое монтирование
- Как соотносится операция монтирования с разбивкой на разделы и форматированием
- Что нужно для монтирования
- Указание типа файловой системы
- Как увидеть точки монтирования
- Как смонтировать диск
- Как смонтировать диск только для чтения
- Как размонтировать диск
- Операция привязки bind
- Перемещение точки монтирования
- Как перемонтировать диск
- Просмотр информации о блочных устройствах
- 2. Монтирование образов дисков и доступ к файлам на них
- Как просмотреть информации об образах для монтирования. Как определить файловую систему образа
- Как смонтировать файл образа диска (раздела)
- Пример просмотра содержимого образов с помощью монтирования
- 3. Таблица файловых систем /etc/fstab
- Структура записей в /etc/fstab
- Управление опциями монтирования с помощью /etc/fstab
- 4. Доступ к содержимому дисков виртуальных машин и их изменение
- 5. Файловая система в оперативной памяти
- 6. Автоматическое монтирование и его отключение
- Включение и отключение автоматического монтирования на уровне графического окружения рабочего стола
- Включение и отключение автоматического монтирования на уровне udev
- Автоматическое монтирование с помощью udisks2 и udiskie
- 7. Монтирование сетевых файловых систем
- 8. Опции команды mount и опции монтирования
- Опции команды mount
- Опции монтирования, не зависящие от файловой системы
- Опции монтирования, специфичные для файловых систем
- Файловые системы ext4, ext3, ext2, ext
- Опции монтирования для ext2
- Опции монтирования для ext3
- Опции монтирования для ext4
- Опции монтирования для ntfs
- Опции монтирования для fat
- Опции монтирования для vboxsf
- Опции монтирования для iso9660
- Опции монтирования для udf
- Опции монтирования для fuse
- Опции монтирования для tmpfs
- Опции монтирования для cifs и smb3
IgorKa — Информационный ресурс
Немного обо всем и все о немногом, или практический опыт системного администратора.
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
« Окт | Дек » | |||||
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
Лекция №15 — монтирование файловых систем. Команда mount.
На предыдущих лекциях уже несколько раз затрагивалась тема монтирования файловых систем. Сегодня (и на следующей лекции) мы более подробно остановимся на этом вопросе. В современных дистрибутивах монтирование файловых систем в большинстве случаев происходит автоматически. Когда вы вставляете флешку в USB-разъем компьютера, у вас в каталоге /media появляется каталог с именем флешки и вы можете сразу работать с устройством (читать записывать файлы). Раньше (до появления подсистемы udev), прежде чем работать с флешкой (и любым другим блочным устройством) нужно было выполнить операцию монтирования. Когда подключается флешка (будем использовать флешку в качестве примера подразумеваю любое блочное устройство) в системе появляется физическое устройство (в каталоге /dev) с которым можно работать как с блочным устройством. Например, считать информацию с помощью команды dd. Но нам необходимо получить доступ к файловой системе этого устройства, а не к самому устройству и поэтому необходимо выполнить операцию монтирования.
В монтировании присутствуют два основных компонента: физическое устройство или раздел физического устройства с определенной файловой системой (то ЧТО монтируем) и точка монтирования (то КУДА монтируем). Точка монтирования — это обычный каталог в любом месте системы, который будет родительским для файловой системы монтируемого устройства. Каталог может быть как пустым (как правило), так и с информацией. Если монтировать в каталог с информацией, то предыдущее содержимое каталога будет заменено содержимым файловой системы монтируемого устройства, но только на время монтирования. Это очень важно понять и запомнить. Как только вы размонтируете каталог, информация, которая была в нем до монтирования снова станет доступна. Но это частный случай. Все таки в большинстве случаев монтируют в пустые каталоги.
Для монтирования используется команда mount. Наиболее часто эта команда используется в виде mount -t type device dir, где после ключа -t указывается тип монтируемой файловой системы, затем указывается монтируемое устройство (device) и после этого директория (точка монтирования — dir). Например, есть флешка — устройство /dev/sdc, на нем есть раздел /dev/sdc1. Монтировать нужно именно раздел — /dev/sdc1 — отформатированную область, а не физическое устройство /dev/sdc. Команда mount для этого случая будет выглядеть так: mount -t vfat /dev/sdc1 /media/fleshka. Каталог fleshka (точка монтирования) должен существовать и если его нет, то необходимо его создать командой mkdir или выбрать другой — существующий каталог. Так как флешка была отформатирована в FAT32, то использовался тип файловой системы vfat. Если бы монтировали ntfs-разделы Windows, то следовало указать файловую систему ntfs. Все типы поддерживаемых файловых систем можно посмотреть в man mount.
Размонтирование файловой системы системы выполняется при помощи команды umount точка монтирования | устройство. Из нашего примера с флешкой umount /media/fleshka или umount /dev/sdc1. Команда umount не сможет размонтировать устройство если оно занято какой либо программой. Например, если зайти в одной консоли в каталог на смонтированном CD-ROM-диске, а затем в другой консоли попытаться выполнить команду umount, то получим ошибку:
/linux$ umount /media/cdrom0
umount: /media/cdrom0: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Команда lsof /media/cdrom0 покажет какие файлы открыты из каталога /media/cdrom0 и кем:
/linux$ lsof /media/cdrom0
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 4908 igor cwd DIR 11,0 2048 1664 /media/cdrom0
less 19323 igor cwd DIR 11,0 2048 1664 /media/cdrom0
less 19323 igor 4r REG 11,0 32 1669 /media/cdrom0/config.txt
Как видите действительно есть открытые файлы и каталоги. Чтобы корректно отмонтировать файловую систему, необходимо закрыть все открытые файлы и выйти из всех каталогов или выполнить команду umount с ключем -f — umount -f /media/cdrom0.
В связи с этим часто встречается следующая ситуация у начинающих linux-пользователей. Вставляется CD-диск в CD-привод и идет работа с файлами диска. Затем пользователь нажимает на кнопку привода, чтобы извлечь диск и ничего не происходит. Некоторое даже перегружают компьютер так как не понимают в чем дело. А дело все в том, что диск не может быть извлечен пока не будет размонтирован, а размонтирован он не может быть потому, что с него открыты файлы (он используется). Стоит только закрыть все файлы выйти из всех каталогов и привод “отдаст” диск при нажатии на кнопку извлечения. Если диск не извлекается, значит нужно выполнить команду umount для диска и после этого нажать на кнопку извлечения.
Чтобы посмотреть какие файловые системы уже смонтированы в системе можно выполнить команду mount без параметров или выполнить команду df -a. Также можно посмотреть содержимое файла /etc/mtab. Команда mount при монтировании новой файловой системы добавляет в этот файл строку с информацией о добавляемой системе. А команда umount соответственно удаляет строку касающуюся отмонтированного раздела.
Хочу отметить, что команды mount/umount не производят никаких изменений в процессе своей работы с файловыми системами устройств и не могут их повредить. Сбои чаще всего бывают в результате нештатных попыток размонтирования файловой системы, например нажатие на кнопку reset системного блока. Старайтесь избегать этого действия и применять его только в самых крайних случаях. Если доступна командная строка, то перед тем как перегрузить компьютер с помощью кнопки reset, выполните команду sync. Данная команда говорит ядру, что необходимо немедленно записать всю информацию находящуюся в буферной памяти на соответствующие физические устройства. Это позволит уменьшить риск потерять информацию.
Команда mount умеет монтировать не только устройства, но и файлы. Для этого используется такое устройство как /dev/loop. Как правило в системе есть несколько подобных блочных псевдоустройств:
/linux$ ls -l /dev/loop*
brw-rw—- 1 root disk 7, 0 2009-11-16 11:05 /dev/loop0
brw-rw—- 1 root disk 7, 1 2009-11-16 11:05 /dev/loop1
brw-rw—- 1 root disk 7, 2 2009-11-16 11:05 /dev/loop2
brw-rw—- 1 root disk 7, 3 2009-11-16 11:05 /dev/loop3
brw-rw—- 1 root disk 7, 4 2009-11-16 11:05 /dev/loop4
brw-rw—- 1 root disk 7, 5 2009-11-16 11:05 /dev/loop5
brw-rw—- 1 root disk 7, 6 2009-11-16 11:05 /dev/loop6
brw-rw—- 1 root disk 7, 7 2009-11-16 11:05 /dev/loop7
Для чего нам может понадобится монтировать файлы? Самый наглядный пример это, когда у нас есть образ диска в формате iso. Так как напрямую примонтировать файл к директории нельзя, то поступают следующим образом: монтируют файл к блочному устройству /dev/loop, а затем уже блочное устройство /dev/loop монтируется к точке монтирования. Для этого команду mount необходимо выполнить с ключом -o через который передать параметр loop:
/linux$ sudo mount -o loop /home/igor/downloads/Ubuntu_DocsPack_9.04.2.iso /home/igor/linux/docpack/
igor@adm-ubuntu:
/linux$ ls ./docpack/
Document html Jurnal_FullCircle.tar.gz Jurnal_OpenSource.tar.gz Ubuntu_Docs.tar.gz
Jurnal_BlenderEmpire.tar.gz Jurnal_LGT.tar.gz readme.txt Video_Lesson.tar.gz
Таким образом мы примонтировали файл Ubuntu_DocsPack_9.04.2.iso и можем теперь обращаться к нему как к диску.
В заключении этой лекции хочу показать команду которая покажет нам все разделы всех блочных устройств системы. Мы будем подробнее рассматривать эту команду позже. Чтобы посмотреть на все разделы которые есть в системе наберите от имени суперпользователя команду fdisk -l:
Диск /dev/sda: 250.1 ГБ, 250059350016 байт
255 heads, 63 sectors/track, 30401 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd4b146b8
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 2304 18506848+ 7 HPFS/NTFS
/dev/sda2 2305 2472 1349460 e W95 FAT16 (LBA)
/dev/sda3 2473 10263 62581207+ 7 HPFS/NTFS
/dev/sda4 10264 30401 161758485 f W95 расшир. (LBA)
/dev/sda5 10264 12826 20587266 83 Linux
/dev/sda6 12827 12947 971901 82 Linux своп / Solaris
/dev/sda7 12948 18184 42066171 7 HPFS/NTFS
/dev/sda8 18185 27967 78581916 7 HPFS/NTFS
/dev/sda9 27968 30401 19551073+ 7 HPFS/NTFS
Диск /dev/sdb: 40.0 ГБ, 40020664320 байт
255 heads, 63 sectors/track, 4865 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xb292b292
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 1 4660 37431418+ 83 Linux
/dev/sdb2 4661 4865 1646662+ 5 Расширенный
/dev/sdb5 4661 4850 1526143+ 82 Linux своп / Solaris
/dev/sdb6 4851 4865 120456 83 Linux
Диск /dev/sdc: 4016 МБ, 4016046080 байт
90 heads, 25 sectors/track, 3486 cylinders
Units = цилиндры of 2250 * 512 = 1152000 bytes
Disk identifier: 0×00000000
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdc1 4 3487 3917824 b W95 FAT32
Эта команда хороша тем, что показывает не только имя раздела, но и файловую систему раздела. Например, файловая система раздела /dev/sdc1 — FAT32.
Экспериментальный блог
Когда-то создал ради пробы. Потом решил так и оставить.
Официальная возможность получить лицензионный софт бесплатно. Это не реклама! |
понедельник, 21 декабря 2015 г.
mount для Windows или работа с дисками в Windows в стиле Unix
Как известно, одно из отличий файловых систем WinDOS и *nix в том, что в Windows каждый том обычно имеет буквенное обозначение — C:. D: и т.д., а в *nix — подключается к каталогу внутри файловой системы.
Но начиная с Windows 2000 есть возможность не только назначить тому букву или несколько, но и подключить его к пустой папке на разделе с NTFS:
Это открывает новые полезные возможности. Например, у меня на NTFS-разделе создан каталог (сюрприз!) \mnt, внутри которого куча подкаталогов — по одному на каждый сменный накопитель, когда либо подключавшийся к моему рабочему компу.
Всё бы ничего, но Windows предлагает преимущественно графические средства для подобных настроек, тогда как в *nix существует команда mount, которая умеет как показать подключенные тома, так и подключать новые.
Однако, в Windows есть команда diskpart, которая в чем-то сходна с mount. О ней и поговорим немного.
Diskpart может работать в интерактивном режиме: запускаем ее, она выводит свою подсказку и ждет ввода своей команды. А можно собрать нужные команды в файл сценария и с ключом /s запустить этот сценарий на выполнение.
Таблица взята из технета по ссылке выше. Перевод мой.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Всё о монтировании: от системного администрирования до IT криминалистики
Оглавление
8.8.1 Опции монтирования для ntfs-3g
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, это потрясающая функция! Причём ничего сложного в этом нет, если понять суть.
Как соотносится операция монтирования с разбивкой на разделы и форматированием
Монтирование — это один из видов действий, которые можно выполнять с диском (блочным устройством). Обращаясь к устройству по его имени /dev/* возможно:
- создавать новые разделы
- удалять существующие разделы
- форматировать разделы или весь диск
- выполнять низкоуровневые настройки на уровне устройства (установка флага только чтение на уровне диска, выполнять сброс кэша записи на диске, контроль Advanced Power Management и прочее), а также считывать значения этих настроек и свойств диска
- клонировать содержимое диска с помощью команды dd (или аналогов) в файл или на другой диск
- восстанавливать содержимое диска из файла командой dd
- монтировать разделы диска (или весь диск, если он не разбит на разделы)
Смотрите также:
При этом операция монтирования препятствует другим действиям, например, форматированию или созданию нового раздела. Перед тем как перейти к управлению разделами на диске или их форматированию, необходимо отмонтировать (размонтировать) диск, иначе будет получена ошибка, что диск используется.
При этом сама операция размонтирования (или перемонтирования) может завершиться неудачей и ошибкой, что диск уже занят. Это происходит потому, что какая-то программа открыла и использует файл на смонтированном диске.
Чтобы выяснить, какая программа препятствует операции размонтирования/перемонтирования, можно использовать программу 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:
Вам не нужно беспокоиться об этом разнообразии файловых систем, поскольку их поддержка уже встроена в ядро.
Чтобы просмотреть список всех поддерживаемых файловых систем на вашем дистрибутиве, выполните следующие команды:
Для работы с ещё более экзотическими файловыми системами, такими как образы дисков виртуальных машин, может понадобиться установка дополнительного программного обеспечения — об этом далее.
Поддержка файловой системы NTFS (по умолчанию используется в современных версиях Windows в качестве основной файловой системы) в Linux также имеется. Ядро обеспечивает базовую поддержку — доступ для чтения файлов. Для полной поддержки с возможностью записи необходимо установить драйвер ntfs-3g.
Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:
Для установки в Arch Linux и производные:
Поддержка exFAT должна уже присутствовать на уровне ядра, но если у вас какие-то проблемы с данной файловой системой, то установите драйвер и пакет утилит.
Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:
Для установки в Arch Linux и производные:
Поддержка Network File Systems (NFS) должна уже присутствовать на уровне ядра, но если у вас какие-то проблемы с данной файловой системой, то установите пакет утилит, включающий программу-помощник для монтирования.
Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:
Для установки в Arch Linux и производные:
Поддержка NILFS2 должна уже присутствовать на уровне ядра, но если у вас какие-то проблемы с данной файловой системой, то установите пакет утилит, включающий программу-помощник для монтирования.
Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:
Для установки в Arch Linux и производные:
Все остальные файловые системы поддерживаются ядром Linux. Имеется ввиду возможность монтирования. Если необходимо выполнить создание, проверку, изменение свойств файловых систем и другие операции, то для этого может потребоваться установка дополнительных пакетов с предназначенными для этого утилитами.
Указание типа файловой системы
Программа mount способна самостоятельно определить тип файловой системы, либо тип можно указать явно с помощью опции -t. Если опция -t не указана или указан тип auto, mount попытается угадать желаемый тип. Mount использует библиотеку blkid для определения типа файловой системы; если при этом не появится ничего знакомого, mount попытается прочитать файл /etc/filesystems или, если он не существует, /proc/filesystems. Будут опробованы все перечисленные там типы файловых систем, кроме тех, которые помечены как «nodev» (например, devpts, proc и nfs). Если /etc/filesystems оканчивается строкой с одним *, то mount затем прочитает /proc/filesystems. Во время попытки все типы файловых систем будут смонтированы с опцией монтирования silent.
Итак, подытожим, для монтирования нам не нужно беспокоиться о типе файловой системы, поскольку она определяется автоматически. Нам не нужно заботиться о поддерживаемых типах файловых систем, поскольку ядро Linux имеет встроенную поддержку большинства из них.
Как увидеть точки монтирования
Для просмотра устройств и точек их монтирования, выполните команду:
Эта команда отображает целевую точку монтирования (TARGET), исходное устройство (SOURCE), тип файловой системы (FSTYPE) и соответствующие параметры монтирования (OPTIONS) для каждой файловой системы, как показано на скриншоте. Подробности смотрите в статье «Команда findmnt для просмотра смонтированных файловых систем в Linux».
Команда findmnt без опций покажет больше данных:
Но среди вывода будут различные виртуальные файловые системы, которые нужны не всегда.
Команда mount также может показывать список точек монтирования, но эта функция в ней поддерживается только для обратной совместимости. Тем не менее, для вывода смонтированных реальных файловых систем вы можете использовать команду:
А для показа всех точек монтирования, запустите команду следующим образом:
Вы можете наблюдать процесс монтирования и размонтирования в реальном времени. К примеру, для отслеживания любых действий по монтированию и размонтированию в файловой системе используйте команду:
Как смонтировать диск
Общая команда монтирования диска имеет вид:
- ОПЦИИ — опции утилиты mount или опции монтирования
- УСТРОЙСТВО — блочное устройство или файл образа, который мы хотим подключить к файловой системе
- ДИРЕКТОРИЯ — папка, где будут доступны файлы со смонтированного устройства
Среди ОПЦИЙ можно указать, например, тип файловой системы или режим только для чтения (по умолчанию монтирование выполняется для чтения и для записи). Существует большое количество опций, некоторые из которых применимы для всех файловых систем, а некоторые из которых специфичны только для определённых файловых систем. Программа mount имеет свои опции, которые относятся к поведению этой утилиты, а также имеются опции, которые относятся к файловым системам, такие опции указываются после -o.
Некоторые опции можно указать любым из этих способов, например, опцию -w, которая означает монтирование для чтения и записи (её псевдонимы —rw, —read-write), также можно указать как «-o rw».
Справочная информация по опциям будет приведена в конце данной статьи.
На самом деле, если вы хотите смонтировать диск для чтения и записи, то можно не указывать никакие опции.
Поэтому обычно для монтирования используется команда вида:
Допустим, я хочу, чтобы новый диск с именем /dev/sda был подключён (смонтирован) к папке /mnt/disk_d (название папки можно выбрать любое, а точка монтирования необязательно должна быть в директории /mnt/ — можно сделать в домашней папке или в любой другой).
Начинаем с создания директории, в которую будет смонтирован диск:
Монтируем диск /dev/sda:
Разрешаем доступ всем в этот диск, чтобы обычный пользователь также мог смотреть и записывать туда файлы:
На самом деле, права доступа можно настроить более тонко — без полного разрешения для всех.
Как смонтировать диск только для чтения
Для монтирования диска с правами записи, используется любая из опций: -w, —rw, —read-write, -o rw. На самом деле, ни одну из них указывать не нужно, поскольку монтирования с правами записи является поведением по умолчанию.
Чтобы смонтировать диск только с правами чтения, используйте любой из вариантов опции: -r, —read-only, -o ro.
Обратите внимание, что, в зависимости от типа файловой системы, состояния и поведения ядра, система все ещё может записывать данные на устройство. Например, ext3 и ext4 будут использовать журнал, если файловая система загрязнена. Чтобы предотвратить такой доступ для записи, вы можете смонтировать файловую систему ext3 или ext4 с параметрами монтирования ro,noload или установить само блочное устройство в режим только для чтения с помощью команды blockdev:
Обратите внимание, что эффект команды blockdev проявится только если устройство не смонтировано. Если оно уже смонтировано, то изменения вступят в силу после перемонтирования.
Программа hdparm также позволяет установить флаг read-only устройства. Когда значение read-only установлено на 1, Linux не разрешает операции записи на устройство.
Чтобы установить флаг read-only:
Чтобы снять флаг read-only (устройство станет доступным для записи):
Чтобы проверить текущее состояние флага read-only:
Пример проверки значения флага read-only для диска /dev/nvme0n1:
Вывод (режим только чтение отключён, то есть возможна запись на устройство):
Альтернативный (классический) способ создания монтирования привязки только для чтения — использовать операцию повторного монтирования, например:
О привязке (bind) и перемонтировании будет далее.
Как размонтировать диск
Для размонтирования диска используется любая из двух команд:
Частой ошибкой является когда указывают с командой umount одновременно ени диска и точки монтирования — нужно указать только что-то одно.
Если вы получили ошибку, что диск занят, это означает, что какая-то программа держит открытым файл на этом диске. Чтобы выяснить, какая программа препятствует операции размонтирования/перемонтирования, можно использовать программу lsof следующим образом:
Операция привязки bind
Для перемонтирования файловой иерархии в другое место используется команда вида:
После этого вызова одно и то же содержимое станет доступно в двух местах.
Важно понимать, что «привязка» не создаёт никаких узлов второго класса или специальных узлов в VFS ядра. «Привязка» — это просто ещё одна операция по присоединению файловой системы. Нигде не хранится информация о том, что файловая система была прикреплена операцией «привязки». СТАРАЯ_ДИРЕКТОРИЯ и НОВАЯ_ДИРЕКТОРИЯ независимы, более того, СТАРУЮ_ДИРЕКТОРИЮ можно размонтировать.
Можно перемонтировать один единичный файл в другой единичный файл. Также можно использовать привязку монтирования для создания точки монтирования из обычного каталога, например:
Вызов привязки mount подключает только (часть) единичной файловой системы, но не возможные подмонтирования. Всю файловую иерархию, включая субмонтирования, можно прикрепить на втором месте, используя:
Обратите внимание, что параметры монтирования файловой системы, поддерживаемые ядром, останутся такими же, как и в исходной точке монтирования. Параметры монтирования в пользовательском пространстве (например, _netdev) не будут скопированы при монтировании, и необходимо явно указать параметры в командной строке монтирования.
Начиная с util-linux 2.27 mount позволяет изменять параметры монтирования, передавая соответствующие параметры вместе с —bind. Например:
Эта функция не поддерживается ядром Linux; она реализуется в пользовательском пространстве с помощью дополнительного системного вызова перемонтирования mount. Это решение не атомарно.
Альтернативный (классический) способ создания монтирования привязки только для чтения — использовать операцию повторного монтирования, например:
Обратите внимание, что привязка только для чтения создаст точку монтирования только для чтения (запись 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».
Перемещение точки монтирования
Можно переместить точку монтирования в другую директорию, для этого используется команда вида:
Это приведёт к тому, что содержимое, которое ранее отображалось в СТАРАЯ_ДИРЕКТОРИЯ, теперь будет доступно в НОВАЯ_ДИРЕКТОРИЯ. Физическое расположение файлов не меняется. Обратите внимание, что СТАРАЯ_ДИРЕКТОРИЯ должен быть точкой монтирования.
Также обратите внимание, что перемещение монтирования, находящегося под общим монтированием, недопустимо и не поддерживается. Используйте команду findmnt, чтобы увидеть текущие флаги распространения:
Как перемонтировать диск
Можно перемонтировать уже смонтированную файловую систему. Обычно это используется для изменения флагов монтирования файловой системы, особенно для того, чтобы сделать файловую систему доступной для записи. Это не меняет устройство или точку монтирования. Эта операция отличается от предыдущих двух: от привязки и перемещения она отличается тем, что не создаётся новая точка монтирования и не перемещается точка монтирования, но меняются опции монтирования.
Функциональность повторного монтирования соответствует стандартному способу работы команды mount с параметрами из fstab. Это означает, что mount не читает fstab (или mtab) только тогда, когда указаны и устройство, и каталог.
Команда перемонтирования имеет общий вид:
К примеру, чтобы перемонтировать диск, смонтированный в /mnt/disk_d, установив права доступа на «только для чтения»:
Можно также указать одновременно устройство и точку монтирования:
Пример перемонтирования корневой файловой системы с опцией «чтение и запись»:
Опция «чтение и запись» может быть помещена в опцию строки команды -o, например:
После этого вызова все старые параметры монтирования заменяются, а произвольные данные из fstab (или mtab) игнорируются, за исключением параметра loop=, который генерируется внутри и поддерживается командой mount.
После этого вызова mount читает fstab и объединяет эти параметры с параметрами из командной строки (-o). Если в fstab не найдена точка монтирования, разрешается повторное монтирование с неуказанным источником.
mount позволяет использовать —all для повторного монтирования всех уже смонтированных файловых систем, соответствующих указанному фильтру (-O и -t). Например, команда:
перемонтирует все уже смонтированные файловые системы 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 соответственно.
Итак, необходимо правильно определить имя диска (или имя раздела, если диск разбит на разделы).
Обзорную информацию о дисках в системе может дать команда:
Эта команда показала, что в системе есть диски трёх типов: SCSI (внутренний жёсткий диск), [SAT], ATA (жёсткий диск, подключённый по USB переходнику к компьютеру), NVMe (внутренний твердотельный диск).
На самом деле, вывод команды неполный (пропущена USB флешка) и в нём полностью отсутствует информация о разделах. Тем не менее она может помочь вам сориентироваться в присутствующих на вашей системе дисках.
Хорошим вариантом является следующая программа:
Она выводит информацию о каждом диске и каждом разделе. В информации присутствует модель диска, размер и тип разделов — основываясь на этих данных можно найти название нужного раздела.
Если вы всё равно не можете разобраться, то со съёмными носителями (внешними USB дисками и флешками), вы можете поступить так: выполнить команду fdisk -l до подключения диска, затем подключить диск/флешку, выполнить команду fdisk -l ещё раз и посмотреть, какой диск добавился.
Если диск монтируется автоматически, то его имя можно увидеть с помощью команда мониторинга:
Ещё одна команда, показывающая обзорную информацию об именах дисках, их файловых системах, ярлык и занятое пространство (в процентах) и доступный объём свободного места (в гигабайтах):
Возможно вы сможете найти полезную информацию в LABEL разделов, чтобы показать сразу все разделы, выполните:
Если вы уже почти определились с разделом и хотите подтвердить свою правоту, то информацию по конкретному разделу можно получить командой вида:
Команда file также может рассказать много интересного про раздел:
Смотрите также:
2. Монтирование образов дисков и доступ к файлам на них
Как просмотреть информации об образах для монтирования. Как определить файловую систему образа
С помощью команды file можно анализировать, какая файловая система используется в файлах, являющихся образами дисков.
Пример проверки файла test.image:
Пример анализа образа disk.ntfs:
Как можно убедиться, это образ с файловой системой NTFS.
Проверка образа rootfs.sfs:
Это образ с файловой системой Squashfs.
Анализ образа ext3-img-kw-1.dd:
Это образ с файловой системой ext3.
Чтобы выполнять команды по монтированию файлов-образов, вы можете создать образы, например, сделав клон флешки примерно следующим образом:
В этой команде утилита dd считывает содержимое диска /dev/sdc и сохраняет его в файл /mnt/disk_d/disk.ntfs. Помните, что программа dd считывает не файлы, а байты со всего диска. Поэтому получаемый образ по размеру будет равен диску (разделу) с которого он был сделан, независимо от заполненности этого диска. То есть если флешка размером 8 Гигабайт и на ней ничего не записано, то всё равно получится образ размером 8 Гигабайт.
Вы также можете перейти на страницу http://dftt.sourceforge.net/ — на ней есть ссылки на уроки, с которых вы можете скачать образы самых разных файловых систем.
Как смонтировать файл образа диска (раздела)
Общий вид команды монтирования файлов образов следующий:
- ОПЦИИ — опции утилиты mount или опции монтирования
- ОБРАЗ — файл с образом диска
- ДИРЕКТОРИЯ — папка, где будут доступны файлы со смонтированного устройства
По сути, синтаксис монтирования образов с помощью mount отличается от монтирования диска тем, что вместо УСТРОЙСТВА указывается путь до ОБРАЗА. ОПЦИИ указывать необязательно, тип файловой системы будет определён автоматически.
К примеру, нужно смонтировать образ диска disk.ntfs, расположенный по пути /mnt/disk_d/disk.ntfs.
Начнём с создания временной точки монтирования в /tmp:
Монтируем образ /mnt/disk_d/disk.ntf в папку /tmp/disk:
Просмотрим содержимое образа disk.ntfs:
Мы можем видеть файлы, размещённые в образе disk.ntfs, их можно открывать и копировать.
Некоторые файловые системы (например, ISO образы) доступны только для чтения. Но в данном случае мы можем записать любые изменения в папку /tmp/disk и они сохраняться в файле disk.ntfs даже после размонтирования и повторного монтирования диска disk.ntfs.
Для размонтирования образа можно использовать любую из команд:
Пример просмотра содержимого образов с помощью монтирования
Для практики, возьмём установочный образ дистрибутива Linux. Они интересны тем, что там может быть сразу несколько файлов образов с разными файловыми системами. Для примера посмотрим содержимое установочного диска Manjaro.
Создадим папку для монтирования:
У меня установочный диск расположен по пути /mnt/disk_d/Share/manjaro-kde-20.0.3-200606-linux56.iso, а монтировать я его буду в /tmp/iso, тогда команда следующая:
Получено следующее сообщение:
Оно означает, что монтирование было выполнено, но источник защищён от записи, поэтому монтирование выполнено с правами только чтение. Помните, что последующие монтирования файлов с этого образа могут быть формально доступны для записи, но поскольку начальное хранилище открыто только для чтения, то любые сделанные изменения не сохранятся.
Посмотрим содержимое установочного диска:
Там среди прочего есть файл efi.img, проверим, какая у него файловая система:
Похоже, что это FAT.
Мы можем посмотреть содержимое этого файла. Создадим точку монтирования для него
И смонтируем файл /tmp/iso/efi.img в папку /tmp/efi:
Теперь нам доступно содержимое этого файла:
Вернёмся к нашему смонтированному ISO образу и посмотрим содержимое папки manjaro/x86_64/:
Крошечные файлы с расширением .md5 это просто контрольные суммы. Но файлы desktopfs.sfs, livefs.sfs, mhwdfs.sfs и rootfs.sfs интереснее. Они содержат основные файлы, необходимые для работы LIVE образа и установки дистрибутива Linux.
Мы можем посмотреть содержимое любого из этих файлов. Допустим, нас интересует desktopfs.sfs.
Создаём для него новую временную точку монтирования:
И монтируем файл /tmp/iso/manjaro/x86_64/desktopfs.sfs в папку /tmp/desktopfs:
Смотрим содержимое файла desktopfs.sfs:
Вы можете самостоятельно смонтировать и изучить содержимое других образов .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:
Первое поле (fs_spec).
Это поле описывает специальное блочное устройство, удалённую файловую систему или образ файловой системы для loop устройства, которое нужно смонтировать, или файл подкачки, или раздел подкачки, который нужно включить.
Для обычных монтирований оно будет содержать (ссылку на) узел специального блочного устройства (созданный утилитой mknod) для монтируемого устройства, например, «/dev/cdrom» или «/dev/sdb7». Для монтирования NFS это поле — : , например, «knuth.aeb.nl:/». Для файловых систем без хранилища можно использовать любую строку, которая будет отображаться, например, в выводе df. Обычно для procfs используется «proc»; а для tmpfs используются «mem», «none» или «tmpfs». Другие специальные файловые системы, такие как udev и sysfs, обычно не указываются в fstab.
Вместо имени устройства можно указать LABEL= или UUID= . Это рекомендуемый метод, поскольку имена устройств часто совпадают с порядком обнаружения оборудования и могут измениться при добавлении или удалении других дисков. Например, «LABEL=Boot» или «UUID=3e6be9de-8139-11d1-9106-a43f08d823a6». (Используйте инструмент, специфичный для файловой системы, например e2label, xfs_admin или fatlabel, чтобы установить LABEL в файловых системах).
Также можно использовать ARTUUID= и PARTLABEL=. Эти идентификаторы разделов поддерживаются, например, для таблицы разделов GUID (GPT).
Чтобы узнать UUID всех дисков используйте любую из следующих команд:
Чтобы узнать UUID определённого диска, используйте любую из следующих команд:
Обратите внимание, что 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» (например, во время загрузки)
позволяет монтировать указанному пользователю
позволяет монтировать указанному владельцу устройства
или x- для использования программами поддержки fstab
nofail
не сообщает об ошибках для этого устройства, если оно не существует.
Пятое поле (fs_freq).
Это поле используется dump, чтобы определить, какие файловые системы нужно выгрузить. По умолчанию, если не присутствует, — ноль (не выгружать).
Шестое поле (fs_passno).
Это поле используется fsck для определения порядка, в котором выполняется проверка файловых систем во время загрузки. Корневая файловая система должна быть указана с fs_passno равным 1.
Для других файловых систем значение fs_passno должно быть равно 2. Файловые системы на диске будут проверяться последовательно, но файловые системы на разных дисках будут проверяться одновременно, чтобы использовать параллелизм, доступный на оборудовании. По умолчанию нулевое значение (не использовать fsck), если оно отсутствует.
Рассмотрим пример реального файла /etc/fstab на моей системе:
Этот файл отчасти создан автоматически, отчасти дописан вручную.
Автоматическая часть была создана командой в соответствии с «Инструкцией по установке Arch Linux»:
Самая первая строка является комментарием и просто напоминает значение полей.
Затем строка «# /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:\).
В этом случае мне нужно отмонтировать диск и заново его монтировать примерно следующей командой:
Это ненужные действия, которые можно избежать, прописав опции монтирования и точку монтирования в файле fstab. Открываем этот файл для редактирования:
Мне необходимо узнать UUID данного диска (поскольку при подключении он иногда получает имя /dev/sdc1, иногда /dev/sdd1 или другие, например, если к компьютеру уже подключены другие диски или флешки). UUID диска можно узнать например так:
Теперь в файл /etc/fstab я добавляю следующие строки:
Первая из них — комментарий, который напомнит мне, к чему относится эта запись.
Затем идёт строка, с описанными выше полями. В первом поле я идентифицирую диск — я использую не его имя, а UUID, поскольку имя устройства может меняться. Затем указываю точку монтирвоания (/mnt/disk_e). Затем тип файловой системы (ntfs). Затем идут опции, обратите внимание, что ОБЯЗАТЕЛЬНО нужно добавить опцию nofail, иначе если этот диск не подключён к компьютеру во время загрузки, компьютер может вовсе не загрузиться из-за ошибки в файле /etc/fstab. Затем идут ещё две цифры необязательных полей (отмена выгрузки файловых систем и отмена проверки).
Теперь в любое время при подключении этого диска он будет автоматически смонтирован в /mnt/disk_e. Это можно проверить с помощью команды:
Примечание: вы можете обратить внимание, что опции монтирования из файла /etc/fstab и опции монтирования на скриншоте не совпадают. Дело в том, что программа mount может использовать программы-помогатели, которые фактически и выполняют монтирования. При вызове программ-помогателей некоторые опции могут теряться или игнорироваться программой, которая в конечном счёте выполняет монтирование. По этой же причине, кстати, вместо файловой системы ntfs указана fuseblk — это означает, что работу по монтированию диска выполнила FUSE.
Ещё одним следствием описания монтирования в файле /etc/fstab является то, что для указанных там дисков можно использовать сокращённую команду монтирования — указывая только точку монтирования или только имя устройства, например:
Эта команда сработает как надо, смонтировав диск /dev/sdc1 в /mnt/disk_e — недостающие сведения и опции монтирования будут взяты из /etc/fstab.
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 и их производные выполните:
Для установки в Arch Linux, Manjaro, BlackArch и их производные выполните:
Данный пакет включает в себя большое количество утилит:
- 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 (интерактивный шелл) требует глубокого изучения, но позволит вам работать с содержимым виртуальных дисков в интерактивном режиме, или писать скрипты для автоматической обработки последовательности действий.
Многие из перечисленных программ являются скриптами, автоматизирующими действия. То есть они выполняют монтирование образа виртуального диска, делают указанное действие и размонтируют.
Типичная команда монтирования виртуального диска:
После опции -a нужно указать виртуальный диск для монтирования.
Рассмотрим ещё несколько опций:
Опция -i (—inspector) означает использовать код virt-inspector для проверки дисков в поисках операционной системы и монтирование файловых систем, как если бы они были смонтированы на реальной виртуальной машине.
Опция —live позволяет подключиться к работающей виртуальной машине, эта опция является экспериментальной.
Опция -r (—ro) добавляет устройство и монтирует всё только для чтения. Также запрещает запись и делает диск доступным только для чтения для FUSE. Это настоятельно рекомендуется, если вы не собираетесь редактировать гостевой диск. Если гость работает, а эта опция не указана, существует высокий риск повреждения диска в гостевой системе.
Опция -w (—rw) изменяет параметры -a, -d и -m, так что диски добавляются, а монтирование выполняется для чтения-записи.
Итак, смонтируем диск виртуальной машины Windows Server 2019.vdi.
Создадим точку монтирования:
Монтируем диск /mnt/disk_d/Виртуальные машины/Windows Server 2019.vdi в папку /tmp/guest:
Смотрим содержимое смонтированного диска:
Теперь посмотрим содержимое папки C:/Users/Администратор/Downloads/:
Для размонтирования используется команда вида:
Извлечение кустов реестра Windows
С помощью virt-win-reg можно извлекать кусты реестра Windows, в том числе те, которые доступны только для учётной записи System.
Общий вид команды:
По умолчанию содержимое будет выведено на экран, поэтому для сохранения данных в файл нужно воспользоваться перенаправлением вывода.
Например, команда для извлечения куста HKEY_LOCAL_MACHINE\SYSTEM из операционной системы Windows, чей виртуальный диск расположен в /mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi и сохранение полученных данных в файл SYSTEM.reg:
Ещё один пример, извлечение куста реестра HKEY_LOCAL_MACHINE\SAM из образа диска /mnt/disk_d/Виртуальные машины/Windows Server 2019.vdi и сохранение данных в файл SAM.reg:
Просмотр свободного места
Программа virt-df покажет разделы дисков и количество свободного места на них.
Общий вид команды:
Пример вывода для ОС Linux:
Ещё один пример команды:
Пример вывода для ОС Windows:
Обратите внимание, что разделы в Windows названы по аналогии с разделами Linux.
Анализ виртуальных дисков
Команда virt-inspector проведёт анализ файловых систем и покажет установленные программы, а также некоторую другую информацию об операционных системах.
Общий вид команды:
Вывод списка файлов
Вы можете посмотреть содержимое любой папки на виртуальном диске с помощью virt-ls.
Общий вид команды:
Обратите внимание, что даже в Windows путь начинается с / (обозначение корневой папки).
Следующая команда покажет содержимое корня диска C: для виртуального диска /mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi:
Просмотр содержимого файла
Программа virt-cat покажет содержимое любого файла. Файл будет выведен прямо на экран (в стандартный вывод), поэтому если это бинарный файл, то используйте перенаправление вывода для его сохранения.
Общий вид команды:
Обратите внимание, что даже в Windows путь начинается с / (обозначение корневой папки).
Следующая команда покажет содержимое файла C:\DumpStack.log.tmp из виртуального диска /mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi:
Просмотр разделов дисков
Программа virt-filesystems просто покажет количество разделов дисков и их номера.
Общий вид команды:
Пример команды и вывода для Windows:
Пример команды и вывода для Linux:
5. Файловая система в оперативной памяти
Файловая система tmpfs может найти повседневное применение в вашей деятельности, поскольку она невероятно быстрая и может помочь снизить нагрузку на ваше постоянное хранилище (особенно актуально тем, у кого Linux установлен на флешку или карту памяти).
tmpfs — это виртуальная файловая система, располагающаяся в оперативной памяти.
Средство tmpfs позволяет создавать файловые системы, содержимое которых находится в виртуальной памяти. Поскольку файлы в таких файловых системах обычно находятся в ОЗУ, доступ к файлам осуществляется очень быстро.
Файловая система создаётся автоматически при монтировании файловой системы с типом tmpfs с помощью следующей команды:
Файловая система tmpfs имеет следующие свойства:
- Файловая система может использовать пространство подкачки, когда этого требует физическая нагрузка на память.
- Файловая система потребляет столько физической памяти и пространства подкачки, сколько требуется для хранения текущего содержимого файловой системы.
- Во время операции повторного монтирования (mount -o remount) размер файловой системы может быть изменён (без потери существующего содержимого файловой системы).
Если файловая система tmpfs размонтирована, её содержимое теряется (удаляется).
Вы можете скопировать в tmpfs файлы для максимально быстрого доступа. Это могут быть файлы баз данных или веб-сервера.
Ещё одна цель использования — снизить износ постоянного хранилища. Это не особенно актуально для жёсткого диска или твердотельного диска — современные модели при любом типе домашнего использования переживут нас. Но это может быть актуально, если система установлена на карту памяти. Вы можете разместить в оперативную память приложение, которое постоянно использует хранилище (часто обращается к файлам или непрерывно сохраняет файлы), тем самым ускорится работа этого приложения, а также всей системы за счёт снижения нагрузки на карту памяти.
Ещё одна возможная причина использование — незаметность, при работе в tmpfs всё будет происходить в оперативной памяти, а на постоянных хранилищах не останется никаких следов.
Рассмотрим пример копирования файлов — насколько быстрее это будет происходить в tmpfs по сравнению с дисками.
Создадим точку монтирования:
Создадим виртуальную файловую систему размером 20 Гигабайт в оперативной памяти:
Скопируем туда файл размером в несколько Гигабайт:
Проверим, сколько времени понадобится для создания копии этого файла в оперативной памяти:
Понадобилось совсем немного времени — примерно полторы секунды.
А теперь сделаем копию этого же файла на жёстком диске:
Понадобилось 14 секунд — в 10 раз больше времени.
Итак, используя tmpfs можно добиться максимальной скорости доступа к файлам.
6. Автоматическое монтирование и его отключение
Включение и отключение автоматического монтирования на уровне графического окружения рабочего стола
Если подключить к компьютеру с Linux флешку или внешний USB диск, то система его автоматически смонтирует и откроет окно файлового менеджера. Причём окно будет открыто даже если у вам это не нужно и даже если у вас уже открыто окно файлового менеджера. Это довольно раздражительно.
Отключение автоматического открытия файлового менеджера после монтирования
Чтобы это отключить, установите пакет dconf-editor.
Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:
Для установки в Arch Linux и производные:
После установки запустите в консоли:
Для 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, а не для вашего пользователя.
Также можно отключить автоматический запуск файлового менеджера после монтирования из командной строки.
Как отключить автоматическое монтирование дисков
Если вам не нужно автоматическое монтирование дисков вообще, то его также можно отключить.
Чтобы это сделать с помощью dconf-editor, для Cinnamon перейдите в пункты: org -> cinnamon -> desktop -> media-handling. И отключите automount.
Для GNOME перейдите в пункты: org -> gnome -> desktop -> media-handling и отключите automount.
Для Xfce4 перейдите в пункты: org -> gnome -> desktop -> media-handling и отключите automount.
Отключение в командной строке.
Включение и отключение автоматического монтирования на уровне 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 — плохая практика. Рекомендуемое решение:
-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. Например, команда:
монтирует все файловые системы, кроме тех, для которых параметр _netdev указан в поле параметров в файле /etc/fstab.
Она отличается от -t тем, что каждый параметр соответствует точно; ведущее «no» в начале одного варианта не отменяет остальных.
Опции -t и -O действуют кумулятивно; то есть команда
монтирует все файловые системы ext2 с параметром _netdev, а не файловые системы, которые либо ext2, либо с указанным параметром _netdev.
-o, —options ОПЦИИ
Использовать указанные параметры монтирования. Аргумент ОПЦИИ представляет собой список, разделённый запятыми. Например:
—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, но операции монтирования выполняются в другом месте, например:
монтирует всё из системного 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. Например, команда
монтирует все файловые системы, кроме систем типа 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 выполните команду вида:
Следующие параметры применяются к любой монтируемой файловой системе (но на самом деле не каждая файловая система учитывает их — например, параметр 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. . Даже там, где поддерживаются 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 интерпретирует запятую как разделитель между параметрами монтирования. Не забывайте, что оболочка удаляет кавычки, и поэтому требуется двойное цитирование. Например:
Больше подробностей смотрите в справке по 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) только тогда, когда указаны и устройство, и каталог.
После этого вызова все старые параметры монтирования заменяются, а произвольный материал из fstab (или mtab) игнорируется, за исключением параметра loop=, который генерируется внутри и поддерживается командой mount.
После этого вызова mount читает fstab и объединяет эти параметры с параметрами из командной строки (-o). Если в fstab не найдена точка монтирования, то разрешено перемонтирование с неуказанным источником.
mount позволяет использовать —all для перемонтирования всех уже смонтированных файловых систем, которые соответствуют указанному фильтру (-O и -t). Например:
перемонтирует все уже смонтированные файловые системы 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 и недоступных для хранения файлов. Таким образом
(Обратите внимание, что в этом примере показано, что можно добавить параметры командной строки к параметрам, указанным в /etc/fstab.)
check=none или nocheck
Во время монтирования проверка не выполняется. Это значение по умолчанию. Это быстро. Целесообразно время от времени вызывать e2fsck, например во время загрузки. Поведение не по умолчанию не поддерживается (параметры check=normal и check=strict были удалены). Обратите внимание, что эти параметры монтирования не должны поддерживаться, если драйвер ядра ext4 используется для файловых систем ext2 и ext3.
debug
Печать отладочной информации при каждом (повторном) монтировании.
Определяет поведение при обнаружении ошибки. (Либо игнорировать ошибки и просто отметить файловую систему как ошибочную и продолжить (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
Не загружать журнал при монтировании. Обратите внимание: если файловая система не была размонтирована чисто, пропуск воспроизведения журнала приведёт к тому, что файловая система будет содержать несогласованности, которые могут привести к любому количеству проблем.
Задаёт режим ведения журнала для данных файла. Метаданные всегда журналируются. Чтобы использовать в корневой файловой системе режимы, отличные от 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).
Помимо старой системы квот (как в 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() при замене существующих файлов с помощью таких шаблонов, как
Если 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 для преобразования имён файлов.
При 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.
Установит размер блока (по умолчанию 512). Эта опция устарела.
uid=ЗНАЧЕНИЕ и gid=ЗНАЧЕНИЕ
Установит владельца и группу всех файлов. (По умолчанию: UID и GID текущего процесса.)
umask=ЗНАЧЕНИЕ
Установит umask (битовую маску разрешений, которых нет). По умолчанию используется маска umask текущего процесса. ЗНАЧЕНИЕ даётся в восьмеричном формате.
dmask=ЗНАЧЕНИЕ
Установит umask только для каталогов. По умолчанию используется маска umask текущего процесса. ЗНАЧЕНИЕ даётся в восьмеричном формате.
fmask=ЗНАЧЕНИЕ
Установит umask только для обычных файлов. По умолчанию используется маска umask текущего процесса. ЗНАЧЕНИЕ даётся в восьмеричном формате.
allow_utime=ЗНАЧЕНИЕ
Эта опция управляет проверкой разрешений mtime/atime.
20
Если текущий процесс находится в группе идентификаторов группы файлов, вы можете изменить метку времени.
2
Другие пользователи могут изменить метку времени.
По умолчанию устанавливается из опции «dmask». (Если каталог доступен для записи, также разрешено использование utime(2). Т.е.
Обычно utime(2) проверяет, является ли текущий процесс владельцем файла или что у него есть возможность CAP_FOWNER. Но файловые системы FAT не имеют UID/GID на диске, поэтому обычная проверка слишком негибкая. С помощью этой опции можно её расслабить.
check=ЗНАЧЕНИЕ
Можно выбрать три разных уровня разборчивости:
r[elaxed]
Допускаются верхний и нижний регистр и эквивалентны, части длинного имени усекаются (например, verylongname.foobar становится verylong.foo), ведущие и встроенные пробелы допускаются в каждой части имени (имя и расширение).
n[ormal]
Подобно «relaxed», но многие специальные символы (*, ?, >6) & 0x3f), (u>>12).
posix
Разрешить два файла с именами, которые отличаются только регистром. Эта опция устарела.
nonumtail
Сначала попробовать сделать короткое имя без порядкового номера, а затем попробовать name
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.
Linux поддерживает High Sierra, предшественник стандарта ISO 9660 для файловых систем CD-ROM. Она автоматически распознаётся файловой системой iso9660, поддерживаемой в Linux.
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=relaxed имя файла сначала преобразуется в нижний регистр перед выполнением поиска. Вероятно, это имеет смысл только вместе с norock и map=normal. (По умолчанию: check=strict.)
uid=value и gid=value
Дать всем файлам в файловой системе указанный идентификатор пользователя или группы, возможно, переопределив информацию, содержащуюся в расширениях Rock Ridge. (По умолчанию: uid=0,gid=0.)
Для томов, не относящихся к Rock Ridge, обычное преобразование имён сопоставляет заглавные буквы и прописные ASCII, удаляет конечный «;1» и конвертирует «;» в «.». С map=off перевод имени не выполняется. Смотрите также опцию norock. (По умолчанию: map=normal.) map=acorn похож на map=normal, но также применяет расширения Acorn, если они есть.
mode=ЗНАЧЕНИЕ
Для томов, отличных от Rock Ridge, устанавливает для всех файлов указанный режим. (По умолчанию: разрешение на чтение и выполнение для всех.) Для значений восьмеричного режима требуется начальный 0.
unhide
Также показывать скрытые и связанные файлы. (Если обычные файлы и связанные или скрытые файлы имеют одинаковые имена файлов, это может сделать обычные файлы недоступными.)
Установите размер блока на указанное значение. (По умолчанию: 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= (или обычно в дополнение к нему), в результате UDF не сохраняет uid на носителе. Фактически записанный uid — это 32-битный uid переполнения -1, как определено стандартом UDF. Значение задаётся либо как , которое является допустимым именем пользователя, либо как соответствующий десятичный идентификатор пользователя, либо как специальная строка «forget».
gid=
Сделать все файлы в файловой системе принадлежащими данной группе. gid=forget можно указать независимо от gid= (или обычно в дополнение к нему), в результате 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= .
gid=ignore
Игнорируется, используйте вместо этого gid= .
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(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 с помощью следующей команды:
Файловая система 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=ИМЯ ФАЙЛА
Указывает файл, содержащий имя пользователя и/или пароль и, возможно, имя рабочей группы. Формат файла:
Это предпочтительнее чем иметь пароли в виде открытого текста в общем файле, таком как /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, могут быть недоступны, если общий ресурс смонтирован без этого параметра.