Linux

NFS 不再掛載:rpc-statd 無法啟動

  • September 16, 2021

每當我嘗試啟動 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

我試圖這樣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

我試圖重新安裝 nfs-utils:

$ pacman -R nfs-utils
$ rm -r /var/lib/nfs
$ pacman -S nfs-utils 

然後它使用 root 使用者的權限重新創建目錄。我什至不確定這個錯誤是否與rpc.statd不啟動有關。

我也嘗試rpc.statd -F --no-notify在我的 shell 中執行,但它只是以程式碼 1 退出。沒有錯誤,沒有任何東西。手冊頁中沒有記錄詳細或調試標誌。

我也嘗試清空我的/etc/exports,我的系統是最新的 ( pacman -Syu)。我沒有改變任何東西,它只是在幾個小時前停止工作。

請注意,使用mount -o nolock /data有效;所以其餘的 NFS/rpc 守護程序似乎沒問題。

rpcbind systemd 單元文件似乎失去了:

$ find /usr/lib/systemd -name 'rpcbind*'
# no output

重新安裝這個解決了這個問題:

$ 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

不確定這些文件是如何失去的;也許是FS腐敗問題?

奇怪的是 nfsd 仍在執行,但 statd 沒有。重新啟動後,nfsd 也沒有工作(因為它需要rpcbind)。幾乎就像這些文件在系統執行時消失了。

不幸的是systemd,沒有給出關於這類錯誤的明確錯誤消息(即rpcbind無法載入依賴項),這將使調試更容易:-(

同樣的問題,rpc-stad自上次更新以來失敗(我所有的電腦在更新後都有問題)。

為了解決我剛剛啟用並啟動 rpcbind 的問題:

sudo  systemctl enable   rpcbind.service  # for the next reboot
sudo  systemctl start    rpcbind.service   
sudo  systemctl restart  rpcbind.service

引用自:https://unix.stackexchange.com/questions/184338