Размонтирование сетевого диска linux

Помогите размонтировать сетевой диск недоступного хоста.

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

//10.10.10.10/writeable /disk/network/writeable cifs noauto,_netdev,users,guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777,cache=none 0 0

то с размонтированием у меня возникли проблемы. Пока хост доступен umount работает и с правами пользователя. Но мне надо размонтировать диск как раз когда хост не доступен и тут он ругается что хост недоступен и диск не размонтирует. Как я понимаю надо вот так umount -l -f но на это он ругается что только root так может.

хз, посмотри это, вдруг идея возникнет (например, добавить атрибут user помимо users) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662078

А какая система? Версии софта, ядра?

Linux SERVER-2C68EF67A5 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) i686 GNU/Linux
mount.cifs version: 6.4
mount from util-linux 2.25.2 (libmount 2.25.0: selinux, assert, debug)
umount from util-linux 2.25.2 (libmount 2.25.0: selinux, assert, debug)

А разве user и users это не взаимно исключающие атрибуты. Как я понимаю user разрешает определенному пользователю, а users разрешает всем пользователям. Немного уточню проблему. Как и говорил выше, если хост с сетевым диском доступен, то шара размонтируется без проблем, обычным пользователем, простой командой umount /путь/. Но как только хост с шарой становиться не доступным, ни простой пользователь, ни даже root командой umount, без дополнительных опций, размонтировать шару не может. Что бы размонтировать нужно добавит к umount -l -f и тогда шара будет отмонтирована, но проблема в том что использовать дополнительные опции в umount может только root, а мне надо что бы такие права на определенные шары были у непривилегированного пользователя. В связи с этим возникает вопрос куда и что нужно добавить что бы umount работал с этими опциями от пользователя.

Ну так настрой sudo для этой команды и пользователя из под которого openvpn запускается, в чём проблема-то?

Или настрой autofs

Как я понимаю user разрешает определенному пользователю, а users разрешает всем пользователям.

ЕМНИП один из этот атрибутов не_рабочий. Ошибочный. Кажется user разрешает монтирование пользователю. А users попал в некоторые fstab сугубо по недоразумению. Ошибка разработчиков. Либо наоборот.

Как «не очень безопасное, но рабочее решение» можно в sudoers добавить разрешение определенной группе запускать umount с нужными параметрами, но это на свой страх и риск.

autofs и /thread, а что такое — thread или это опечатка тега.

Огромное всем спасибо за подсказки куда копать. Получилось от простого пользователя отмонтировать диски с доп опциями. Правда мне это не особо помогло. т.к. на данную операцию уходит около двух минут и всё это время приложение висит. Плюс проблемы с завершением работы тоже на 2 минуты зависание.

sudo visudo # Редактируем /etc/sudoers и добавляем строчку изменив под себя
you_user_name ALL=NOPASSWD:/bin/umount -f /disk/network/writeable, /bin/umount -f /disk/network/backup

После чего пользователь с именем you_user_name получит права на размонтирования двух дисков вот такой командой

sudo umount -f /disk/network/writeable
sudo umount -f /disk/network/backup

P.S. добавлять пользователя you_user_name в группу sudo не надо и категорически нельзя.

На фоне первого варианта autofs показался куда интересней, хоть он тоже не размонтирует недоступные сетевые диски, но так как большую часть времени они не используются, то получаются почти всегда отмонтированными и вероятность совпадения разрыва связи с сервером и использования в это время диска стремится к 0.

Вот только ругается чего то, вот такими сообщениями

automount[8029]: key «*» not found in map source(s).

Но работает и все диски монтирует.

/disk/network /etc/auto.network —timeout=10 —ghost
/disk/network/wd8000 /etc/auto.wd8000 —timeout=10 —ghost
/disk/network/yandex /etc/auto.webdav —timeout=60 —ghost

writeable -fstype=cifs,guest,rw,iocharset=utf8,file_mode=0666,dir_mode=0777,cache=none ://10.10.10.10/writeable
backup -fstype=cifs,guest,rw,iocharset=utf8,file_mode=0666,dir_mode=0777,cache=none ://10.10.10.18/backup

foto -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/foto
download -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/download
cartoons -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/cartoons
films -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/films
music -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/music

/disk/network/yandex/user1 user1 my_password
/disk/network/yandex/user2 user2 my_password
/disk/network/yandex/user3 user3 my_password

притом , что это ведроидная; зачем auto??

и, сразу три, не его стихия, там надо две и, по прош-ю 35-соро, -ка сек одну; а так 0ver 120sec, это ещё ничего.

Читайте также:  Самсунг драйвера для монитора windows 10

Изначально было не авто, диски подключались средствами xbmc но она намертво зависала при длительном отсутствии сервера. Включаешь телик а там зависшая xbmc. Теперь же большую часть времени диски от монтированы, нет дисков нет проблем. Плюс бонусом получил возможность расшарить сетевые диски на всю домашнюю сеть, конечно костыль но учитывая что openvpn у меня за роутером а с маршрутизацией я совсем не дружу то не самый худший вариант.

