我如何在 ServerA 上共享 FolderA 以便我的客户端可以简单地作为 ServerA:/FolderA 访问它(如果 FolderA 不在 / 中)?
假设 FolderA 实际上是
/usr/local/test/RandomName
我可以使用 fstab 中的 bind 来缩短它并将其放入 /export
/usr/local/test/RandomName /export/FolderA none bind 0 0
现在我可以将其安装为
mount -t nfs ServerA:/export/FolderA /media/folderA
我真正想要的是
mount -t nfs ServerA:/FolderA /media/folderA
服务器是 Ubuntu 10.04,客户端包括 Mac 和 Linux 机器
答案1
您必须在 NFS 导出中设置基本目录。要执行此操作并创建/export
基本目录,您应该打开文件
/etc/exports
并在第一行输入以下内容:
/export the.IP.of.THEclientsyouwant(ro,fsid=0)
设置选项 fsid=0(或 fsid=root)后,您将不会在客户端调用完整路径,然后命令
mount -t nfs ServerA:/FolderA /media/folderA
就能按照你希望的方式工作。
答案2
我不确定您是否可以在服务器的 fstab 中使用 bind 来执行此操作。但我知道您可以这样做:
ln -s /usr/local/test/RandomName /FolderA
配置您的 /etc/exports 文件以导出 /FolderA,这样就好了。
答案3
鞋底fsid=0
对我来说不合适。
nfs-utils
>=2.4.1 得到Add the "[exports] rootdir" option to nfs.conf
特写(2019 年 5 月 28 日):
以下补丁集在 /etc/nfs.conf 中的“[exports]”部分中添加了对 nfsd 的“rootdir”配置选项的支持。
如果用户将此选项设置为有效的目录路径,则 nfsd 将表现得像被限制在基于该目录的 chroot jail 中一样。 /etc/exports 和 exportfs 实用程序中的所有路径都将相对于该目录进行解析。
类似这样的事情应该可以工作:
注意:我无法使导出/
根路径起作用,但通过子目录导出可以做到。
目标目录绑定到/export/nfs/FolderA
。
/etc/nfs.conf
:
[exports]
rootdir=/export
/etc/exports
:
/nfs (fsid=0) # workaround for `/` path
/nfs/FolderA
访问它nfs://server_name/nfs/FolderA
答案4
在 NFS 服务器上打开以下文件:
/etc/exports
并输入以下详细信息:
/usr/local/test/RandomName XX.XX.XX.XX(rw)
然后登录 NFS 客户端并执行如下挂载:
mount -t nfs YY.YY.YY.YY:/usr/local/test/RandomName /media/folderA
Fstab 条目:
YY.YY.YY.YY:/usr/local/test/RandomName /media/folderA nfs defaults 0 0
笔记:
XX.XX.XX.XX - IP of NFS client
YY.YY.YY.YY - IP of NFS server