我在 Linux 机器上安装了一个 CIFS 共享。CIFS 服务器已关闭,或 Internet 连接已关闭,任何接触 CIFS 挂载的内容现在都需要几分钟才能超时,并且在您等待时无法杀死。我什至不能在我的主目录中运行 ls 因为有一个符号链接指向 CIFS 挂载内部,并且 ls 试图跟随它来决定它应该是什么颜色。如果我尝试卸载它(即使使用 -fl),卸载过程也会像 ls 一样挂起。甚至 sudo kill -9 也无法杀死它。如何强制内核卸载?
11 回答
我使用惰性卸载:(umount -l
这是一个小写字母L
)
懒卸载。现在从文件系统层次结构中分离文件系统,并在文件系统不再忙时清理对文件系统的所有引用。(需要内核 2.4.11 或更高版本。)
umount -a -t cifs -l
在 CentOS 6.3 上对我来说就像一个魅力。它为我节省了服务器重启。
在 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 使底座变软。几秒钟后文件系统调用失败。
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
可能不是您问题的真正答案,但它是问题的解决方案
您可以尝试使用 -f 选项来卸载:
umount -f /mnt/fileshare
您是否指定要挂载的“-t cifs”选项?还要确保您没有指定要挂载的“硬”选项。
您可能还需要考虑fusesmb,因为文件系统将在用户空间中运行,您可以像任何其他进程一样终止它。
试试 umount -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
.
umount -f -t cifs -l /mnt &
小心&
,让umount
后台运行。
umount
将首先分离文件系统,因此您将一无所获/mnt
。如果你运行df
命令,那么它将umount /mnt
强制执行。
在 RHEL 6 上,这也对我有用:
umount -f -a -t cifs -l FOLDER_NAME
懒惰的卸载将为您完成这项工作。
umount -l <mount path>