关于linux:如何强制CIFS连接卸载

关于linux:如何强制CIFS连接卸载

How do you force a CIFS connection to unmount

我在Linux机器上安装了CIFS共享。 CIFS服务器已关闭,或者Internet连接已关闭,任何与CIFS挂接有关的事物现在都需要几分钟的超时时间,并且在您等待时无法终止。 我什至无法在我的主目录中运行ls,因为在CIFS挂载内部指向了一个符号链接,而ls试图跟随它来决定它应该是什么颜色。 如果我尝试将其挂载(即使使用-fl),则挂载进程也会像ls一样挂起。 甚至sudo kill -9也无法杀死它。 如何强制卸载内核?


我使用惰性卸载: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.)


umount -a -t cifs -l

在CentOS 6.3上对我来说就像是一种魅力。它为我节省了重启服务器的时间。


在RHEL 6上,此方法有效:

1
umount -f -a -t cifs -l


这对我有用(将Ubuntu 13.10 Desktop移植到Ubuntu 14.04 Server):-

1
 sudo umount -f /mnt/my_share

装有

1
 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 Make the mount soft. Fail file system calls after a number of seconds.

1
2
3
4
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

可能不是您问题的真实答案,但这是解决问题的方法


我在davfs中有一个非常相似的问题。在umount.davfs的手册页中,我发现-f -l -n -r -v选项被umount.davfs忽略。要强制卸载davfs装载,必须使用umount -i -f -l /media/davmount


尝试umount -f / mnt / share。使用NFS可以正常运行,而从未使用过CIF。

另外,请看一下autofs,它将仅在访问共享目录时挂载共享,而在黑社会中将其卸载。

在www.howtoforge.net上有一个很好的教程


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

注意&,让umount在后台运行。
umount将首先分离文件系统,因此您将在/mnt之上找不到任何东西。如果运行df命令,则它将强制umount /mnt


有一个-f选项可以尝试卸载:

1
umount -f /mnt/fileshare

您是否指定要挂载的" -t cifs"选项?还要确保您未指定要安装的"硬"选项。

您可能还需要考虑fusesmb,因为文件系统将在用户空间中运行,因此您可以像其他进程一样将其杀死。


在RHEL 6上,这对我也有效:

umount -f -a -t cifs -l FOLDER_NAME


懒惰的卸载将为您完成这项工作。

1
umount -l <mount path>


推荐阅读