在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 。