2008-09-16 4 views
119

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

+0

Похожие: [Force размонтирования из NFS-монтируемой директории] (http://stackoverflow.com/questions/40317/force-unmount-of-nfs-mounted-directory) – Kemal 2008-09-18 20:04:11

ответ

147

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

Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore. (Requires kernel 2.4.11 or later.)

+23

Сначала это не сработало. Проведя некоторое время (в новом виртуальном терминале каждый раз), я придумал следующее: `` `sudo umount -a -t cifs -l```. Либо это сделало трюк, либо первый унтер занял некоторое время (120-300 секунд?), Чтобы закончить. Я получил множество предупреждений о том, что umount заблокирован более чем на 120 секунд. – 2012-03-12 12:06:07

+2

И тогда я должен был убить все висящие umounts, прежде чем смогу снова подняться. – 2012-03-12 12:29:06

+7

Мне нужно было также `sudo umount -a -t cifs -l`, чтобы заставить его работать. – Joma 2012-07-11 16:17:24

0

Там есть опция -f размонтировать, что вы можете попробовать:

umount -f /mnt/fileshare 

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

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

+3

-f и -t не помогите, umount все еще висит. – smoofra 2008-09-16 17:35:31

+0

вы перезагрузились с момента добавления опции -t cifs для монтирования? Я не думаю, что вы можете что-то сделать, чтобы исправить свою застрявшую точку монтирования прямо сейчас, ваша единственная надежда - попытаться смонтировать ее таким образом, чтобы в будущем это было более устойчиво к сбою. – 2008-09-16 19:33:17

1

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

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

Существует хороший учебник по www.howtoforge.net

+4

К сожалению, -f не работает с CIFS. umount все еще просто висит. – smoofra 2008-09-16 17:40:07

5

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

soft Make the mount soft. Fail file system calls after a number of seconds.

mount -t smbfs -o soft //[email protected]/share /users/username/smb/share 

stat /users/username/smb/share/file 
stat: /users/username/smb/share/file: stat: Operation timed out 

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

45

umount -a -t cifs -l

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

5

Это работает для меня (Ubuntu 13.10 Desktop на Ubuntu 14.04 Server,): -

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 файл.

0

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

8

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

umount -f -a -t cifs -l 
-1

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

размонтировать -f -a -t -l CIFS название_папки

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

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

-6

Lazy unmount выполнит эту работу за вас.

размонтировать -l