Ubuntu 20.04。systemd
リモートNFSパスをマウントするマウントファイルがあります。マウントされたファイルは次のとおりです。
[Unit]
Description=/userdata
Wants=network-online.target
After=network-online.target
[Mount]
What=10.20.30.40:/data/users
Where=/userdata
Type=nfs
Options=nofail,rw,soft,intr,actimeo=60
[Install]
WantedBy=multi-user.target
ランダムに再起動すると、パスはマウントされません。有効になっています。手動で起動すると正常に動作し、/userdata/
ディレクトリがインストールされます。
マウントされたファイルの状態を確認すると、「ネットワークに接続できません」というエラーが発生します。
$ sudo systemctl status userdata.mount
● userdata.mount - /userdata
Loaded: loaded (/lib/systemd/system/userdata.mount; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2021-06-07 09:56:27 EDT; 6h ago
Where: /userdata
What: 10.20.30.40:/data/users
Jun 07 09:56:27 hostname mount[474]: mount.nfs: Network is unreachable
Jun 07 09:56:27 hostname systemd[1]: userdata.mount: Mount process exited, code=exited, status=32/n/a
Jun 07 09:56:27 hostname systemd[1]: userdata.mount: Failed with result 'exit-code'.
Jun 07 09:56:27 hostname systemd[1]: Failed to mount /userdata.
Warning: journal has been rotated since unit was started, output may be incomplete.
ウェブ検索で判断すると、これは一般的な質問です。しかし、systemd
最も一般的な解決策は、「systemd
マウントファイルを作成する」ことです。この場合はすでに使用しているのでsystemd
役に立ちません。
私が一つ見つけたアーチスウィキコメントでは、この問題を解決できることを提案しましたsystemd-networkd-wait-online.service
。ただし、このコマンドは、$ sudo systemctl status systemd-networkd-wait-online.service
私のシステムでユニットファイルが有効になっていることを示しています。
だから私は何をすべきかわかりません。起動時にこのパスを一貫してマウントするにはどうすればよいですか?
編集する
Wants=network-online.target
と交換してみましたが、Requires=network-online.target
問題が解決していないか、他の方法で影響を与えませんでした。
答え1
Wants=network-online.target
私はあなたの問題ではないと思いますRequires=network-online.target
。
Wants=
開始するように求められた場合はnetwork-online.target
無視できますnetwork-online.target
。しかし、NFSの場合、これは明らかに不可欠です。Requires=
サービスを正常に起動して実行するために必要です。起動中にネットワークが少し不安定なようです。
バラより希望=と必要=systemdで