1. 程式人生 > >mini2440 nfs根檔案系統支援

mini2440 nfs根檔案系統支援

核心版本:linux-2.6.32.2        實驗平臺:ubuntu 12.04 + mini2440

nfs檔案系統稱為網路檔案系統,因為檔案系統在宿主機中,這樣在修改檔案系統就非常方便,所以主要用於開發階段使用。

1. 主機安裝nfs服務

$ sudo apt-get install nfs-kernel-server

2. 主機端修改nfs配置檔案
修改/etc/exports檔案,新增如下內容:

#/home/tracy/work/mini2440/nfsroot 192.168.1.*(rw,sync,no_root_squash)
/home/tracy/work/mini2440/nfsroot *(rw,sync,no_root_squash)

原意是想讓192.168.1.*ip地址訪問nfsroot,但是在本地測試時會出現這樣一條資訊:

mount.nfs: access denied by server while mounting 192.168.1.100:/home/tracy/work/mini2440/nfsroot

測試命令如下:

$ sudo mount 192.168.1.100:/home/tracy/work/mini2440/nfsroot /mnt/tmp

一時也沒有找到問題所在,所以改成了所有ip地址都能訪問nfsroot,再次測試時能夠掛載成功。

3. 重啟nfs服務

$ sudo service nfs-kernel-server restart

4. 核心配置
使用nfs服務,肯定需要網路的支援,所以首先需要使網路能夠正常工作,可以參閱前面一篇文章,然後還需要nfs客戶端的支援。

    File systems  --->
[*] Network File Systems  --->
<*>   NFS client support
[*]     Root file system on NFS

5. 在bootloader中設定核心啟動的命令列引數

noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.100:/home/tracy/work/mini2440/nfsroot/rootfs ip=192.168.1.110:192.168.1.100:192.168.1.1:255.255.255.0::eth0:off

其中:

root表示使用/dev/nfs這個裝置作為根檔案系統。
rw表示可讀可寫的。
nfsroot表示伺服器中rootfs所在路徑,注意需要跟上伺服器的ip地址。
192.168.1.110是板子啟動之後的ip地址。
192.168.1.100是nfs伺服器的ip地址。
192.168.1.1是板子閘道器地址。
255.255.255.0是板子子網掩碼。
eth0表示板子上的網路裝置。
off表示關閉動態獲取ip地址。

注意:eh0前面有兩個冒號,那是因為這裡還可以填寫一個板子的主機名,這裡沒有設定,所以為空。

6. 測試結果
將編譯好的核心下載到板子上(不需要下載根檔案系統,根檔案系統在nfs伺服器上),在測試之前還需要將rootfs複製到nfsroot目錄下,給板子連上網線進行測試(使用的是mini2440自帶的交叉網線連線到路由器上的),系統正常啟動。使用nfs檔案系統有什麼好處呢,在開發階段,如果需要修改檔案系統內容,或者要往板子上傳遞檔案,使用nfs檔案系統是非常方便的,只需要在本地nfs伺服器上修改檔案系統就可以了。
注意:通過交叉網線與電腦直連的方式,系統也是同樣能夠啟動的。

7. 使用nfs直接掛載nfs伺服器上的目錄
需要配置核心:

    File systems  --->
[*] Network File Systems  --->
<*>   NFS client support
[*]     NFS client support for NFS version 3
[*]       NFS client support for the NFSv3 ACL protocol extension
[*]     NFS client support for NFS version 4 (EXPERIMENTAL)
[*]       NFS client support for NFSv4.1 (DEVELOPER ONLY)

上面這些都是需要核心支援的nfs協議,而之前的配置是支援nfs根檔案系統。

燒寫核心和根檔案系統,啟動板子,系統啟動之後(首先需要設定板子的ip地址)呼叫如下命令進行掛載:

mount -o nolock -t nfs 192.168.1.100:/home/tracy/work/mini2440/nfsroot /mnt/tmp

注意一定要加上-o nolock,否則會掛在不上。