Raspberry Pi 4で起動時にNFS共有をマウントしようとしています。動作しません。 systemdはネットワークに接続できないと文句を言います。各共有を手動でマウントすると、期待どおりに機能します。私は今別のことを試しました。/etc/fstab
次のようにボリュームをマウントするためにsystemdサービスを使用しないでください。
[Unit]
Description=Mount NFS share Music
After=network-online.target
Wants=network-online.target
[Mount]
What=10.5.0.34:/music
Where=home/pi/media_storage/music
Options=auto
Type=nfs
TimeoutSec=60
[Install]
WantedBy=remote-fs.target
両方のサービスが有効になってsystemd-networkd.service
いますsystemd-networkd-wait-online.service
。journalctl
出力は次のとおりです。
Nov 30 16:30:46 NextcloudPi dhcpcd[383]: eth0: IAID 32:23:48:46
Nov 30 16:30:46 NextcloudPi dhcpcd[383]: eth0: adding address fe80::9819:5d1a:3c86:8b41
Nov 30 16:30:46 NextcloudPi dhcpcd[383]: eth0: rebinding lease of 10.5.0.43
Nov 30 16:30:46 NextcloudPi dhcpcd[383]: eth0: probing address 10.5.0.43/24
Nov 30 16:30:46 NextcloudPi dhcpcd[383]: eth0: soliciting an IPv6 router
Nov 30 16:30:47 NextcloudPi systemd-networkd[152]: eth0: Gained IPv6LL
Nov 30 16:30:47 NextcloudPi systemd-timesyncd[281]: Network configuration changed, trying to establish connection.
Nov 30 16:30:47 NextcloudPi systemd-networkd-wait-online[183]: ignoring: lo
Nov 30 16:30:47 NextcloudPi systemd[1]: Started Wait for Network to be Configured.
Nov 30 16:30:47 NextcloudPi systemd[1]: Reached target Network is Online.
Nov 30 16:30:48 NextcloudPi systemd[1]: Mounting Mount NFS share Music...
Nov 30 16:30:48 NextcloudPi systemd[1]: Started /etc/rc.local Compatibility.
Nov 30 16:30:48 NextcloudPi mount[498]: mount.nfs: Network is unreachable
Nov 30 16:30:48 NextcloudPi systemd[1]: mnt-music.mount: Mount process exited, code=exited, status=32/n/a
Nov 30 16:30:48 NextcloudPi systemd[1]: mnt-music.mount: Failed with result 'exit-code'.
Nov 30 16:30:48 NextcloudPi systemd[1]: Failed to mount Mount NFS share Music.
Nov 30 16:30:48 NextcloudPi systemd[1]: Reached target Remote File Systems.
インターフェイスが設定され、journalctl
有効なIPアドレスがあります。しかし、なぜmount.nfs
あえて文句を言うのですか?
ベストアンサー1
故障したようだから、network-online.target
何をしても違って信頼できるソリューションを開発します。
「ping_barrier」というワンタイムシステムスクリプトを作成しました。成功するまでNFSサーバーをpingします。これWantedBy=nfs-client.target
により、NFSはサービスが完了するのを待ちます。
[Unit]
Description=Ping until Success
[Service]
Type=oneshot
ExecStart=/opt/ping_barrier.sh
StandardOutput=journal
[Install]
WantedBy=nfs-client.target
以下は、pingコマンドが成功するまで繰り返されるpingスクリプトです。
#!/bin/bash
printf "%s" "waiting for FileServer ..."
while ! ping -c 1 -n -w 1 10.5.0.34 &> /dev/null
do
printf "%c" "."
done
printf "\n%s\n" "Server is back online"