如何强制卸载CIFS连接


149

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


Answers:


186

我使用惰性卸载:(umount -l这是小写L

懒惰卸载。现在从文件系统层次结构中分离文件系统,并在不再繁忙时清除对文件系统的所有引用。(需要内核2.4.11或更高版本。)


42
起初这对我不起作用。经过一段时间的实验(每次在一个新的虚拟终端中),我想到了:sudo umount -a -t cifs -l。要么做到了这一点,要么完成了第一个卸载任务(120s?300s?)。我收到许多有关umount被阻止超过120秒的警告。
Peter Jaric 2012年

2
然后我必须杀死所有悬挂的umount,然后才能再次安装。
Peter Jaric 2012年

13
我还需要sudo umount -a -t cifs -l 使其工作。
罗马2012年

4
这对我真的没有用。我尝试了上面的所有其他操作,并且cifs挂载从我的/ etc / mtab列表中消失了,但是无法重新挂载,因此实际上没有用。当我的计算机在挂载cifs共享时挂起时,挂起cifs挂起。
DH4 2012年

我同意,umount -a -t cifs -l也是克服可怕的“ Host Down”的必要条件。
Pooch

70

umount -a -t cifs -l

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


8
您是否想详细说明什么是什么-a-l切换如何以及它们如何提供帮助?
艾萨克2014年

10
-a和-t cifs卸载所有cifs文件系统。最好指定您要卸载的
那个

2
如果您通过文件浏览器挂载并且找不到有问题的挂载点,这是完美的-前提是您不介意它卸载所有内容!
2015年

1
谢谢,今天节省了很多时间!
agam

13

在RHEL 6上,这有效:

umount -f -a -t cifs -l 

此方法有效,必须等待整整30分钟(超时)才能重新安装。最好按照jnice的指示进行软安装。
XMAN

11

这对我有用(将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文件中设置和指向的地方。


6

我遇到了一天的问题,直到找到真正的解决方案。与其尝试强制卸载挂起的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

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


19
如果您看一下,man mount.cifs您会发现soft实际上是默认设置。

2

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

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

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


5
不幸的是,-f不适用于CIFS。umount仍然挂起。
smoofra

2

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


1

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

umount -f /mnt/fileshare

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

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


4
-f和-t没有帮助,umount仍然挂起。
smoofra

自添加'-t cifs'选项进行装载以来,您是否已重新启动?我认为您现在无法采取任何措施来修复卡住的挂载点,您唯一的希望是尝试以更能抵抗将来失败的方式来进行安装。
克里斯·阿特里

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

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


-2

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

umount -f -a -t cifs -l FOLDER_NAME


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.