1. 程式人生 > >NFS方式掛載rootfs的設定方法

NFS方式掛載rootfs的設定方法

以下內容源於朱有鵬嵌入式課程的學習,如有侵權,請告知刪除。

1、什麼是nfs?

(1)nfs(網路檔案系統)是一種網路通訊協議,由伺服器和客戶端構成。

(2)nfs的作用

  • 利用nfs協議可以做出很多直接性應用,但這裡使用nfs主要是做rootfs掛載。
  • 開發板中執行kernel作nfs客戶端(在配置時要配置成支援nfs客戶端)。
  • 虛擬機器ubuntu中搭建nfs伺服器(指定的共享目錄由bootargs這個環境變數中的nfsroot路徑指定)。
  • 在虛擬機器ubuntu的nfs伺服器的NFS共享目錄下,匯入資料夾形式的rootfs目錄,在客戶端中掛載這個資料夾形式的rootfs,進而啟動系統。

2、在虛擬機器上搭建nfs伺服器

(1)搭建方法見環境搭建文件

(2)掛載的理解

  • 被掛載的目錄,即要訪問的目錄,比如/root/rootfs;
  • 掛載到某目錄(掛載點),該目錄就是一個小視窗,通過該視窗可以訪問被掛載的目錄的內容。
  • 比如掛載到/opt,則可以通過opt訪問/root/roots的內容。
  • 用完之後一般要解除安裝:umount  /opt

3、配置核心以支援nfs作為rootfs

(1)設定nfs啟動方式的bootargs

set bootargs root=/dev/nfs nfsroot=192.168.1.141:/root/rootfs/ ip=192.168.1.20:192.168.1.141:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200 
  • 此時如果直接掛載執行,會提示錯誤如下,導致重新啟動,因為沒有配置核心以支援NFS啟動方式。


(2)在核心配置階段,即menuconfig中配置支援nfs啟動方式


(3)在uboot中設定環境變數
  • set bootcmd ‘tftp 30008000 zImage;bootm 30008000’;修改完後記得save。

(4)重新啟動uboot,就會到tftp伺服器中下載核心,然後再到nfs伺服器中下載rootfs。

  • 如果rootfs是可用的,那麼就會啟動成功;
  • 如果rootfs是不可用的,那麼會提示下面的錯誤。


4、總結

(1)nfs方式啟動相當於開發板上的核心遠端掛載主機上的rootfs(根檔案系統、核心在主機上,而不是像以前那樣先燒錄在開發板上)

(2)nfs方式啟動不用製作rootfs映象;

(3)nfs方式不適合真正的產品,一般作為產品開發階段除錯使用。