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

StackOverflow https://stackoverflow.com/questions/74626

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть общий ресурс 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top