no-style

Монтируем файловую систему


О монтировании дисков и файловых систем в Linux

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

В этой статье мы рассмотрим как выполняется монтирование дисков и фс в Linux. Поговорим о том, как правильно использовать утилиту mount, umount и рассмотрим несколько примеров монтирования.







Синтаксис утилиты mount

Как Вы уже поняли для монтирования в Linux используется команда mount. Рассмотрим ее параметры:

mount файл_устройства папка_назначения

Расширенный вариант:

mount опции -t файловая_система -o опции_монтирования файл_устройства папка_назначения

Опции задают различные дополнительные особенности работы утилиты.

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

С помощью опции -o вы можете задать различные параметры монтирования, например, монтировать только для чтения и т д.

Файл устройства это файл устройства, например /dev/sda1

Папка назначения это место в которое будет смонтирован раздел / диск или фаиловая система, например /mnt/mydisk



Основные опции утилиты mount:

-v - подробный режим

-a, --all - примонтировать все устройства, описанные в fstab

-F, --fork - создавать отдельный экземпляр mount для каждого отдельного раздела

-f, --fake - не выполнять никаких действий, а только посмотреть что собирается делать утилита

-n, --no-mtab - не записывать данные о монтировании в /etc/mtab

-l, --show-labels - добавить метку диска к точке монтирования

-c - использовать только абсолютные пути

-r, --read-only - монтировать раздел только для чтения

-w, --rw - монтировать для чтения и записи

-L, --label - монтировать раздел по метке

-U, --uuid - монтировать раздел по UUID

-T, --fstab - использовать альтернативный fstab

-B, --bind - монтировать локальную папку

-R, --rbind - перемонтировать локальную папку

Для получения всех опций не стесняемся пользоваться справкой -h







Последовательность действий

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

sudo df -h /

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



Мы также можем сделать это немного иначе вписав команду

sudo blkid

В результате будет выведен список устройств, а также их уникальный UUID



Теперь когда мы определились с выбором диска, пусть это будет например /dev/sdb1 необходимо создать папку, в которую мы вдальнейшем будем монтировать этот диск

sudo mkdir /mnt/test1


Наконец производим само монтирование

sudo mount /dev/sdb1 /mnt/test1






Монтируем раздел с определёнными правами доступа

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

sudo mount -t ext4 -o noexec /dev/sdb1 /mnt/test1

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

sudo mount -t ext4 -r /dev/sdb1 /mnt/test1

или опцию монтирования -o ro

sudo mount -t ext4 -o ro /dev/sdb1 /mnt/test1

чтение и запись -o rw

sudo mount -t ext4 -o rw /dev/sdb1 /mnt/test1






Монтируем диск с NTFS в Linux

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

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

sudo mkdir /mnt/ntfs1

Для того чтобы узнать метку NTFS диска к способам описанным выше добавлю ещё два дополнительных

sudo parted -l

и / или

sudo fdisk -l | grep NTFS

Теперь, когда нам известно имя раздела с NTFS, мы можем смонтировать этот раздел в созданную нами директорию. Например если раздел у нас /dev/sdb1

sudo mount -t ntfs /dev/sdb1 /mnt/ntfs1

Таким образом мы подключили NTFS диск в Linux. Но дело в том что он работает только на чтение, но не работает на запись. Если мы хотим иметь полный доступ как чтение так и запись то необходимо сделать дополнительные шаги.

Во первых необходимо установить fuse и ntfs-3g например в debian / ubuntu

sudo apt update && sudo apt install fuse ntfs-3g

после чего выполняем монтирование

sudo mount -t ntfs-3g /dev/sdb1 /mnt/ntfs1

проверить можем командой

sudo df -hT






Монтирование папок

Вы можете примонтировать одну папку в другую, для этого используйте опцию --bind

sudo mount --bind /mnt/test1/ /media/






Монтирование образа iso

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

sudo mount ~/file.iso /mnt/test1






Размонтирование устройств в Linux

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

sudo umount /mnt/test1

Теперь ваше устройство не смонтировано. Но иногда может возникнуть ошибка размонтирования. Система сообщит, что устройство занято: umount: /mnt: target is busy.

Проблему можно решить закрыв все программы, которые могут использовать любой файл в этой папке. Какие именно это программы вы можете узнать с помощью команды lsof:

lsof -w /mnt/test1
lsof -w /dev/sdb1

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



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

sudo umount -l /mnt/test1

Комментарии