Как заставить соединение CIFS размонтировать
Вопрос
У меня есть общий ресурс CIFS, установленный на машине с Linux.Сервер CIFS не работает или отсутствует подключение к Интернету, и все, что касается монтирования CIFS, теперь занимает несколько минут для ожидания и не может быть уничтожено, пока вы ждете.Я даже не могу запустить ls в своем домашнем каталоге, потому что внутри монтирования CIFS есть символическая ссылка, и ls пытается пройти по ней, чтобы решить, какого цвета она должна быть.Если я попытаюсь его размонтировать (даже с -fl), процесс размонтирования зависнет так же, как это делает ls.Даже sudo kill -9 не сможет его убить.Как заставить ядро размонтироваться?
Решение
Я использую ленивое размонтирование: umount -l
(это строчная буква L
)
Ленивое размонтирование.Отключите файловую систему от иерархии файловой системы сейчас и очистите все ссылки на файловую систему, как только она больше не занята.(Требуется ядро 2.4.11 или позже.)
Другие советы
umount -a -t cifs -l
у меня на CentOS 6.3 работал как шарм.Это спасло меня от перезагрузки сервера.
На RHEL 6 это сработало:
umount -f -a -t cifs -l
У меня была эта проблема в течение дня, пока я не нашел настоящее решение.Вместо того, чтобы пытаться принудительно отключить зависший общий ресурс 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
Возможно, это не настоящий ответ на ваш вопрос, но это решение проблемы.
Это работает для меня (рабочий стол 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.
Попробуйте umount -f /mnt/share.С NFS работает нормально, с cifs не пробовал.
Кроме того, взгляните на autofs: он смонтирует общий ресурс только при доступе и размонтирует его после этого.
Есть хороший мастер-класс www.howtoforge.net
У меня была очень похожая проблема с davfs.На странице руководства umount.davfs
, я обнаружил, что -f -l -n -r -v
параметры игнорируются umount.davfs
.Чтобы принудительно размонтировать монтирование davfs, мне пришлось использовать umount -i -f -l /media/davmount
.
Есть опция -f для размонтирования, которую вы можете попробовать:
umount -f /mnt/fileshare
Вы указываете опцию «-t cifs» для монтирования?Также убедитесь, что вы не указали «жесткий» вариант монтирования.
Вы также можете рассмотреть предохранители, поскольку файловая система будет работать в пользовательском пространстве, вы можете завершить ее, как и любой другой процесс.
umount -f -t cifs -l /mnt &
Будьте осторожны с &
, позволять umount
запустить в фоновом режиме.umount
сначала отключит файловую систему, поэтому вы ничего не найдете /mnt
.Если ты бежишь df
команда, то она будет umount /mnt
принудительно.
На RHEL 6 у меня это тоже сработало:
umount -f -a -t cifs -l ИМЯ_ПАПКИ
Ленивое размонтирование сделает всю работу за вас.
umount -l <mount path>