我可以更改 NFS 导出的名称吗

我可以更改 NFS 导出的名称吗

我正在通过 NFS 导出我的 /opt/target 目录,但我希望 nfs 客户端能够将其挂载为 /target。即我希望 showmount -e 显示 /target 而不是 /opt/target。可以这样做吗?

答案1

我非常确定 NFS 不允许使用别名。符号链接可能是最好的选择,它可以避免将整个导出移动到不合逻辑的位置 (/target)。

此处的原始建议是将 /opt/target 符号链接到 /target,然后导出 /target。NFS 支持此功能,我不知道有什么理由不以这种方式使用符号链接。

答案2

您想要的是 NFSv4 的工作方式。在 NFSv4 中,导出的所有目录都来自单个伪文件系统,其中实际目录使用 挂载--bind。请参阅Ubuntu NFSv4 操作方法举个例子。

答案3

因为对我来说 wzzrd 的答案不起作用,并且 Kamil Kisiel 的答案引用了外部来源,所以我将在这里描述它在 op 的用例中究竟是如何工作的:

sudo mkdir /target
sudo mount --bind /opt/target /target
sudo exportfs -arv

输出结果为:

exporting 192.168.178.90/24:/target

答案4

显然有一种方法可以做到这一点,因为这正是我的 QNAP 所做的。显示来自 qnap451plus 的导出,然后显示来自 qnap451plus 的导出,从另一个系统查看:

[admin@qnap451plus graeme]# exportfs -s
/share/CACHEDEV1_DATA/Download  *(async,wdelay,hide,no_subtree_check,fsid=bba46d1aa4b68e6ba697d935164e1abf,sec=sys,rw,insecure,no_root_squash,no_all_squash)
/share/CACHEDEV1_DATA/InternalAdmin  *(async,wdelay,hide,no_subtree_check,fsid=1e63b3f350ad7a5a452bea848e936c1c,sec=sys,rw,insecure,no_root_squash,no_all_squash)
/share/CACHEDEV1_DATA/Multimedia  *(async,wdelay,hide,no_subtree_check,fsid=33172f1e47c9173a0e9d13ed82b65885,sec=sys,rw,insecure,no_root_squash,no_all_squash)
/share/CACHEDEV1_DATA/Public  *(async,wdelay,hide,no_subtree_check,fsid=37b143ba0ca575d37a356ab03a7a28db,sec=sys,rw,insecure,no_root_squash,no_all_squash)
/share/CACHEDEV1_DATA/Recordings  *(async,wdelay,hide,no_subtree_check,fsid=ece917106e8f2512887e54c1e919cc78,sec=sys,rw,insecure,no_root_squash,no_all_squash)
/share/CACHEDEV1_DATA/USBUploads  *(async,wdelay,hide,no_subtree_check,fsid=058b9250c295797042f6831f68b57bb9,sec=sys,rw,insecure,no_root_squash,no_all_squash)
/share/CACHEDEV1_DATA/Web  *(async,wdelay,hide,no_subtree_check,fsid=e0cd2aff70d6e8230b19741d75feef97,sec=sys,rw,insecure,no_root_squash,no_all_squash)
/share/CACHEDEV1_DATA/git  *(async,wdelay,hide,no_subtree_check,fsid=87460a2c467625ffe65bebb837fbf6cc,sec=sys,rw,insecure,no_root_squash,no_all_squash)
/share/CACHEDEV1_DATA/homes  *(async,wdelay,hide,no_subtree_check,fsid=405caac1b0396839a07a6afec822624a,sec=sys,rw,insecure,no_root_squash,no_all_squash)
/share/CACHEDEV1_DATA/svn  *(async,wdelay,hide,no_subtree_check,fsid=a7cce6eafb9344f595f0c7c53699c34f,sec=sys,rw,insecure,no_root_squash,no_all_squash)

但被视为:

~$ showmount -e qnap451plus
Export list for qnap451plus:
/svn           *
/homes         *
/git           *
/Web           *
/USBUploads    *
/Recordings    *
/Public        *
/Multimedia    *
/InternalAdmin *
/Download      *

现在我尝试使用 exportfs(1) 从 qnap451plus 手动导出文件系统,但没有成功。测试导出要么没有出现,要么导致导出在 qnap451plus 上“崩溃”。

相关内容