В Linux команда mount
позволяет пользователям монтировать (присоединять) дополнительную файловую систему к определённой точке монтирования текущей системы.
Содержание
Введение
Иерархия файловой системы Linux организована в виде большой древовидной структуры, где файловая система начинается с корневого каталога /
. Все остальные дочерние файловые системы отходят от корневого каталога.
Эти файлы могут быть распределены на различных устройствах в зависимости от вашей таблицы разделов fstab
. Родительский каталог монтируется к этому дереву в /
. Все остальные дочерние файловые системы отходят от корневого каталога.
Все файловые системы не монтируемые автоматически можно смонтировать вручную с помощью графического интерфейса (если он доступен) или с помощью команды mount
, которая передает инструкции монтирования ядру, завершающему операцию.
Команда указывает ядру смонтировать файловую систему, найденную в устройстве [device]
в каталог [dir]
. Опция -t [type]
необязательна и описывает лишь тип файловой системы (EXT3, EXT4, BTRFS, XFS, HPFS, VFAT и т. д.).
Если команде mount
не указан целевой каталог, то монтируются файловые системы, перечисленные в файле /etc/fstab
.
Пока файловая система смонтирована, предыдущее содержимое, владелец и режим каталога [dir]
невидимы, а имя пути [dir]
относится к корню файловой системы.
Синтаксис
mount -t [type] [device] [dir]
Параметры
Наиболее распространённые опции команды mount
:
- -a
- Монтирование всех файловые системы, перечисленных в
/etc/fstab
- -F
- Разветвление нового монтирования каждого устройства (используется в сочетании с опцией
-a
) - -l
- Список всех смонтированных файловых систем и добавление меток к каждому устройству
- -L [label]
- Монтирование раздела с указанным
[label]
- -M
- Перемещение поддерева в другое место
- -O [opts]
- При использовании в сочетании с опцией
-a
ограничивает набор файловых систем - -r
- Монтирование файловой системы в режиме только для чтения
- -R
- Перемонтирование поддерева в другом месте, делая его содержимое доступным в обоих местах
- -t [type]
- Указание типа файловой системы
- -T
- Использование для указания альтернативного файла
/etc/fstab
- -v
- Монтирование подробно с описанием каждой операции
- -h
- Отображение файла справки со всеми параметрами команды
- -V
- Отображение информации о версии программы
Использование команды mount в Linux
Результат монтирования
Команда mount
возвращает одно из следующих значений, указывающих на статус завершения процесса:
- 0
- Успех
- 1
- Неверный вызов команды или недостаточные разрешения
- 2
- Системная ошибка
- 4
- Ошибка внутреннего монтирования
- 8
- Операция прервана пользователем
- 16
- Проблемы с записью или блокировкой файла
/etc/mtab
- 32
- Сбой монтирования
- 64
- По крайней мере, одна операция монтирования прошла успешно, но не все
Запуск без параметров
Запуск команды mount
без каких-либо параметров позволяет отобразить все смонтированные файловые системы. В выходных данных также отображаются точки монтирования и параметры монтирования:
oleg@mobile:~:$ mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=921624k,nr_inodes=230406,mode=755,inode64)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
/dev/sda6 on / type ext4 (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=34,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14043)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
ramfs on /run/credentials/systemd-tmpfiles-setup-dev.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
ramfs on /run/credentials/systemd-sysctl.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=932020k,nr_inodes=1048576,inode64)
/dev/sda5 on /mnt/ubuntu type ext4 (rw,relatime)
/dev/sda3 on /mnt/win_d type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)
/dev/sda2 on /mnt/win_c type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
/dev/sda8 on /home type ext4 (rw,relatime)
ramfs on /run/credentials/systemd-tmpfiles-setup.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=186400k,nr_inodes=46600,mode=700,uid=1000,gid=984,inode64)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=984)
oleg@mobile:~:$
Список определённых файловых систем
Параметр -t
позволяет пользователям указать, какие файловые системы отображать при выполнении команды mount
. Например, чтобы показать только файловые системы ext4
, выполняется следующая команда:
oleg@mobile:~:$ mount -t ext4
/dev/sda6 on / type ext4 (rw,relatime)
/dev/sda5 on /mnt/ubuntu type ext4 (rw,relatime)
/dev/sda8 on /home type ext4 (rw,relatime)
oleg@mobile:~:$
Монтирование файловой системы
Для монтирования файловой системы указывается каталог или точка монтирования, к которой будет присоединена файловая система. Например, чтобы смонтировать файловую систему /dev/sdc
в каталог /mnt/sdc
следует выполнить:
oleg@mobile:~:$ sudo mount /dev/sdc /mnt/sdc
Для указания дополнительных параметров монтирования используется флаг -o
, за которым перед именем устройства следуют параметры:
mount -o [options] [device] [dir]
Монтирование файловой системы с помощью /etc/fstab
Файл конфигурации /etc/fstab
содержит строки, описывающие место монтирования системных устройств и используемые ими параметры. Файл fstab
используется для внутренних устройств, таких как устройства CD/DVD, также для общих сетевых ресурсов (samba /nfs/sshfs). Съёмные устройства обычно монтируются иначе.
При ручном монтировании устройства и предоставлении команде mount
только одного параметра ([dir]
или [device]
) утилита считывает содержимое файла конфигурации /etc/fstab
. В случае наличия в его списке указанных файловых систем команда mount
использует параметры монтирования, приведённые в /etc/fstab
.
Пример структуры файла /etc/fstab
:
oleg@mobile:~:$ cat /etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.
# /dev/sda6
UUID=6d031569-0134-4713-9cb8-4f55968dc362 / ext4 rw,relatime 0 1
# /dev/sda8
UUID=e0b4595f-9e86-4dcc-b334-7f50a012a79b /home ext4 rw,relatime 0 2
# /dev/sda5
# UUID=92369345-9663-4edb-86c1-58578e43edb5 /mnt/ubuntu ext4 rw,relatime 0 2
/dev/sda5 /mnt/ubuntu ext4 rw,relatime 0 2
# /dev/sda2
UUID=2C2E8B882E8B49B2 /mnt/win_c ntfs defaults 0 0
# /dev/sda3
UUID=0292C00092BFF66F /mnt/win_d ntfs uid=oleg,gid=users 0 0
# /dev/sda7
UUID=2cb45ba1-0d5f-493e-bb45-77b966f5fd6e none swap defaults 0 0
/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
oleg@mobile:~:$
Монтирование съёмного устройства
Подавляющее большинство современных дистрибутивов Linux автоматически монтируют съёмные устройства после их вставки. Однако, если автоматическое монтирование не удалось или вы отключили автоматическое монтирование по каким-либо своим причинам, то для монтирования съёмного устройства вручную выполняется ряд действий.
Смотрим смонтированные устройства /dev/sd*
:
oleg@mobile:~:$ ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 фев 6 07:55 /dev/sda
brw-rw---- 1 root disk 8, 1 фев 6 07:55 /dev/sda1
brw-rw---- 1 root disk 8, 2 фев 6 07:55 /dev/sda2
brw-rw---- 1 root disk 8, 3 фев 6 07:55 /dev/sda3
brw-rw---- 1 root disk 8, 4 фев 6 07:55 /dev/sda4
brw-rw---- 1 root disk 8, 5 фев 6 07:55 /dev/sda5
brw-rw---- 1 root disk 8, 6 фев 6 07:55 /dev/sda6
brw-rw---- 1 root disk 8, 7 фев 6 07:55 /dev/sda7
brw-rw---- 1 root disk 8, 8 фев 6 07:55 /dev/sda8
oleg@mobile:~:$
Все устройства определяются как /dev/sda*
.
Теперь вставляем флешку и проверяем снова:
oleg@mobile:~:$ ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 фев 6 07:55 /dev/sda
brw-rw---- 1 root disk 8, 1 фев 6 07:55 /dev/sda1
brw-rw---- 1 root disk 8, 2 фев 6 07:55 /dev/sda2
brw-rw---- 1 root disk 8, 3 фев 6 07:55 /dev/sda3
brw-rw---- 1 root disk 8, 4 фев 6 07:55 /dev/sda4
brw-rw---- 1 root disk 8, 5 фев 6 07:55 /dev/sda5
brw-rw---- 1 root disk 8, 6 фев 6 07:55 /dev/sda6
brw-rw---- 1 root disk 8, 7 фев 6 07:55 /dev/sda7
brw-rw---- 1 root disk 8, 8 фев 6 07:55 /dev/sda8
brw-rw---- 1 root disk 8, 16 фев 6 11:47 /dev/sdb
oleg@mobile:~:$
Мы видим появление нового устройства /dev/sdb
.
Создаём для этого устройства точку монтирования, например /mnt/sdb
:
oleg@mobile:~:$ sudo mkdir /mnt/sdb
Теперь монтируем устройство /dev/sdb
в /mnt/sdb
:
oleg@mobile:~:$ sudo mount /dev/sdb /mnt/sdb
В данном примере показано монтирование устройства USB. Внешний жёсткий диск, либо карта памяти монтируются точно так же.
Размонтирование съёмного устройства
Размонтировать подключенное устройство весьма просто. Для этого достаточно выполнить команду umount
с указанием точки монтирования:
oleg@mobile:~:$ sudo umount /mnt/sdb
Принудительное размонтирование
Для принудительного размонтирования файловой системы команда umount
используется с опцией -f
:
oleg@mobile:~:$ sudo umount -f /mnt/sdb
Будьте осторожны при принудительном размонтировании файловой системы, так как процесс может повредить данные в ней.
Заключение
В этой статье показано использование в Linux команды mount
для монтирования различных файловых систем к дереву каталогов, а также использование команды umount
для размонтирования файловых систем. Здесь также приведены различные практические примеры. Знание этого весьма полезно для начинающих пользователей Linux.