挂载 Linux NFS。 rpc.statd 未运行

挂载 Linux NFS。 rpc.statd 未运行

我有 Ubuntu 12.04 作为 NFS 服务器。客户端是Linux。我的 /etc/exports文件有 1 行,

/folderToExport *(rw,async,no_subtree_check)  

/etc/init.d/nfs-kernel-server status显示 NFS 共享正在按预期工作。问题是,每当我尝试从另一台 Linux 主机挂载 NFS 共享时,stdout 都会显示

mount.nfs: rpc.statd is not running but is required for remote locking
mount.nfs: use '-o nolock'...or start statd

ps -ef |grep statd显示rpc.statd已经在运行,那么为什么他们说“启动 statd”?

包括他们的-o nolock建议允许挂载 NFS,但随后挂载的 NFS 将变为只读。该/etc/exports文件要求rw.

如何启动 statd? NFS 客户端或服务器是否缺少某些配置?


这对我有用。为 中的每个共享文件夹进行声明/etc/exports,例如

/folderToExport *(rw,async,no_subtree_check) 

statd可以通过以下方式启动

service statd stop其次是

service statd start。然后ps -ef |grep statd显示

statd 1994 1 0 15:23 ? 00:00:00 rpc.statd -L

验证其正在运行后,接下来从 Linux 客户端statd运行,mount

mount 192.168.1.3:/folderToExport /mountFolder

应该不会再有消息了rpc.statd is not running ... start statd

最后,确保 NFS 服务器上的权限允许rw权限。 (/etc/exports仅修改文件是不够的)

chmod 0777 /folderToExport -R

答案1

我找到了一个对我来说适用于 Raspbian 的答案这里

启用 rpcbind 和 nfs 服务。

sudo update-rc.d rpcbind enable

sudo update-rc.d nfs-common enable

重启rpcbind服务

sudo service rpcbind restart

答案2

statd是套餐的一部分nfs-common。您可能会发现自己可以为locate statd您带来其他好处/etc/init.d/statd

您可以statd从以下开始:

service statd start

但它通常应该在系统启动时启动,但也许还有其他问题。您应该检查日志文件:grep statd /var/log/*看看是否有无法启动的原因。

/etc/exports看起来不错。我用:

/data0    *(rw,no_root_squash,no_subtree_check)

在我的服务器上并且:

192.168.0.2:/data0 /data0   nfs  defaults,noauto,user 0 0

/etc/fstab我的客户上。

答案3

如果 rpcbind 和 statd 已启用并正在运行,但您仍然收到此错误消息,则主机可能配置了限制性 tcp 包装器。将记录以下错误:

rpc.statd: Failed to read /var/lib/nfs/state: Success

在这种情况下,您应该将以下内容添加到 /etc/hosts.allow 中:

rpcbind: 127.0.0.1

答案4

启动 rpcbind 和 nfslock 服务。参考

/etc/init.d/rpcbind start
/etc/init.d/nfslock start

相关内容