Монтирование устройств

Последнее обновление: 24.03.2024

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

В общем случае монтирование имеет следующую форму:

mount что_монтируется  куда_монтируется

Сначала команде mount передается монтируемое устройство, а затем - куда это устройство монтируется. В качестве монтируемого устройства выступает название устройства (например, название диска). В качестве места, куда монтируется обычно выступает папка в каталоге media. Также нередко для монтирования устройства используется каталог /mnt.

Рассомтрим небольшой пример. В моем случае к компьютеру подключен ssd-диск "/dev/nvme0n1p3", однако система его не видит, он не смонтирован. ДЛя монтирования я буду использовать каталог media. Обычно в этом каталоге создается автоматически отдельный каталог для текущего пользователя и в этот каталог производится автоматическое монтирование устройств. Так, в моем случае текущий пользователь - eugene, соответственно каталог, в который я буду монтировать, называется /media/eugene. Вначале создадим папку для устройства в этом каталоге:

eugene@Eugene:~$ cd /media/eugene/
eugene@Eugene:/media/eugene$ sudo mkdir windows
eugene@Eugene:/media/eugene$ 

Папка устройства будет называться "windows". Далее для монтирования выполняется команда:

eugene@Eugene:/media/eugene$ sudo mount /dev/nvme0n1p3 /media/eugene/windows

Таким образом, здесь устройство "/dev/nvme0n1p3" монтируется в папку "/media/eugene/windows". После этого я могу перейти к смонтированному диску и посмотреть его содержимое:

eugene@Eugene:/media/eugene$ cd windows
eugene@Eugene:/media/eugene/windows$ ls -l 
total 76298556
drwxrwxrwx 1 root root           0 Jan 24 18:57 '$Recycle.Bin'
-rwxrwxrwx 2 root root      112136 Feb 22 01:33  appverifUI.dll
drwxrwxrwx 1 root root        4096 Mar 19 20:25  Config.Msi
lrwxrwxrwx 1 root root          27 Dec  2 09:36 'Documents and Settings' -> /media/eugene/windows/Users
-rwxrwxrwx 2 root root       12288 Mar 19 20:25  DumpStack.log.tmp
drwxrwxrwx 1 root root        8192 Feb 23 10:00  flutter
-rwxrwxrwx 1 root root 68448178176 Mar 19 20:28  hiberfil.sys
-rwxrwxrwx 1 root root  9663676416 Mar 19 20:25  pagefile.sys
drwxrwxrwx 1 root root           0 May  7  2022  PerfLogs
drwxrwxrwx 1 root root        8192 Mar 19 18:50  ProgramData
drwxrwxrwx 1 root root       12288 Mar 19 20:24 'Program Files'
drwxrwxrwx 1 root root        8192 Mar 19 20:23 'Program Files (x86)'
drwxrwxrwx 1 root root           0 Dec  2 09:35  Recovery
-rwxrwxrwx 1 root root    16777216 Mar 19 20:25  swapfile.sys
drwxrwxrwx 1 root root        4096 Mar 19 18:12 'System Volume Information'
drwxrwxrwx 1 root root        4096 Dec  2 12:52  Users
-rwxrwxrwx 1 root root       66328 Feb 22 01:34  vfcompat.dll
drwxrwxrwx 1 root root       24576 Mar 19 18:20  Windows
eugene@Eugene:/media/eugene/windows$ 

Команда mount также поддерживает множество опций. Отмечу лишь некоторые. Так, опция -t позволяет указать тип файловой системы для монтируемого устройства:

eugene@Eugene:/media/eugene$ sudo mount -t ntfs /dev/nvme0n1p3 /media/eugene/windows

Здесь в качестве типа файловой системы используется "ntfs". Некоторые распространенные типы файловых систем:

  • ext4: сменила систему ext3 и фактически выступает в качестве типа файловой системы по умолчанию в Linux

  • vfat: применяется для досупа к устройствам с Windows, в частности, тем, которые используют систему FAT

  • : система по умолчанию для Windows. Linux имеет полноценную поддержку для ntfs, позволяя взаимодействовать с устройствами с этой системой

