强制卸载 NFS 挂载的目录

我有一个挂载在 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

除了重启机器,我还能做什么?

388832 次浏览

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

umount -l

试着逃跑

lsof | grep /mnt/data

它应该列出所有访问/mnt/数据的进程,这些进程可以防止/mnt/数据被卸载。

如果 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)更多!

您的 NFS 服务器消失了。

理想情况下,最好的选择是 NFS 服务器回来。

如果不是,那么“ umamount-f”应该能起作用。 它并不总是起作用,但通常会起作用。

如果您碰巧知道哪些进程正在使用 NFS 文件系统, 您可以尝试关闭这些进程,然后卸载可能会奏效。

终于,我猜你需要重启了。

此外,不要软装您的 NFS 驱动器。您使用硬装载来保证 如果你在写作,这是必要的。

在这里找不到可行的答案; 但是在 Linux 上可以运行“ umount.nfs4/volu-f”,并且它肯定会卸载它。

我也有同样的问题 无论是 umount /path -f, 无论是 umount.nfs /path -f, 无论是 fuser -km /path, 工程

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

然后让我们做简单的 umount; -)