![是否可以在不卸载 NFS 内容的情况下查看底层 NFS 挂载的内容?](https://linux22.com/image/510616/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%B8%8D%E5%8D%B8%E8%BD%BD%20NFS%20%E5%86%85%E5%AE%B9%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%9F%A5%E7%9C%8B%E5%BA%95%E5%B1%82%20NFS%20%E6%8C%82%E8%BD%BD%E7%9A%84%E5%86%85%E5%AE%B9%EF%BC%9F.png)
我在服务器上有一个共享目录 - 我们称之为 /home/shared - 它通过 nfs 安装来自另一台服务器的内容。
卸载后 /home/shared 为应该为空 - 但是,运行杜目录上的 表示它不为空。
我无法卸载 NFS 内容来检查挂载点,因为它已被其他人使用。
有没有什么方法可以让我查看/编辑实际挂载点的内容(而不是 NFS 内容),同时保留 NFS 内容以供其他人使用?
答案1
以下做法可能会更简单:
$ sudo mount --bind /directory_above_the_mount_point /some_temporary_directory
然后,/directory_above_the_mount_point/mount_point
剩下的就是显示已挂载的文件系统,同时您可以访问底层文件系统(挂载点)/some_temporary_directory/mount_point
。
答案2
如果您想要获取底层目录的句柄,您可以使用mount --move
将共享移开,将 cd 移到挂载点,然后使用mount --move
将其移回原位。不应该破坏任何东西。
如果您只是想查看,更好的选择是使用 debugfs (或其他等效方法)针对文件系统设备本身来检查该目录:
challenger:/home/michael # mount
/dev/mapper/system-opensuse on / type ext3 (rw,noatime)
/dev/mapper/system-home on /home type xfs (rw,noatime)
challenger:/home/michael # debugfs /dev/system/opensuse
debugfs 1.41.9 (22-Aug-2009)
debugfs: ls /home
11751 (12) . 2 (4084) ..
debugfs: quit
答案3
你可以移动在 Linux 中使用 进行挂载mount --move
。因此,如果您可以使用很短可能无法访问的窗口,您可以这样做:
- 创建一个新的临时目录:
mkdir /home/shared-tmp
- 做这个举动:
mount --move /home/shared /home/shared-tmp && mv /home/shared /home/shared-old && mkdir /home/shared && mount --move /home/shared-tmp /home/shared
- 删除临时目录:
rmdir /home/shared-tmp
这应该保留/home/shared
为挂载目录,/home/shared-old
作为旧的(怀疑是非空的)目录。
答案4
您可以将原始文件所在的设备挂载到另一个目录,然后深入挖掘该目录的内容。