当前位置:  开发笔记 > 运维 > 正文

强制卸载NFS挂载的目录

如何解决《强制卸载NFS挂载的目录》经验,为你挑选了4个好方法。

我在挂起的Linux机器上有一个NFS挂载的目录.我试图强制卸载,但它似乎不起作用:

$ umount -f /mnt/data
$ umount2: Device or resource busy
$ umount: /mnt/data: device is busy

如果我输入" mount",似乎该目录不再挂载,但如果我执行" ls /mnt/data" 它会挂起,如果我尝试删除挂载点,我会得到:

$ rmdir /mnt/data
rmdir: /mnt/data: Device or resource busy

除了重启机器之外,还有什么可以做的吗?



1> 小智..:

你可以尝试一个懒惰的卸载:

umount -l


@Daniel:当然,但它*是一个Linux问题(标记为甚至),Linux确实拥有它.
@KieranAndrews和Ubuntu上的其他任何人,尝试`fusermount -uz/path/to/file`.为我工作的魅力!:)
我在Ubuntu上尝试过这个命令,但它没有用.
这并没有在任何地方实施.例如,我在FreeBSD上没有它.

2> Daniel Papas..:

如果NFS服务器消失并且您无法将其重新联机,我使用的一个技巧是使用NFS服务器的IP(在此示例中为192.0.2.55)向接口添加别名.

Linux的

对此的命令大致如下:

ifconfig eth0:fakenfs 192.0.2.55 netmask 255.255.255.255

其中192.0.2.55是已离开的NFS服务器的IP.然后,您应该能够ping通地址,并且还应该能够卸载文件系统(使用unmount -f).然后,您应该销毁别名接口,以便不再使用以下方法将流量路由到旧NFS服务器:

ifconfig eth0:fakenfs down

FreeBSD和类似的操作系统

该命令将类似于:

ifconfig em0 alias 192.0.2.55 netmask 255.255.255.255

然后删除它:

ifconfig em0 delete 192.0.2.55

man ifconfig(8)了解更多!


'ifconfig eth0:fakenfs ...'和`umount -f -l/my/mount/dir'的组合为我解决了这个问题.
@Shurane在Linux下,使用`ifconfig eth0:fakenfs down`删除别名应该可以解决问题.

3> Ryan Ahearn..:

试试跑步

lsof | grep /mnt/data

这应列出正在访问/ mnt/data的任何进程,以防止它被卸载.


当lsof永远挂起时,请尝试"lsof -b"(有一个与NFS相关的lsof错误,请参阅https://bugzilla.redhat.com/show_bug.cgi?id=962755).

4> Daniel N...:

我有同样的问题,也不 umount /path -f,既不是 umount.nfs /path -f,无论是 fuser -km /path,作品

最后我找到了一个简单的解决方案>.<

sudo /etc/init.d/nfs-common restart,然后让我们做简单umount;-)


用'umount -f -l ...`为我工作
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有