ネットワークへの接続に成功した後の Linux NFS マウント

ネットワークへの接続に成功した後の Linux NFS マウント

非常に軽量な Linux を実行する小型の組み込み (MIPS) デバイスがあります。

NFS共有をマウントすることができます(手動でマウント指示)。

しかし、私はそれを自動的にマウントしたいので、スタバファイル。

問題は、fstab が処理される時点でデバイスが利用可能な接続を持っていないことです。

mount: mounting 10.1.1.1:/srv/fs on /nfs failed: Input/output error

その後、システムは起動を続けます(WiFiモジュールを初期化し、APに接続し、IPアドレスを照会します)。udhcpc

udhcpc が IP アドレスを正常に取得したら、次のコマンドを実行できます。

mount -a

/nfs は正常にマウントされます。

fstab に待機して継続的に再試行するように指示するにはどうすればよいですか?

これは短縮された Linux であることに注意してください。systemd または ifup スクリプトは利用できません。

もちろん、成功するまで「mount -a」を継続的に実行するスクリプトを起動時に実行することもできますが、これは強引な方法であり、より洗練された解決策があればそれを探しています。

答え1

通常の解決策は、DHCPクライアントネットワークの設定が完了したら通知します。ほとんどのDHCPクライアントには、この目的のために「フック」シェルスクリプトを起動する機能があり、udhcpcも同様です。ドキュメンテーション

イベントが発生すると、udhcpcはアクションスクリプトを呼び出します。デフォルトのスクリプトはスクリプトただし、これはコマンド ライン引数で変更できます。スクリプトに指定できる引数は次の 3 つです: [...]

バウンド: この引数は、udhcpc がアンバウンド状態からバウンド状態に移行するときに使用されます。すべてのパラメータは環境変数で設定されます。スクリプトはインターフェイスを構成し、その他の関連パラメータ (デフォルト ゲートウェイ、DNS サーバーなど) を設定する必要があります。

つまり、シェルスクリプトを正しい場所に配置し (必要に応じて オプションを使用)、パラメータを に設定して--script呼び出されるたびにマウントを開始するようにすることができます。$1bound

#!/bin/sh
if [ "$1" = bound ]; then
    mount -a
fi

関連情報