2024 Sep. 19.
環境:Xubuntu 24.04 LTS
マウントオプションに"_netdev,x-systemd.automount"を記述する。
"_netdev"だけではマウントに失敗する。
"x-systemd.automount"はアクセスしたときにだけリモートファイルシステムをマウントする。
/etc/fstab
192.168.1.10:/SERVER/DIR /CLIENT/DIR nfs rw,noatime,hard,_netdev,x-systemd.automount 0 0
システム起動直後に"$ mount"でマウント状況を見てもマウントされていないが、"$ ls /CLIENT/DIR"とすると正常に出力され、それ以後は"$ mount"の出力にも表示される。
Chat GPTより
1. _netdevオプションの役割
_netdevオプションは、ネットワークに依存するファイルシステムであることを指定し、システム起動時にネットワークが使用可能になるまでマウントを遅延させる効果があります。これにより、NFSなどのネットワークファイルシステムが、ネットワークが利用可能でないタイミングでマウントされるのを防ぎます。
ただし、_netdevだけでは、システム起動時の依存関係やタイミングの問題が解決されない場合があり、特に起動時の短時間でネットワークが利用可能にならない環境ではマウントに失敗することがあります。この問題は、ネットワークの起動やシステム全体のリソースの初期化にかかる時間に依存します。
2. x-systemd.automountオプションの役割
x-systemd.automountオプションは、systemdによる自動マウントを有効にし、初めてそのファイルシステムにアクセスしたときにマウントを試みる仕組みです。このオプションを使うと、起動時にマウントに失敗しても、ユーザーがファイルシステムにアクセスした時点で再度マウントを試行するため、ネットワークの起動遅延による失敗を回避できます。
なぜ_netdevだけでは失敗するのか?
_netdevだけの場合、起動時のネットワークの状態やサービスの依存関係により、システムがまだネットワーク接続を確立していない段階でマウントが試行される可能性があります。もしその時点でネットワークが完全に起動していなければ、NFSマウントは失敗します。
x-systemd.automountが追加されると、マウントが初回アクセス時まで遅延されるため、ネットワークが確実に利用可能になった後にマウントが実行されるため、成功する可能性が高まります。
結論
_netdevだけでは起動時のタイミングに依存して失敗する場合がある。
x-systemd.automountを追加することで、初回アクセス時にマウントが実行され、タイミングの問題を回避できる。
このため、x-systemd.automountを追加した構成で成功し、_netdevだけでは失敗していたのだと考えられます。