在 NFS 导出中仅挂载子目录

get*_*ack 4 nas nfs ubuntu

在我的 NAS 上,我导出了一个文件系统:

/mnt/datastore  *(rw,sync,no_subtree_check,all_squash,fsid=0)
Run Code Online (Sandbox Code Playgroud)

随着/mnt/datastore/作为安装一组磁盘的基于FUSE级联点。

这个导出中的一个子目录/mnt/datastore/dev/是我存储我正在忙的开发工作的所有源树的地方。我有一个专用的 VM 用于开发,因此我想在其上安装此导出。为了安全起见,我只对挂载子目录感兴趣,mnt/datastore/dev/这样当我搞砸时,我就不会删除我的整个电影和电视剧集。

我试过的:

我在 NAS 上创建了一个新的导出:

/mnt/datastore/dev      *(rw,sync,no_subtree_check,all_squash,fsid=0)
Run Code Online (Sandbox Code Playgroud)

并将其安装在 fstab 中的开发框上:

IP_OF_NAS:/mnt/datastore/dev /mnt/dev_directory    nfs     rsize=8912,wsize=8912,timeo=14,intr     0       0
Run Code Online (Sandbox Code Playgroud)

这不像预期的那样工作:它安装得很好,但我看到了/mnt/datastore/, not 的内容,/mnt/datastore/dev/这违背了本练习的目的。

小智 5

替换no_subtree_checksubtree_check。确保fsid不与父导出冲突。

subtree_check选项告诉 NFS 服务器在检查其导出的任何操作时考虑文件系统上的路径。当沿着位于唯一文件系统上的树导出目录时,这通常是必需的。如果没有这个,NFS 服务器将处理来自与保存客户端 NFS 命令目标路径的文件系统匹配的第一个导出记录的请求。