无法删除旧的 NFS 目录:设备或资源繁忙

无法删除旧的 NFS 目录:设备或资源繁忙

在服务器 1 上,我们从服务器 2 挂载了一个 NFS 共享,如下所示:

/nfs/server2/share

最近,我们关闭了 server2 以在其上安装新的操作系统。现在我们无法像以前一样设置 NFS。当我执行此操作时:

ls -l /nfs/server2

而且它是空的。因此我无法在 上挂载我的共享/nfs/server2/share

当我尝试创建/nfs/server2/share目录时,我得到了

mkdir: cannot create directory `share': No such file or directory

我认为这是因为它并不认为该/nfs/server2目录确实存在。即使我将 -p 选项与 mkdir 一起使用,它也不起作用。

接下来我尝试删除它/nfs/server2,以便重新创建它。我尝试 rm -r /nfs/server2,但得到

rm: cannot remove directory `/nfs/server2': Device or resource busy

所以现在我不知所措。我需要在server1(at /nfs/server2/share) 上的相同位置安装此 NFS 共享,因为 server1 上的其他软件依赖于此。但如果我无法创建该共享目录并且无法删除该目录,我该怎么办?

另外,为了测试,我尝试安装共享,/nfs/testing/share安装得很好。但就像我说的,我需要将其安装回相同的位置。

更新

server2 未以任何方式安装在 server1 上。我认为问题始于另一位管理员关闭 server2 以重新安装操作系统,而没有先卸载 server1 上的共享。我不确定这是否有区别。无论如何,什么mount | grep server2都没有显示,也没有任何东西fstab

解决了

显然,自动挂载正在 server1 上运行,并且该服务阻止我删除旧的 NFS 目录。系统管理员之间缺乏沟通 FTL...

我认为解决这个问题的方法是使用 grep 查找使用我试图删除的目录的某个进程或服务。但我不知道该怎么做。

答案1

供将来参考,此mount --move开关对于将行为不当的安装架移开非常有用。另请参阅选项umount -l

答案2

您可以使用 来找出哪些进程正在使用哪些文件lsof(1)

您需要以 root 身份运行此程序才能访问有关机器上进程的所有信息。

Unix 几乎将所有内容视为文件,因此您还可以获取正在使用的网络资源列表。

尝试:

lsof | grep TCP 

非常棒的诊断工具!

答案3

要查看当前挂载,请查看/etc/mtab,而不是/etc/fstab/etc/fstab显示机器在系统启动时尝试挂载的内容。 /etc/mtab是一个动态文件,显示现在挂载的内容。例如,mount没有任何选项的命令显示当前挂载。信息通过阅读提供/etc/mtab。所以现在你有两种方法可以查看挂载的内容。它们还显示每个挂载的所有选项,包括 中未显示的默认选项/etc/fstab

相关内容