Другая часто используемая опция - -r, которая позволяет смонтировать устройство только для чтения. По умолчанию применяется опция -rw. Которая монтирует устройства для чтения-записи. Для подключения диска только для чтения применим опцию -r:

eugene@Eugene:/media/eugene$ sudo mount -r /dev/nvme0n1p3 /media/eugene/windows

Автоматическое монтирование

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

eugene@Eugene:~$ cat /etc/fstab
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/disk/by-uuid/4caa5b11-c643-41f5-90b3-20d9e3fcb17e / ext4 defaults 0 1
/dev/disk/by-uuid/B5DD-121B /boot/efi vfat defaults 0 1
/swap.img	none	swap	sw	0	0

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

  • file system (файловая система): в первом поле описывается устройство или удаленная файловая система, которую необходимо смонтировать. В ряде систем непосредственные имена устройств могут заменяться на уникальные идентификаторы UUID, как в примере выше.

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

  • type (тип файловой системы): третье поле используется для указания типа файловой системы

  • options (параметры монтирования): четвертое поле используется для указания параметров, которые следует использовать при монтировании файловой системы. Доступно множество опций, многие из них зависят от файловой системы. Для большинства файловых систем используется опция defaults, которая гарантирует автоматическое монтирование файловой системы при загрузке компьютера и запрещает обычным пользователям отключать монтирование. Некоторые наиболее часто используемые опции:

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

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

    • exec: разрешает выполнение бинарных файлов.

    • hotplug: не сообщает об ошибках этого устройства, если оно в данный момент не существует. Это имеет смысл для съемных устройств как USB-носители.

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

    • noauto: файловая система не монтируется автоматически при загрузке системы или если пользователь использует команду mount -a для автоматического монтирования всего в /etc/fstab.

    • mode: устанавливает режим разрешений для новых файлов, создаваемых в файловой системе.

    • remount: перемонтирует уже смонтированную файловую систему. Имеет смысл использовать эту опцию только из командной строки.

    • user: позволяет пользователю монтировать файловую систему. Эта опция обычно используется только для съемных устройств.

    • sync: обеспечивает синхронизацию содержимого файловой системы с носителем перед отключением устройства.

  • dump (статус дампа): это поле предназначено для использования команды дампа, которая позволяет создавать резервные копии файловой системы. Поле определяет, какие файловые системы необходимо сбросить при вызове команды дампа. Если значение поля равно 0, для файловой системы не будет создаваться копия. Если значение поля равно 1, то будет создаваться копия при вызове дампа. Обычно для всех файловых систем, которые содержат важные данные, установливается значение 1.

  • pass (статус проверки Fsck): последнее поле в fstab определяет, как следует проверять файловую систему с помощью команды fsck. Во время загрузки загрузчик всегда смотрит, нужно ли проверять файловую систему с помощью fsck или нет. Если значение установлено на 0, автоматическая проверка не выполняется. Если значение поля равно 1, то файловая система должна проверяться первой. Другие файловые системы могут иметь номер 2, и таким образом проверяются после системы с номером 1. Если файловые системы имеют одинаковый номер, они будут проверены последовательно. Если файлы находятся на разных дисках, их можно проверять параллельно.

Отключение устройств

В Linux перед отсоединением устройства от компьютера это устройство сначала необходимо отключить. Отключение устройств гарантирует, что все данные, которые еще находятся в кэше и еще не были записаны на устройство, будут записаны в файловую систему до его отключения. Для отключения устройства применяется команда umount. Эта команда может принимать два аргумента: имя устройства или имя каталога, в котором устройство смонтировано. Например:

umount /dev/sda1

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

Но иногда ситуация может быть более сложной, например, устройство используется какими-то другими процессами. В этом случае для завершения процессов, связанных с устройством, можно использовать команду fuser -km, которой передается название устройства

fuser -km /dev/sda1
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850