А вот что дальше написано я к сожалению не понял о чем там речь:(((

Источник

Как монтировать и размонтировать файловые системы в Linux

В операционных системах Linux и UNIX вы можете использовать команду mount для подключения (монтирования) файловых систем и съемных устройств, таких как флэш-накопители USB, в определенной точке монтирования в дереве каталогов.

Команда umount отсоединяет (размонтирует) смонтированную файловую систему от дерева каталогов.

В этом руководстве мы рассмотрим основы подключения и отключения различных файловых систем с помощью команд mount и umount .

Как вывести список подключенных файловых систем

При использовании без аргументов команда mount отобразит все подключенные в данный момент файловые системы:

По умолчанию вывод будет включать все файловые системы, включая виртуальные, такие как cgroup, sysfs и другие. Каждая строка содержит информацию об имени устройства, каталоге, в который оно смонтировано, типе файловой системы и параметрах монтирования в следующей форме:

Чтобы отобразить только определенные файловые системы, используйте параметр -t .

Например, чтобы распечатать только разделы ext4, которые вы должны использовать:

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

Чтобы смонтировать файловую систему в указанном месте (точке монтирования), используйте команду mount в следующей форме:

После присоединения файловой системы точка монтирования становится корневым каталогом смонтированной файловой системы.

Например, чтобы смонтировать файловую систему /dev/sdb1 каталог /mnt/media вы должны использовать:

Обычно при монтировании устройства с общей файловой системой, такой как ext4 или xfs команда mount автоматически определяет тип файловой системы. Однако некоторые файловые системы не распознаются и требуют явного указания.

Используйте параметр -t чтобы указать тип файловой системы:

Чтобы указать дополнительные параметры монтирования , используйте параметр -o :

Несколько вариантов могут быть представлены в виде списка, разделенного запятыми (не вставляйте пробел после запятой).

Вы можете получить список всех вариантов монтирования, набрав в терминале man mount .

Монтирование файловой системы с помощью / etc / fstab

Предоставляя только один параметр (каталог или устройство) команде mount , она будет читать содержимое файла конфигурации /etc/fstab чтобы проверить, указана ли указанная файловая система в списке или нет.

Если /etc/fstab содержит информацию о данной файловой системе, команда mount использует значение другого параметра и параметры монтирования, указанные в fstab .

Файл /etc/fstab содержит список записей в следующем виде:

Используйте команду mount в одной из следующих форм, чтобы присоединить файловую систему, указанную в /etc/fstab :

Установка USB-накопителя

В большинстве современных дистрибутивов Linux, таких как Ubuntu, USB-накопители автоматически монтируются, когда вы их вставляете, но иногда вам может потребоваться вручную смонтировать диск.

Чтобы вручную подключить USB-устройство, выполните следующие действия:

Создайте точку монтирования:

Предполагая, что USB-накопитель использует устройство /dev/sdd1 вы можете /dev/sdd1 его к каталогу /media/usb , набрав:

Чтобы узнать тип устройства и файловой системы, вы можете использовать любую из следующих команд:

Чтобы смонтировать USB-накопители в формате exFAT, установите бесплатный модуль и инструменты FUSE exFAT .

Монтирование файлов ISO

Вы можете смонтировать файл ISO с помощью устройства loop, которое представляет собой специальное псевдоустройство, которое делает файл доступным как блочное устройство.

Начните с создания точки монтирования, это может быть любое место, которое вы хотите:

Подключите ISO-файл к точке монтирования, введя следующую команду:

Не забудьте заменить /path/to/image.iso путем к вашему файлу ISO.

Читайте также:  Код 43 windows 10 не видит устройство

Монтирование NFS

Чтобы смонтировать общий ресурс NFS, в вашей системе должен быть установлен клиентский пакет NFS.

Установите клиент NFS в Ubuntu и Debian:

Установите клиент NFS на CentOS и Fedora:

Выполните следующие действия, чтобы смонтировать удаленный каталог NFS в вашей системе:

Создайте каталог, который будет точкой монтирования для удаленной файловой системы:

Как правило, вам нужно автоматически монтировать удаленный общий ресурс NFS при загрузке. Для этого откройте файл /etc/fstab текстовом редакторе :

Добавьте в файл следующую строку, заменив remote.server:/dir IP-адресом сервера NFS или именем хоста и экспортированным каталогом:

Подключите общий ресурс NFS, выполнив следующую команду:

Отключение файловой системы

Чтобы отсоединить смонтированную файловую систему, используйте команду umount после которой укажите либо каталог, в котором она была смонтирована (точка монтирования), либо имя устройства:

Если файловая система используется, команда umount не сможет отсоединить файловую систему. В таких ситуациях вы можете использовать команду fuser чтобы узнать, какие процессы обращаются к файловой системе:

Как только вы определите процессы, вы можете остановить их и размонтировать файловую систему.

Ленивое отключение

Используйте параметр -l ( —lazy ), чтобы отключить занятую файловую систему, как только она больше не будет занята.

Размонтировать принудительно

Используйте параметр -f ( —force ), чтобы принудительно размонтировать. Этот параметр обычно используется для отключения недоступной системы NFS.

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

Выводы

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

Чтобы узнать больше о параметрах команд mount и umount , см. Соответствующие страницы руководства.

Источник

Монтирование диска в Linux

Разделы дисков в 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 — перемонтировать локальную папку.
Читайте также:  Данный пользователь windows не имеет прав

Это не все, но основные опции, которые вам понадобятся во время работы с утилитой. Также, возможно, вы захотите знать список опций монтирования, которые могут быть полезными. Они все перечислены в статье автоматическое монтирование в 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 для ваших разделов можно с помощью команды:

Точно так же вы можете использовать метки. Команда монтирования диска linux будет выглядеть так:

sudo mount —label=»home» /mnt/

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

sudo mount —bind /mnt/ /media/

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

Посмотреть список всех примонтированных устройств можно просто выполнив 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. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Оцените статью