У меня есть общий ресурс CIFS, установленный на машине с Linux. Сервер CIFS не работает или подключение к Интернету не работает, и все, что касается монтирования CIFS, теперь истечет несколько минут до истечения времени ожидания и не может быть уничтожено, пока вы ждете. Я даже не могу запустить ls в своем домашнем каталоге, потому что внутри монтирования CIFS есть символическая ссылка, и ls пытается следовать за ней, чтобы решить, какого цвета она должна быть. Если я попытаюсь размонтировать его (даже с -fl), процесс размонтирования зависнет, как и ls. Даже sudo kill -9 не может его убить. Как заставить ядро размонтироваться?
Как принудительно размонтировать соединение CIFS
Ответы (11)
Я использую ленивое размонтирование: umount -l
(это строчная буква L
)
Ленивое размонтирование. Отсоедините файловую систему от иерархии файловой системы сейчас и очистите все ссылки на файловую систему, как только она больше не будет занята. (Требуется ядро 2.4.11 или новее.)
sudo umount -a -t cifs -l
. Либо это сработало, либо первое размонтирование заняло некоторое время (120 с? 300 с?). Я получил много предупреждений о блокировке umount более 120 секунд.
- person Peter Jaric; 12.03.2012
sudo umount -a -t cifs -l
, чтобы заставить его работать.
- person Joma; 11.07.2012
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
-t cifs
, иначе вы размонтируете ВСЕ (поверьте мне). Ха.
- person moodboom; 20.01.2020
umount -a -t cifs -l
работал как шарм для меня на CentOS 6.3. Это спасло меня от перезагрузки сервера.
-a
и -l
и как они помогают?
- person Isaac; 20.12.2014
На RHEL 6 это сработало:
umount -f -a -t cifs -l
Это работает для меня (рабочий стол 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.
У меня была эта проблема в течение дня, пока я не нашел реальное решение. Вместо того, чтобы пытаться принудительно размонтировать зависший общий ресурс 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
Не может быть реальным ответом на ваш вопрос, но это решение проблемы
man mount.cifs
, вы заметите, что soft
фактически используется по умолчанию.
- person Benj; 01.05.2013
Попробуйте размонтировать -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' для монтирования? Также убедитесь, что вы не указываете «жесткий» вариант монтирования.
Вы также можете рассмотреть возможность fusesmb, так как файловая система будет работать в пользовательском пространстве. вы можете убить его, как и любой другой процесс.
umount -f -t cifs -l /mnt &
Будьте осторожны с &
, пусть umount
работает в фоновом режиме. umount
сначала отключит файловую систему, так что вы ничего не найдете о /mnt
. Если вы запустите команду df
, то она будет umount /mnt
принудительно.
На RHEL 6 это также сработало для меня:
umount -f -a -t cifs -l ИМЯ_ПАПКИ
Ленивое размонтирование сделает всю работу за вас.
umount -l <mount path>