我正在尝试将来自 Ubuntu 服务器的 NFS4 导出安装到连接到本地网络的 Mac 客户端上。Mac 客户端可以使用 nfs3 挂载 nfs 导出,但是使用 nfs4 似乎无法这样做。
要共享的目录已fstab绑定到/export/share,并且该目录通过/etc/exports.
user@<server>:~$ tail -n 2 /etc/exports
/export *(insecure,no_subtree_check,rw,sync,fsid=0)
/export/share *(insecure,no_subtree_check,rw,nohide,sync)
Run Code Online (Sandbox Code Playgroud)
客户端能够看到来自服务器的两个导出
Macintosh:~ user$ showmount -e <server-ip>
Exports list on <server-ip>:
/export/share *
/export *
Run Code Online (Sandbox Code Playgroud)
客户端能够使用 nfs3 挂载驱动器(到本地挂载点~/NFS/Server_Media/)
Macintosh:~ user$ sudo mount -t nfs <server-ip>:/export/share NFS/Server_Media/
Run Code Online (Sandbox Code Playgroud)
或(都产生相同的结果)
Macintosh:~ user$ sudo mount -t nfs -o vers=3 <server-ip>:/export/share NFS/Server_Media/
Run Code Online (Sandbox Code Playgroud)
nfs3 的证明(在 NFS 参数下:vers=3)
Macintosh:~ user$ nfsstat -m
/Users/user/NFS/Server_Media from <server-ip>:/export/share
-- Original mount options:
General mount flags: 0x0
NFS parameters:
File system locations:
/export/share @ <server-ip> (<server-ip>)
-- Current mount parameters:
General mount flags: 0x4000000 multilabel
NFS parameters: vers=3,tcp,port=2049,nomntudp,hard,nointr,noresvport,negnamecache,callumnt,locks,quota,rsize=32768,wsize=32768,readahead=16,dsize=4096,nordirplus,nodumbtimr,timeo=10,maxgroups=16,acregmin=5,acregmax=60,acdirmin=5,acdirmax=60,nomutejukebox,nonfc,sec=sys
File system locations:
/export/share @ <server-ip> (<server-ip>)
Status flags: 0x0
Run Code Online (Sandbox Code Playgroud)
导出已卸载以测试 nfs4
Macintosh:~ user$ sudo umount NFS/Server_Media/
Run Code Online (Sandbox Code Playgroud)
客户端尝试挂载 nfs4
Macintosh:~ user$ sudo mount -t nfs -o vers=4 <server-ip>:/export/share NFS/Server_Media/
mount_nfs: can't mount /export/share from <server-ip> onto /Users/user/NFS/Server_Media: No such file or directory
Run Code Online (Sandbox Code Playgroud)
奇怪的是,Finder 的Connect to Server...操作 ( Cmd+ k) 能够通过输入以下内容来使用 nfs4 进行连接Server Address:
nfs://vers=4,<server-ip>:/export/share
Run Code Online (Sandbox Code Playgroud)
但是,如果不知道终端命令,就无法自动执行此操作,并且它只会挂载到/Volumes/share/,而不是预期的客户端挂载点。
至少就我所知,关于 Mac 和 NFS4 的文献令人惊讶地赤裸裸。对此的任何帮助将不胜感激!
经过一段时间的尝试和搜索,我终于能够解决这个问题。
正如在这个线程中发现的(关于 Fedora,但与 Mac 足够接近),似乎虽然nfs3will allowed sudo mount <...> <server-ip>:/export/share <...>,nfs4但似乎需要(挂载导出的“根”目录,而不是导出的目录本身)。更正该问题后,我的目录安装正常,尽管它似乎束缚了目录而不是目录(又添加了一层目录级别)。没什么大不了的,但如果有解决办法的话值得注意。编辑:我错了,事实证明您可以通过使用专门导出目录,基本上只是跳过导出目录的根目录。sudo mount <...><server-ip>:/<...>/export/export/share/sharesudo mount <...><server-ip>:/share<...>
作为一个有趣的旁注,如果我将/etc/export服务器上的行从更改/export/share *(insecure,no_subtree_check,rw,nohide,sync) 为,则出于某种原因,客户端上的目标目录在安装后似乎会变得无限自我嵌套。只是想我会包括这一观察,以防未来的人对他们的飞行汽车有同样的问题。/export/share *(insecure,fsid=0,no_subtree_check,rw,nohide,sync)NFS/Share_Media
| 归档时间: |
|
| 查看次数: |
10473 次 |
| 最近记录: |