使用nfs作為根檔案系統啟動遇到的問題
在通過 flash 上的根檔案系統啟動後,手工 mount NFS是沒有問題的,但是直接使用NFS作為根檔案系統啟動時會遇到問題,初次的問題是提示伺服器無響應,即 server ****** not responding , still trying
根據網上的很多辦法都沒法解決,有些說是網絡卡丟包嚴重,但我嘗試更改後仍然沒有解決問題。
後通過打印出的資訊分析,我設定的 bootargs 沒有問題,那無響應可能是網路不通,但我 nfsroot 裡的 ip 都設定好了啊,怎麼會不通呢?
我主機的 ip 是固定的,肯定不會出問題,那麼唯一能出問題的就是開發板這裡了,可是開發板的 ip 我也設定了啊,nfsroot 裡的開發板 ip 設定了,ipaddr serverip都設定對了(這裡說明一下,經我測試,發現 ipaddr 和 serverip 的設定在這裡不影響系統的啟動,即使你隨便設定一個)。難道是核心啟動後開發板 ip被改了? 後經查詢得知/etc/init.d/rcS
Warning: unable to open an initial console.
Failed to execute /linuxrc. Attempting defaults...
難道沒有console,檢視發現有,那是怎麼回事?後想到難道是沒有掛載上我製作的這個檔案系統? 根據這個想法查詢解決辦法,還真找到了,我們主機裡有個 /etc/exports 檔案,這個檔案裡記錄了可以被掛載的目錄,我們應該把我們製作的檔案系統的目錄在這裡宣告一下,如下:
/work/nfs_root *(rw,sync,no_root_squash)
就把上面這一行加到原來的檔案裡就可以了。
修改好檔案後,重啟一下NFS服務,sudo /etc/init.d/nfs-kernel-server restart
至此,問題全部解決,重啟開發板,正常啟動起來了。