Как принудительно размонтировать соединение CIFS - PullRequest
139 голосов
/ 16 сентября 2008

У меня есть общий ресурс CIFS, установленный на машине с Linux. Сервер CIFS не работает или интернет-соединение не работает, и все, что касается монтирования CIFS, теперь занимает несколько минут по таймауту и ​​не может быть отключено во время ожидания. Я даже не могу запустить ls в своем домашнем каталоге, потому что есть символическая ссылка, указывающая внутри монтирования CIFS, и ls пытается перейти по нему, чтобы решить, какой цвет должен быть. Если я попытаюсь размонтировать его (даже с -fl), процесс размонтирования зависнет так же, как и ls. Даже sudo kill -9 не может его убить. Как заставить ядро ​​отключиться?

Ответы [ 11 ]

166 голосов
/ 18 сентября 2008

Я использую lazy unmount: umount -l (это строчная L)

Ленивый размонтировать. Отсоединить файловую систему из иерархии файловой системы сейчас, и очистить все ссылки на файловая система, как только она не занята больше. (Требуется ядро ​​2.4.11 или позже.)

63 голосов
/ 16 июня 2013

umount -a -t cifs -l

работал на меня как на шарме CentOS 6.3. Это спасло меня от перезагрузки сервера.

13 голосов
/ 09 октября 2014

На RHEL 6 это сработало:

umount -f -a -t cifs -l 
7 голосов
/ 01 февраля 2014

Это работает для меня (рабочий стол Ubuntu 13.10 на сервере Ubuntu 14.04): -

 sudo umount -f /mnt/my_share

Установлено с

 sudo mount -t cifs -o username=me,password=mine //192.168.0.111/serv_share /mnt/my_share

где serv_share - это то, что установлено и указано в файле smb.conf.

7 голосов
/ 18 октября 2012

У меня была эта проблема в течение дня, пока я не нашел реальное решение. Вместо того чтобы пытаться принудительно размонтировать общий ресурс smb, который зависает, смонтируйте общий ресурс с помощью «мягкой» опции. Если процесс попытается подключиться к недоступному общему ресурсу, он через некоторое время прекратит попытки.

soft Сделайте монтировку мягкой. Отказ файловых системных вызовов через несколько секунд.

mount -t smbfs -o soft //username@server/share /users/username/smb/share

stat /users/username/smb/share/file
stat: /users/username/smb/share/file: stat: Operation timed out

Может не быть реальным ответом на ваш вопрос, но это решение проблемы

2 голосов
/ 19 апреля 2014

У меня была очень похожая проблема с davfs. На странице справочника umount.davfs я обнаружил, что опции -f -l -n -r -v игнорируются umount.davfs. Чтобы принудительно размонтировать мое крепление davfs, мне пришлось использовать umount -i -f -l /media/davmount.

2 голосов
/ 16 сентября 2008

Попробуйте umount -f / mnt / share. Работает нормально с NFS, никогда не пробовал с cifs.

Кроме того, посмотрите на autofs, он будет монтировать общий ресурс только при обращении к нему и размонтировать его в потустороннем мире.

Хороший учебник можно найти по адресу www.howtoforge.net

1 голос
/ 02 февраля 2015
umount -f -t cifs -l /mnt &

Будьте осторожны с &, пусть umount работает в фоновом режиме. umount сначала отключит файловую систему, так что вы ничего не найдете в /mnt. Если вы запустите команду df, то она будет umount /mnt принудительно.

1 голос
/ 16 сентября 2008

Вы можете попробовать отключить опцию -f:

umount -f /mnt/fileshare

Вы указываете опцию '-t cifs' для монтирования? Также убедитесь, что вы не указываете «жесткий» параметр для монтирования.

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

0 голосов
/ 16 апреля 2015

Ленивое размонтирование сделает всю работу за вас.

umount -l <mount path>
...