163

我在挂起的 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

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

4

6 回答 6

254

您可以尝试延迟卸载:

umount -l
于 2008-09-02T19:05:51.323 回答
78

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

于 2008-09-15T15:56:58.683 回答
20

尝试运行

lsof | grep /mnt/data

这应该列出任何正在访问 /mnt/data 的进程,这些进程会阻止它被卸载。

于 2008-09-02T19:12:05.677 回答
11

我有同样的问题,都 umount /path -f没有,也没有 ,都umount.nfs /path -f没有 fuser -km /path

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

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

于 2012-12-27T02:41:39.340 回答
4

您的 NFS 服务器消失了。

理想情况下,您最好的选择是 NFS 服务器是否恢复正常。

如果没有,“umount -f”应该可以解决问题。它并不总是有效,但它经常会。

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

最后,我猜你需要重新启动。

此外,不要软挂载您的 NFS 驱动器。您使用硬座来保证它们的工作。如果你正在写,那是必要的。

于 2008-09-15T16:06:19.490 回答
4

在这里找不到有效的答案;但在 linux 上,您可以运行“umount.nfs4 /volume -f”,它肯定会卸载它。

于 2012-08-31T07:55:08.137 回答