第一、二期銜接——2.5 完善最小根文件系統—添加NFS網絡文件系統

添加NFS網絡文件系統

  • 硬件平臺:韋東山嵌入式Linxu開發板(S3C2440.v3)
  • 軟件平臺:運行於VMware Workstation 12 Player下UbuntuLTS16.04_x64 系統
  • 參考資料:《嵌入式Linux應用開發手冊》
  • 開發環境:Linux 2.6.22.6 內核、arm-linux-gcc-3.4.5-glibc-2.3.6工具鏈


一、前言

爲了避免每次修改根文件系統都要重新燒錄,所以引入NFS網絡文件系統進行改進。

二、前期準備——開發版與電腦互ping

目的:開發板與電腦通過網線連接,設置開發版的ip地址與電腦的ip地址處於同一網段

1、查看服務器的ip

在兩者通過網線連接後,網絡適配器會彈出下面紅色的網卡驅動如果沒有,需要檢查電腦網卡是否被禁用,或者網卡口硬件、網線是否有問題
電腦命令行輸入ipconfig查看ip地址192.168.1.100
在這裏插入圖片描述
在這裏插入圖片描述

2、設置開發板的ip地址

進入根文件系統輸入ifconfig eth0 192.168.1.1,後輸入ifconfig查看是否修改成功。
在這裏插入圖片描述

3、互ping

輸入ping 192.168.1.100,此時的地址爲服務器地址。
在這裏插入圖片描述

三、啓動後手工掛接NFS(麻煩)

需要滿足兩個條件:

  1. 服務器“允許”目錄被掛接
  2. 開發板去掛接

那麼下面我們就來實現這兩個條件。

1、(虛擬機)服務器“允許”目錄被掛接

需要繼續在虛擬機,完善我們的根文件系統。

  1. /first_fs/etc目錄下新建exports文件
    執行sudo vi /etc/exports
    輸入/work/nfs_root/first_fs *(rw,sync,no_root_squash)
    在這裏插入圖片描述
  2. 重啓NFS服務
    輸入sudo /etc/init.d/nfs-kernel-server restart
    在這裏插入圖片描述
  3. 實驗是否成功
    執行sudo mount -t nfs 192.168.1.2:/work/nfs_root/first_fs /mnt

這句話的作用是:把 first_fs 文件掛在到本機的/mnt 目錄下,
注意:此時的IP地址爲虛擬機的IP地址。
如下圖,你沒有錯誤信息就是可以掛載,即配置成功。

在這裏插入圖片描述
如果此時進入程序,出不來,可以按ctrl+C跳出。

2、開發板去掛接

開發版的根文件系統下操作。

  1. 根目錄下新建/mnt目錄,執行mkdir /mnt
  2. 執行mount -t nfs -o nolock 192.168.1.2:/work/nfs_root/first_fs /mnt
    在這裏插入圖片描述

3、結果

如果此時,你在虛擬機上的/work/nfs_root/first_fs目錄下創建文件,在開發版/mnt目錄下會立刻顯現出來。
在這裏插入圖片描述

四、啓動即使用NFS(方便)

實驗發現,如果當開發版或者虛擬機關閉時,如果二者需要重新使用NFS,則
虛擬機需要執行sudo mount -t nfs 192.168.1.2:/work/nfs_root/first_fs /mnt
開發版根文件系統需要執行mount -t nfs -o nolock 192.168.1.2:/work/nfs_root/first_fs /mnt
很麻煩,所以可以修改開發板上的參數,使得開發版開機完畢後就可以直接使用NFS網絡系統與虛擬機進行通信。

1、設置開發板的參數

在這裏插入圖片描述
完整指令如下:

set bootargs noiniritrd root=/dev/nfs nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>] ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> console=ttySAC0

如果想看源碼可以到linux-2.6.22.6\linux-2.6.22.6\Documentation\nfsroot.txt

nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]參數說明如下:

  • [<server-ip>:]服務器ip192.168.1.2
  • <root-dir>服務器文件目錄/work/nfs_root/first_fs
  • [,<nfs-options>]標準NFS選項,可省略

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>參數說明如下:

  • <client-ip>開發板ip192.168.1.1
  • <gw-ip>網關192.168.1.5
  • :<netmask>子網掩碼255.255.255.0
  • <hostname>名字,可不填
  • <device>開發板上的網卡名字eth0
  • <autoconf>自動配置選項設爲off

最終指令爲:

set bootargs noiniritrd root=/dev/nfs nfsroot=192.168.1.2://work/nfs_root/first_fs ip=192.168.1.1:192.168.1.2:192.168.1.5:255.255.255.0::eth0:off console=ttySAC0

執行save
在這裏插入圖片描述

2、結果

重啓開發板,嘗試直接在虛擬機的/work/nfs_root/first_fs目錄下新建文件,觀察開發板上的根文件系統/mnt目錄下是否出現該文件。
可以看到成功在啓動時就可以直接使用NFS網絡系統。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章