如何强制CIFS连接卸载

smo*_*fra 145 linux smb samba cifs

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

Kem*_*mal 175

我使用懒惰卸载:( umount -l这是一个小写L)

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

  • 起初这对我不起作用.经过一段时间的试验(每次在一个新的虚拟终端)我想出了这个:```sudo umount -a -t cifs -l```.要么这样做了,要么第一次卸载需要一段时间(120s?300s?)才能完成.我收到很多关于umount被阻挡超过120秒的警告. (39认同)
  • 我还需要`sudo umount -a -t cifs -l`来让它工作. (12认同)
  • 这对我来说真的不适用.我尝试了上面的所有其他内容,并且cifs mount从我的/ etc/mtab列表中消失了但是它无法重新安装,所以它实际上没用.当我的计算机在安装cifs共享时挂起时,cifs挂载会冻结. (4认同)
  • 然后我不得不在我再次装载之前杀掉所有悬挂的悬挂装置. (2认同)

iva*_*lan 67

umount -a -t cifs -l

在CentOS 6.3上为我的魅力工作.它为我节省了服务器重启.

  • -a和-t cifs卸载所有cifs文件系统.最好指定要卸载的那个 (10认同)
  • 您是否介意详细说明`-a`和`-l`开关是什么以及它们如何帮助? (8认同)
  • 如果您通过文件浏览器进行挂载并且找不到有问题的挂载点,这是完美的-前提是您不介意它卸载所有内容! (2认同)
  • -l 代表“--lazy 立即分离文件系统,稍后清理”,效果非常好 (2认同)

And*_*ley 13

在RHEL 6上,这工作:

umount -f -a -t cifs -l 
Run Code Online (Sandbox Code Playgroud)


小智 9

这适用于我(Ubuntu 13.10桌面到Ubuntu 14.04服务器): -

 sudo umount -f /mnt/my_share
Run Code Online (Sandbox Code Playgroud)

安装

 sudo mount -t cifs -o username=me,password=mine //192.168.0.111/serv_share /mnt/my_share
Run Code Online (Sandbox Code Playgroud)

其中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
Run Code Online (Sandbox Code Playgroud)

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

  • 如果你看一下`man mount.cifs`,你会注意到`soft`实际上是默认的. (19认同)