Разделы дисков в Linux подключаются к системе совсем не так, как в Windows. Здесь есть корневая файловая система, куда подключаются все другие разделы и устройства, которые вы будете использовать. Системные разделы монтируются автоматически при старте системы. Но если вам нужно подключить дополнительные разделы, в некоторых случаях, может понадобиться это делать вручную.
В этой статье мы рассмотрим как выполняется монтирование диска в Linux, поговорим о том, как правильно использовать утилиту mount, umount и посмотреть какие разделы куда примонтированы.
Содержание статьи
Что такое монтирование?
Как я уже сказал Linux имеет единую корневую файловую систему, куда подключаются все запоминающие устройства и другие ресурсы. На самом деле, в Windows происходит что-то подобное, только все это скрыто от пользователя.
Фактически смонтированный раздел становится частью корневой файловой системы и система старается сделать работу со всеми разделами, независимо от их файловых систем, прозрачной. Это значит, что если вы примонтируете участок оперативной памяти или удаленную сетевую папку, то сможете работать с ней в файловом менеджере точно так же, как и с локальным диском.
Например, вы хотите примонтировать флешку. Вы даете системе команду подключить ее в папку /run/media/имя_пользователя/UUID_флешки/. Система определяет файловую систему устройства, а затем, используя драйвера ядра подключает ее к указанной папке. Дальше вам остается работать с той папкой, как с любой другой. Больше ни о чем думать не нужно. Когда надумаете извлечь флешку, ее нужно отмонтировать.
Монтирование дисков в Linux
Обычно, монтированием занимаются специальные сервисы оболочки, но не всегда они доступны. А иногда нужно сделать все вручную, чтобы задать дополнительные опции монтирования или другие параметры. Для монтирования в Linux используется команда mount. Рассмотрим ее параметры:
$ mount файл_устройства папка_назначения
Или расширенный вариант:
$ mount опции -t файловая_система -o опции_монтирования файл_устройства папка_назначения
Опции задают различные дополнительные особенности работы утилиты. Опция -t необязательна, но она позволяет задать файловую систему, которая будет использована и иногда это очень полезно. С помощью опции -o вы можете задать различные параметры монтирования, например, монтировать только для чтения и т д. Последних два параметра - это файл устройства, например, /dev/sda1 и папка назначения, например, /mnt.
Перед тем как перейти к рассмотрению примеров работы утилитой, давайте рассмотрим ее основные опции:
- -V - вывести версию утилиты;
- -h - вывести справку;
- -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 - перемонтировать локальную папку.
Это не все, но основные опции, которые вам понадобятся во время работы с утилитой. Также, возможно, вы захотите знать список опций монтирования, которые могут быть полезными. Они все перечислены в статье автоматическое монтирование в fstab и писать их еще и здесь нет смысла. А теперь перейдем к примерам и рассмотрим как монтировать диск в linux.
Монтирование разделов с помощью mount
Монтирование разделов с помощью mount выполняется очень просто. Фактически в большинстве случаев будет достаточно упрощенной версии команды. Например, смонтируем раздел /dev/sdb6 в папку /mnt:
sudo mount /dev/sdb6 /mnt/
В большинстве случаев вы будете вынуждены выполнять команду mount с правами суперпользователя, если обратное не указано в fstab (опция монтирования users). Вы можете посмотреть информацию о процессе монтирования добавив опцию -v:
sudo mount -v /dev/sdb6 /mnt/
Если нужно, вы можете указать файловую систему с помощью опции -t:
sudo mount -v -t ext4 /dev/sdb6 /mnt
Если необходимо примонтировать файловую систему только для чтения, то вы можете использовать опцию -r или опцию монтирования -o ro, результат будет одинаковым:
sudo mount -t ext4 -r /dev/sdb6 /mnt
$ sudo mount -t ext4 -o ro /dev/sdb6 /mnt
Вы можете использовать и другие опции чтобы выполнить монтирование разделов linux, например, указать, что на этом разделе нельзя выполнять программы:
sudo mount -t ext4 -o noexec /dev/sdb6 /mnt
Обратите внимание, что вы не можете использовать опции uid, gid, fmask для файловых систем ext. Они поддерживаются только в FAT, vFAT, exFAT.
Вы можете использовать не только имена устройств чтобы выполнить монтирование диска в linux. Для этого можно применять UUID или метки, например, монтирование с помощью UUID:
sudo mount --uuid="b386d309-05c1-42c8-8364-8d37270b69e0" /mnt
Посмотреть uuid для ваших разделов можно с помощью команды:
sudo blkid
Точно так же вы можете использовать метки. Команда монтирования диска linux будет выглядеть так:
sudo mount --label="home" /mnt/
Вы можете примонтировать одну папку в другую, для этого используйте опцию --bind
sudo mount --bind /mnt/ /media/
Возможно, не только монтирование разделов linux, но и монтирование файлов, если они содержат файловую систему, например, образов дисков. Монтирование образа диска linux работает точно так же:
sudo mount ~/file.iso /mnt
Посмотреть список всех примонтированных устройств можно просто выполнив mount без параметров:
mount
Размонтирование устройств в Linux
Когда вы хотите завершить работу с устройством, особенно с флешкой, его нужно размонтировать. Для этого существует утилита umount. В качестве параметров она принимает точку монтирования или устройство. Например:
sudo umount /mnt
Теперь ваше устройство не смонтировано. Но иногда может возникнуть ошибка размонтирования. Система сообщит, что устройство занято: umount: /mnt: target is busy.
Проблему можно решить закрыв все программы, которые могут использовать любой файл в этой папке. Какие именно это программы вы можете узнать с помощью команды lsof:
lsof -w /mnt
$ lsof -w /dev/sdb6
Здесь вы видите всю необходимую информацию, чтобы понять что происходит и что с этим делать. Утилита вывела название программы, ее PID, и даже файл, с которым она работает. Вы можете завершить все программы, а потом снова повторить попытку или используйте опцию -l, файловая система будет отключена немедленно, несмотря на то, что она занята:
sudo umount -l /mnt
Выводы
В этой статье мы рассмотрели как выполняется монтирование жестких дисков linux, а также разделов и даже образов. Вы знаете как правильно использовать опции mount и umount. Если у вас остались вопросы, спрашивайте в комментариях!
Посмотреть uuid для ваших разделов можно с помощью команды:
sudu blkid
Исправьте пожалуйста на: sudo blkid
А как монтируется флешка/карта? Я вставляю флешку в порт, и "кто" за неё принимается? Откуда берутся параметры монтирования? И второе - как монтируется та же флешка при загрузке Linux, если я забыл её извлечь с прошлого раза?
Спасибо.
За "горячие" подключения "принимается" файловая система sysfs, /sys и пользовательская udev. Они всё и осуществляют.
Владимир,у вас видимо автомонтирование включено по умолчанию.Изменить можно в настройках системы.Если отключено,то ручками монтируете карту,как уже написано.
Опять же,если включено автомонтирование,то даже если отмонтировать карту и перезагрузить комп,флешка автоматом примонтируется.У меня так под арчем,во всяком случае
Как сделать автомонтирование при загрузке всех логических разделов жестких дисков (как у Windows)?
Автоматическое монтирование в fstab - https://losst.pro/avtomaticheskoe-montirovanie-fstab-i-systemd
Утилита gnome-disk-utility в помощь. Опция изменить параметры монтирования.
> В большинстве случаев вы будете вынуждены выполнять команду mount с правами суперпользователя, если обратное не указано в fstab
Во многих файловых системах построенных на основе FUSE (а так представляются на сегодня множество USB-устройств: фотоаппараты, диктофоны, ридеры и др.) не требуется root без никакого fstab.
> Если нужно, вы можете указать файловую систему с помощью опции -t:
Как раз подавляющее большинство файловых систем требуют обязательного указания типа файловой системы (-t), и только очень некоторые файловые системы, тип которых может определиться по умолчанию, из синтаксиса записи параметров mount (nfs, smb, ext*) допускают опустить опцию -t.
Для "отсоединения" флешки пользуюсь программой Диски
В этом случае тоже надо сначала sudo umount /mnt ?
Если вы любитель клацать мышкой, то вам mount/umount не нужны.
Возник вопрос-уточнение: если на веб сервере основной диск для системы — SSD, а обычный HDD — для файлов, поэтому папку downloads сайта (например public_html/downloads) хочу разместить на обычном диске (/dev/sdb).
В этом случае мне нужно смонтировать диск ( /dev/sdb) к папке (downloads) следующей командой:
sudo mount /dev/sdb /home/ganesha/var/my_site/public_html/downloads
И тогда, когда я через фтп буду забрасывать файлы в папку «downloads», физически они будут копироваться на HHD диск (sdb). Верно? Или есть какие-то особенности?
Заранее Спасибо за ответ!
Подскажите-что и как.На ноуте стоит Lubuntu 16.04 .При установке тип разбивки диска был выбран -ДРУГОЙ. При открытии программы Gparted показывает всё нормально-все имеющиеся диски смонтированы.А в штатной программе Discs только корень файловой системы смонтирован,а остальные диски вообще не смонтированы.Что то я не пойму-какой проге верить? Может разбивка диска при установке проведена не правильно?
-R, —rbind — перемонтировать локальную папку.
исправляйся
Доброго времени суток. Поставил astra Linux. Снес Windows. Диск D оставил, как мне его смонтировать, чтоб увидеть сохранённые данные?
Как сделать одно логическое пространство из двух физических дисков? Иными словами дано винт на 64гига и есть внешний на 320, так вот как примонтировать так чтобы выглядел как один на 404гиг?
Собрать из них VolumeGroup и создать в ней один LogicalVolume
Классный сайт!! Желаю вам развития!
Добрый день!
Как сделать автоматическое монтирование сетевого ресурса (ntfs) при входе пользователя, если пользователь входит в определенную группу (group1)?
У вас нет ответа как Линукс использует дисковое пространство. Я вот поставил Xubuntu на старый комп вместо WinXP на раздел в 20 Гб, стал качать, ставить и распаковывать разное ПО для работы и счастье скоро кончилось... Разве это не популярная сторона вопроса? Дайте хоть ссылку.
Здравствуйте! Недавно поставил Линукс Минт (хочу использовать основной системой), есть ещё 2 жёстких по 2тб, можно ли их примонтировать к системе (как я понимаю) /home (один под игры, а второй под торрент)? если, что я ещё полный нуб, не ругайтесь сильно 🙂 Спасибо
Можно. Например, в папку /home/{$USERNAME}/Games и /home/{$USERNAME}/Torrents.
Извините, а можно поразвёрнутей:)? Монтировать их таким же образом как тут у Вас в статье?
Да, и потом размещать в них файлы. Автоматически система не будет расскладывать туда вам игры и торренты, но в торрент клиенте можно настроить папку загрузки, а в стиме папку библиотеки игр.
я случайно ввёл sudo mount -all , посыпались везде ошибки, что делать?
А как быть в такой ситуации: папка A монтируется в папку B, папка B монтируется в папку C. И вот здесь облом. В папке C - пусто, хотя по идее должна быть папка A. Как быть?
@mountpoint, мне нужно, чтобы файлы, которые складываются в папку
/var/www/frontuser/data/backups
физически находились на примаунченном диске /opt/mnt/ в одной из ее папок /backup/front
получается, я делаю так:
ln -s
/opt/mnt/backup/front
/var/www/frontuser/data/backups
верно?
а после перезагрузки монтирование останется если устройство так же подключено ?
у меня кроме системного 2 диска, хочу их раздать по Samba
как мне их примонтировать чтобы они и после перезагрузки были видны ?
Нет. Надо монтировать вручную или настроить автоматическое монтирование - https://losst.pro/avtomaticheskoe-montirovanie-fstab-i-systemd
А это монтирование сохраняется на момент сессии? После перезагрузки примонтированный раздел останется?
походу надо разделы монтировать dev/sdb, а не диск целиком.