Linux 連線網路成功後掛載 NFS

Linux 連線網路成功後掛載 NFS

我有一個小型嵌入式 (mips) 設備,它運行非常輕量級的 Linux。

它能夠掛載 NFS 共享(透過手動命令)。

但是我想自動掛載它,所以我在系統表文件。

問題是處理 fstab 時設備沒有可用的連線:

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

然後系統繼續啟動(初始化wifi模組,連接AP,查詢IP位址烏茲別克

udhcpc 成功取得 IP 位址後,我可以執行:

mount -a

/nfs 將成功掛載。

我該如何告訴 fstab 等待並不斷重試?

請注意這是一個截斷的 Linux。沒有可用的 systemd 或 ifup 腳本。

當然,我可以在啟動時運行一個腳本,該腳本不斷運行“mount -a”直到成功,但這是蠻力方式,我正在尋找更複雜的解決方案(如果存在)。

答案1

通常的解決方案是使DHCP 用戶端完成網路配置後通知您。大多數 DHCP 用戶端都能夠為此目的啟動「掛鉤」shell 腳本,udhcpc 也是如此。根據文件,

當事件發生時,udhcpc 呼叫操作腳本。預設的腳本是/usr/share/udhcpc/default.script但這可以透過命令列參數進行更改。該腳本的三個可能的參數是:[...]

邊界:當 udhcpc 從未綁定狀態轉變為綁定狀態時,使用此參數。所有參數都在環境變數中設置,腳本應配置接口,並設置任何其他相關參數(預設網關、dns 伺服器等)。

這表示您只需將 shellscript 放置在正確的位置(--script如有必要,請使用該選項),並使其在$1參數設為 的情況下呼叫時啟動您的掛載bound

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

相關內容