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

在server1上,我们有一个从server2挂载的NFS共享,如下所示:

/nfs/server2/share 

最近我们拿下server2来安装一个新的操作系统。 现在我们无法像以前那样获得NFS设置。 当我这样做:

 ls -l /nfs/server2 

它是空的。 所以我不能在/nfs/server2/share挂载我的/nfs/server2/share

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

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

我认为这是因为它不认为/nfs/server2目录真的存在。 即使我使用mkdir的-p选项,它也不起作用。

接下来,我试图删除/nfs/server2所以我可以重新创build它。 我试图rm -r /nfs/server2但是我得到了

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

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

此外,只是为了testing,我试图挂载共享在/nfs/testing/share ,它安装得很好。 但就像我说的,我需要把它挂回到同一个位置。

UPDATE

server2没有以任何方式安装在server1上。 我认为,当另一个pipe理员取下server2重新安装操作系统,而没有首先卸载server1上的共享时,问题就开始了。 我不确定这是否有所作为。 无论如何, mount | grep server2 mount | grep server2什么也没有显示, fstab也没有。

解决了

显然automount是在server1上运行的,该服务让我无法删除旧的NFS目录。 缺乏系统pipe理员之间的通信FTL …

我想,解决这个问题的方法是grep一些正在使用我试图删除的目录的进程或服务。 但我不知道该怎么做。

为了将来的参考, mount --move开关是非常有用的移动一个不正确的安装。 另请参阅umount -l选项。

您可以通过lsof(1)了解哪些进程正在使用什么文件。

您将需要以root用户身份运行,以访问有关您计算机上进程的所有信息。

Unix将几乎所有的东西当成文件,所以你也可以得到一个正在使用的networking资源列表。

尝试:

 lsof | grep TCP 

一个伟大的诊断工具!

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