環境:ubuntu14.04(非虛擬機),OK6410
環境搭建:
(1)
#sudo apt-get install nfs-kernel-server
如果已經是最新版本了,無需安裝
(2)
建立nfs文件夾,在ubuntu命令行中輸入,
$ mkdir /nfs
$ chmod 777 /nfs
$ chmod 777 /nfs/*
(3)
打開/etc/exports文件,在末尾加入:
/nfs *(rw,sync,no_root_squash)
注:nfs允許掛載的目錄及權限,在文件/etc/exports中進行定義,各字段含義如下:
/nfs:要共享的目錄
* :允許所有的網段訪問
rw :讀寫權限
sync:資料同步寫入內在和硬盤
no_root_squash:nfs客戶端共享目錄使用者權限
(4)
重啟服務:
#sudo /etc/init.d/nfs-kernel-server restart <---重啟nfs服務
#showmount -e <---顯示共享出的目錄
注意:若重啟nfs服務時出現如下錯誤
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
WARNING: /etc/modprobe.conf line 1: ignoring bad line starting with 'Cannot'
WARNING: Could not open 'kernel/net/sunrpc/sunrpc.ko': No such file or directory
WARNING: Could not open 'kernel/fs/lockd/lockd.ko': No such file or directory
WARNING: Could not open 'kernel/fs/nfs_common/nfs_acl.ko': No such file or directory
WARNING: Could not open 'kernel/net/sunrpc/auth_gss/auth_rpcgss.ko': No such file or directory
FATAL: Could not open 'kernel/fs/nfsd/nfsd.ko': No such file or directory
* Not starting NFS kernel daemon: no support in current kernel.
采用如下語句改正錯誤:
sudo ln -s /lib/modules/3.13.0-45-generic/kernel/ /
結果如下:
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
WARNING: /etc/modprobe.conf line 1: ignoring bad line starting with 'Cannot'
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]
nfs配置成功
本機測試
(1)本機測試
現在可以在本機上試一下:
#sudo mount -t nfs localhost:/home/kevin /mnt
注:localhost為本機linux的IP地址
這樣就把共享目錄掛到了/mnt目錄,取消掛載用:
#sudo umount /mnt
掛在根文件系統
(1)
將制作好的文件系統放入 /nfs 中,文件系統的制作方法見http://www.cnblogs.com/apolloenterprise/p/4351408.html
(2)
kernel中要設置啟動nfs
$ make menuconfig ARCH=arm
General Setup - 取消 Initial RAM filesystem and ...
File System 選中 Network FileSystem
選中 Root file System on NfS
$ make uImage ARCH=arm CROSS_COMPILE=arm-linux-
編譯完成
(3)
啟動參數設置
開發板上電,進入uboot命令行:
$ setenv bootargs " console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.200:/nfs ip=192.168.1.100"
注意:192.168.1.200 PC IP
192.168.1.100 開發板IP
保存:
$ saveenv
(4)tftp 下載內核后,bootm啟動內核,此時文件系統會被調用
