systemd は Ubuntu 16.04 の NFS の _netdev オプションを無視するようです

systemd は Ubuntu 16.04 の NFS の _netdev オプションを無視するようです

NFS 用に次のマウントがあります/etc/fstab:

192.168.1.6:/var/share /media/share nfs hard,intr,retrans=10,timeo=10000000,_netdev 0 0

再起動するとシステムがハングします。証明されているように、マウントの問題であることが判明しましたsystemd-analyze blame

ステータス:

● media-share.mount - /media/share
   Loaded: loaded (/etc/fstab; bad; vendor preset: enabled)
   Active: failed (Result: timeout) since Tue 2016-04-26 21:13:43 EDT; 6min ago
    Where: /media/share
     What: 192.168.1.6:/var/share
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
  Process: 1071 ExecMount=/bin/mount 192.168.1.6:/var/share /media/share -t nfs -o hard,intr,retrans=10,timeo=10000000,_netdev (code=kille

Apr 26 21:12:12 j-Lemur systemd[1]: Mounting /media/share...
Apr 26 21:13:42 j-Lemur systemd[1]: media-share.mount: Mounting timed out. Stopping.
Apr 26 21:13:42 j-Lemur systemd[1]: Mounted /media/share.
Apr 26 21:13:43 j-Lemur systemd[1]: media-share.mount: Unit entered failed state.

これはバグのようですか?

ログインして実行するとsystemctl restart media-share.mount修正されます(ネットワークが利用可能になったため)。

答え1

私も同じ問題を抱えていました。

UbuntuコミュニティヘルプWikiにいくつかの情報がありますこここれは Ubuntu 16 による意図的な動作であることを示唆しています。

NFSv3 (タイプ nfs) では、_netdev オプションは、ネットワークが利用可能になるまでマウントを待機するようにシステムに指示します。タイプ nfs4 ではこのオプションは無視されますが、後でスクリプトで mount -O _netdev とともに使用できます。現在、Ubuntu Server には、ネットワークが起動した後に /etc/fstab の nfs4 エントリを自動マウントするために必要なスクリプトは付属していません。

私の解決策は、「_netdev」の前に「vers=3」を追加して、接続で NFS v3 を使用するように強制することでした。明らかに、NFS v4 に依存している場合、これは役に立たない可能性があります。

その他の選択肢としては、オートFSまたはシェルスクリプト。

関連情報