Как вы заставляете соединение CIFS размонтировать


149

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


Ответы:


186

Я использую lazy unmount: umount -l(это строчные буквы L)

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


42
Сначала это не сработало для меня. После экспериментов некоторое время (в новом виртуальном терминале каждый раз) я пришел с этим: sudo umount -a -t cifs -l. Либо это сработало, либо первый размонтирование заняло некоторое время (120–300 с?). Я получил много предупреждений о том, что umount заблокирован более чем на 120 секунд.
Питер Джарич

2
А потом мне пришлось убить всех висящих верхов, прежде чем я смог снова сесть.
Питер Ярич

13
Мне нужно было также sudo umount -a -t cifs -l заставить его работать.
Джома

4
Это не сработало для меня на самом деле. Я попробовал все остальное выше, и монтирование cifs исчезло из моего списка / etc / mtab, но его нельзя перемонтировать, поэтому оно практически бесполезно. Монтирование cifs зависает, когда мой компьютер приостанавливается, пока монтируется общий ресурс cifs.
DH4

Я согласен, umount -a -t cifs -l - это то, что мне тоже нужно, чтобы пройти через страшную фразу "Host is Down".
Пес

70

umount -a -t cifs -l

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


8
Вы не возражаете бы остановиться на то , что -aи -lпереключатели, и как они помогают?
Исаак

10
-a и -t cifs размонтируют все файловые системы cifs. лучше указать тот, который вы хотите отключить
dwery

2
Это идеально, если вы монтируете через файловый браузер и не можете найти точку монтирования, которая нарушает работу - при условии, что вы не против размонтировать все!
мудрец

1
Спасибо, это сэкономило много времени сегодня!
Агам

13

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

umount -f -a -t cifs -l 

Это сработало, пришлось ждать полных 30 минут (тайм-аут), прежде чем я смог перемонтировать. Вероятно, лучше всего сделать мягкое крепление, как указывает jnice.
XMAN

11

Это работает для меня (Ubuntu 13.10 Desktop на сервер 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.


6

У меня была эта проблема в течение дня, пока я не нашел реальное решение. Вместо того, чтобы пытаться принудительно размонтировать общий ресурс 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

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


19
Если вы посмотрите, man mount.cifsвы заметите, что softна самом деле это по умолчанию.
Бендж

2

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

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

На www.howtoforge.net есть хороший учебник


5
к сожалению -f не работает с CIFS. Край все еще просто висит.
Smoofra

2

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


1

Существует опция -f для размонтирования, которую вы можете попробовать:

umount -f /mnt/fileshare

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

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


4
-f и -t не помогают, все еще висит.
Smoofra

Вы перезагрузились после добавления опции '-t cifs' для монтирования? Я не думаю, что вы можете что-то сделать, чтобы исправить застрявшую точку монтирования прямо сейчас, ваша единственная надежда - попытаться монтировать ее так, чтобы в будущем она была более устойчивой к сбоям.
Крис Атли

1
umount -f -t cifs -l /mnt &

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



-8

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

umount -l <mount path>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.