NASが起動するまで待機してマウントするのが効率的です

NASが起動するまで待機してマウントするのが効率的です

問題: サーバーの起動は 3 分、Raspberry Pi の起動は 30 秒です。停電後、RPi の起動は速くなり、NAS ディスクがマウントされません。

この特定の RPi には、記録するためにディスクが必要です。したがって、(外部) ディスクがマウントされていないと、RPi は役に立ちません。私は RPi autostart.sh を使用して次の操作を実行していました。

mount -t nfs 192.168.1.5:/Public/Video/TV /storage/nas -o nolock;

この問題に気づいたとき、私は RPi の autostart.sh に NAS をマウントするループを作成しました。通常の操作中 (マウントが達成されると)、この問題は発生しなくなります。どちらか一方だけを再起動すれば、RPi マウントは正常に動作するはずです (そう思います)。

これは良い解決策でしょうか (RPi の起動時にのみ実行されます)、また、もっと良い方法やよりエレガントな方法で実行できるでしょうか?

until mountpoint -q /storage/nas || mount -t nfs 192.168.1.5:/Public/Video/TV /storage/nas -o nolock; do sleep 30; done

すでにマウントされている場合はマウントを試行せず、そうでない場合はマウントします。さらに、マウントされるまで再試行を待機します。RPi が起動する (マウントを待機しない) ことを除いて、意図したとおりに動作するようですが、この RPi (実際には Kodi) は NAS がマウントされるまでフリーズします。

ここで追加できると思われる唯一のことは、スリープ前に WOL を NAS に送信することです。

説明: これは OPENelec RPi インストールであり、fstab は使用されていませんが、上記の方法が使用されます。

答え1

追加してみてください背景nfs のマウント オプション (ある場合)。男5NFS:

bg オプションが指定されている場合、タイムアウトまたは失敗により、mount(8) コマンドは子プロセスを起動し、エクスポートのマウントを試行し続けます。親プロセスは直ちにゼロの終了コードで戻ります。これは「バックグラウンド」マウントと呼ばれます。

答え2

起動時にドライブをマウントするのに、本当に fstab ではなくシェル スクリプトを使用していますか?

/etc/fstabを読んでください(コマンドを実行してください)男のfstab)、特に _netdev オプションに注目すると、次のようになります。

10.10.10.10:/srv/share /mnt/mymnt   nfs4    defaults,noexec,nosuid,_netdev,auto     0       0

免責事項: 最初に fstab について読まずに上記をコピーして貼り付けないでください。

PS: OS によっては、nobootwait もオプションとして検討する価値があるかもしれません。

PSPS nfs(5)のマウントオプションも参照してください

関連情報