无法在从 Ubuntu 21.04 共享的 Mac OS Big Sur 上挂载 NFS 共享 - rpc.statd 未运行

and*_*eas 5 nfs mount 21.04

我已在 Ubuntu 21.04 VM 上设置了 NFS 共享,我想将其安装在 Mac OS Big Sur 客户端上。

使用 检查时,共享列表正常showmount,但安装失败:

andi@iMac-Pro Projects % showmount -e 10.116.0.108
Exports list on 10.116.0.108:
/srv/nfsv4/vsc-docker-projects      10.116.0.0/24
/srv/nfsv4                          10.116.0.0/24

andi@iMac-Pro Projects % sudo mount -t nfs 10.116.0.108:/srv/nfsv4/vsc-docker-projects /Users/andi/Documents/Projects/vsc-docker-projects
mount_nfs: can't mount with remote locks when server (10.116.0.108) is not running rpc.statd: RPC prog. not avail
mount: /Users/andi/Documents/Projects/vsc-docker-projects failed with 74
andi@iMac-Pro Projects %
Run Code Online (Sandbox Code Playgroud)

我在服务器上有以下配置:

$ cat /etc/exports
/srv/nfsv4   10.116.0.0/24(rw,sync,root_squash,no_subtree_check,fsid=0)
/srv/nfsv4/vsc-docker-projects 10.116.0.0/24(rw,sync,root_squash,no_subtree_check)

$ cat /etc/fstab
/home/andi/vsc-docker-projects /srv/nfsv4/vsc-docker-projects none bind 0 0
Run Code Online (Sandbox Code Playgroud)

我了解问题与rpc.statd系统上安装的 相关:

$ which rpc.statd
/usr/sbin/rpc.statd
Run Code Online (Sandbox Code Playgroud)

...但显然没有运行:

$ ps -ef | grep rpc
root         407       2  0 04:00 ?        00:00:00 [rpciod]
_rpc         648       1  0 04:00 ?        00:00:00 /sbin/rpcbind -f -w
root        2361       1  0 04:21 ?        00:00:00 /usr/sbin/rpc.idmapd
root        2362       1  0 04:21 ?        00:00:00 /usr/sbin/rpc.mountd --manage-gids
andi        2509    1255  0 04:32 pts/0    00:00:00 grep --color=auto rpc
Run Code Online (Sandbox Code Playgroud)

也无法启动:

$ sudo systemctl start rpc.statd
Failed to start rpc.statd.service: Unit rpc.statd.service not found.

$ service start rpc.statd
start: unrecognized service
Run Code Online (Sandbox Code Playgroud)

我只是缺少一个服务文件/etc/systemd/system/?VM确实是新安装的,我刚刚用apt更新了它,安装了Docker。我无法想象我会在这么短的时间内打破它。

知道我接下来可以尝试什么吗?提前致谢。

and*_*eas 4

搜索了一下,我发现了一个指向正确方向的帖子。

激活服务就成功了:

# check status on rpcbind.service
systemctl status rpcbind.service
systemctl reenable rpcbind.service
systemctl restart rpcbind.service

# check status on rpc-statd.service
systemctl status rpc-statd.service
systemctl reenable rpc-statd.service
systemctl restart rpc-statd.service
Run Code Online (Sandbox Code Playgroud)

现在我收到一条与权利相关的消息,这无疑是向前迈出的一步:

andi@iMac-Pro Projects % sudo mount -t nfs 10.116.0.108:/srv/nfsv4/vsc-docker-projects /Users/andi/Documents/Projects/vsc-docker-projects
Password:
mount_nfs: can't mount /srv/nfsv4/vsc-docker-projects from 10.116.0.108 onto /Users/andi/Documents/Projects/vsc-docker-projects: Operation not permitted
mount: /Users/andi/Documents/Projects/vsc-docker-projects failed with 1
andi@iMac-Pro Projects %
Run Code Online (Sandbox Code Playgroud)

服务器的 /etc/exports 中的一些添加就达到了目的:

/srv/nfsv4/vsc-docker-projects 10.116.0.109/24(rw,sync,root_squash,no_subtree_check,anonuid=1000,anongid=1000,insecure)
Run Code Online (Sandbox Code Playgroud)

该共享仅公开给同一主机上的其他虚拟机。因此,不安全感应该没问题。

现在只需在客户端 /etc/fstab 中添加一个条目,我们就可以开始了:

10.116.0.108:/srv/nfsv4/vsc-docker-projects     /Users/andi/Documents/Projects/vsc-docker-projects      nfs auto 0 0
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这解决了。在编辑 /etc/exports 之间,我必须运行 `exportfs -a` 并使用 `systemctl restart nfs-kernel-server ` 重新启动 nfs 服务。在终端中工作后,通过 Finder 的 command+k 挂载共享也可以。 (2认同)

med*_*ina 4

我刚刚从 MacOS Catalina 升级到 Monterey,在尝试安装时出现以下错误

mount_nfs: can't mount with remote locks when server (<remote_server>) is not running rpc.statd: RPC prog. not avail
Run Code Online (Sandbox Code Playgroud)

我试图使用以下命令

sudo mount -t nfs -o resvport remote_server:/home/myuser/src /Users/myuser/Development/src
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我必须通过更改文件 nfs.conf 来告诉我的 MacO 默认为 NFSv4

sudo vi /etc/nfs.conf
nfs.client.mount.options = vers=4
Run Code Online (Sandbox Code Playgroud)