NFS 不再挂载:rpc-statd 无法启动

Mar*_*oij 15 linux arch-linux nfs

每当我尝试启动 NFS 挂载时,我都会得到:

Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23582]: Version 1.3.2 starting
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23582]: Flags: TI-RPC
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23582]: Running as root.  chown /var/lib/nfs to choose different user
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23582]: failed to create RPC listeners, exiting
Feb 12 00:02:19 martin-xps.lico.nl systemd[1]: rpc-statd.service: control process exited, code=exited status=1
Feb 12 00:02:19 martin-xps.lico.nl systemd[1]: Failed to start NFS status monitor for NFSv2/3 locking..
Feb 12 00:02:19 martin-xps.lico.nl systemd[1]: Unit rpc-statd.service entered failed state.
Feb 12 00:02:19 martin-xps.lico.nl systemd[1]: rpc-statd.service failed.
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23584]: Version 1.3.2 starting
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23584]: Flags: TI-RPC
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23584]: Running as root.  chown /var/lib/nfs to choose different user
Feb 12 00:02:19 martin-xps.lico.nl rpc.statd[23584]: failed to create RPC listeners, exiting
Run Code Online (Sandbox Code Playgroud)

我试图chown /var/lib/nfsrpc,刚刚给我的错误减去“以root身份运行”行:

Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23773]: Version 1.3.2 starting
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23773]: Flags: TI-RPC
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23773]: failed to create RPC listeners, exiting
Feb 12 00:05:09 martin-xps.lico.nl systemd[1]: rpc-statd.service: control process exited, code=exited status=1
Feb 12 00:05:09 martin-xps.lico.nl systemd[1]: Failed to start NFS status monitor for NFSv2/3 locking..
Feb 12 00:05:09 martin-xps.lico.nl systemd[1]: Unit rpc-statd.service entered failed state.
Feb 12 00:05:09 martin-xps.lico.nl systemd[1]: rpc-statd.service failed.
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23775]: Version 1.3.2 starting
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23775]: Flags: TI-RPC
Feb 12 00:05:09 martin-xps.lico.nl rpc.statd[23775]: failed to create RPC listeners, exiting
Run Code Online (Sandbox Code Playgroud)

我尝试重新安装 nfs-utils:

$ pacman -R nfs-utils
$ rm -r /var/lib/nfs
$ pacman -S nfs-utils 
Run Code Online (Sandbox Code Playgroud)

然后它在 root 用户的许可下重新创建目录。我什至不确定这个错误是否与rpc.statd未启动有关。

我也尝试rpc.statd -F --no-notify在我的 shell 中运行,但它只是以代码 1 退出。没有错误,没有任何内容。联机帮助页中没有记录详细或调试标志。

我还尝试清空我的/etc/exports,并且我的系统是最新的 ( pacman -Syu)。我没有改变任何东西,它只是在几个小时前停止工作。

注意使用mount -o nolock /data作品;所以其余的 NFS/rpc 守护进程似乎没问题。

小智 29

同样的问题,rpc-stad自上次更新以来失败(我所有的电脑在更新后都有问题)。

为了解决我刚刚启用并启动 rpcbind 的问题:

sudo  systemctl enable   rpcbind.service  # for the next reboot
sudo  systemctl start    rpcbind.service   
sudo  systemctl restart  rpcbind.service
Run Code Online (Sandbox Code Playgroud)


Mar*_*oij 7

rpcbind systemd 单元文件丢失了:

$ find /usr/lib/systemd -name 'rpcbind*'
# no output
Run Code Online (Sandbox Code Playgroud)

重新安装解决了这个问题:

$ pacman -S rpcbind
# [...]

$ find /usr/lib/systemd -name 'rpcbind*
/usr/lib/systemd/system/rpcbind.service
/usr/lib/systemd/system/rpcbind.target
/usr/lib/systemd/system/rpcbind.socket

$ systemctl enable rpcbind
$ systemctl start rpcbind
$ systemctl restart nfs-server
Run Code Online (Sandbox Code Playgroud)

不确定这些文件是如何丢失的;也许是FS腐败问题?

奇怪的是 nfsd 仍在运行,但 statd 没有。重新启动后,nfsd 也不起作用(因为它需要rpcbind)。几乎就像这些文件在系统运行时消失了一样。

不幸的是systemd,没有给出关于此类错误的明确错误消息(即依赖项rpcbind加载失败),这将使调试变得更加容易:-(