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

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


person smoofra    schedule 16.09.2008    source источник


Ответы (11)


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

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

person Kemal    schedule 18.09.2008
comment
Сначала это не сработало для меня. Поэкспериментировав некоторое время (каждый раз в новом виртуальном терминале), я пришел к следующему: sudo umount -a -t cifs -l. Либо это сработало, либо первое размонтирование заняло некоторое время (120 с? 300 с?). Я получил много предупреждений о блокировке umount более 120 секунд. - person Peter Jaric; 12.03.2012
comment
И тогда мне пришлось убить все висящие юмонты, прежде чем я смог снова смонтировать. - person Peter Jaric; 12.03.2012
comment
Мне также нужно было sudo umount -a -t cifs -l, чтобы заставить его работать. - person Joma; 11.07.2012
comment
Это действительно не сработало для меня. Я пробовал все вышеперечисленное, и монтирование cifs исчезло из моего списка /etc/mtab, но его нельзя перемонтировать, так что оно фактически бесполезно. Монтирование cifs зависает, когда мой компьютер приостанавливается во время монтирования общего ресурса cifs. - person DH4; 23.09.2012
comment
Я согласен, umount -a -t cifs -l был тем, что мне было нужно, чтобы обойти ужасный Host is Down, спасибо. - person Pooch; 07.10.2014
comment
Это не работает для меня. Я могу размонтировать общий ресурс, но когда я пытаюсь перемонтировать его, я получаю следующую ошибку: mount error(12): Cannot allocate memory Refer to the mount.cifs(8) manual page (e.g. man mount.cifs). Кто-нибудь знает, что это значит? - person Natesh Raina; 25.08.2016
comment
У меня работало на RHEL6. Спасибо! - person Soruk; 27.08.2016
comment
Не забудьте указать тип -t cifs, иначе вы размонтируете ВСЕ (поверьте мне). Ха. - person moodboom; 20.01.2020

umount -a -t cifs -l

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

person ivanlan    schedule 15.06.2013
comment
Не могли бы вы уточнить, что такое переключатели -a и -l и как они помогают? - person Isaac; 20.12.2014
comment
-a и -t cifs размонтирует все файловые системы cifs. лучше указать тот, который вы хотите размонтировать - person dwery; 20.11.2015
comment
Это идеальный вариант, если вы монтировали через файловый браузер и не можете найти проблемную точку монтирования — при условии, что вы не возражаете против размонтирования всего! - person sage; 03.12.2015
comment
Спасибо, это сэкономило много времени сегодня! - person agam; 05.04.2018

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

umount -f -a -t cifs -l 
person Andy Fraley    schedule 09.10.2014
comment
Это сработало, пришлось ждать целых 30 минут (тайм-аут), прежде чем я смог перемонтировать. Вероятно, лучше всего сделать мягкое монтирование, как указывает jnice. - person XMAN; 13.09.2018

Это работает для меня (рабочий стол 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.

person Phil Johnson    schedule 31.01.2014

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

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

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

person jnice    schedule 18.10.2012
comment
Если вы посмотрите на man mount.cifs, вы заметите, что soft фактически используется по умолчанию. - person Benj; 01.05.2013

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

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

На www.howtoforge.net есть хорошее руководство.

person Sunny Milenov    schedule 16.09.2008
comment
к сожалению, -f не работает с CIFS. umount все еще просто висит. - person smoofra; 16.09.2008

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

person Benedikt Köppel    schedule 19.04.2014

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

umount -f /mnt/fileshare

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

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

person Chris AtLee    schedule 16.09.2008
comment
-f и -t не помогают, umount все равно висит. - person smoofra; 16.09.2008
comment
Вы перезагружались после добавления опции '-t cifs' для монтирования? Я не думаю, что вы можете что-то сделать, чтобы исправить застрявшую точку монтирования прямо сейчас, ваша единственная надежда - попытаться смонтировать ее таким образом, чтобы она была более устойчивой к сбоям в будущем. - person Chris AtLee; 16.09.2008

umount -f -t cifs -l /mnt &

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

person zhjb7    schedule 02.02.2015

На RHEL 6 это также сработало для меня:

umount -f -a -t cifs -l ИМЯ_ПАПКИ

person chataros    schedule 09.12.2014

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

umount -l <mount path>
person JimmyPheonix    schedule 16.04.2015