1. 程式人生 > >JZ2440:通過nfs掛載檔案系統不成功

JZ2440:通過nfs掛載檔案系統不成功

最近在看韋東山的視訊,一步一步跟著做,發現不錯。晚上做到掛載檔案系統這一步時,出錯了,提示:nfs: server 10.168.1.1 not responding, still trying

原本啟動引數為: set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0

按照視訊中的講解,將啟動選項修改為:
set bootargs noinitrd root=/dev/nfs nfsroot=10.168.1.1:/work/nfs_root/tmp/fs_mini_mdev ip=10.168.1.112:10.168.1.1:10.168.1.1:255.255.255.0::eth0:off  init=/linuxrc console=ttySAC0
 搜了網上文章,有說是具有較高的傳送速率的NFS主機網絡卡和較低速率的目標機網絡卡之間不匹配,要解決此問題需要在掛載檔案系統時新增額外的引數。



解決辦法:

1   當目標機啟動後已經進入linux系統的情況下,使用以下mount命令:
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 59.70.245.216:/home/lizhao/rootfs  /mnt/nfs
(即添加了intr rsize=1024 wsize=1024 引數,引數的具體意義見下面註釋)
2   當目標機處在引導階段向核心傳遞命令列引數時,使用以下引數:
console=ttySAC0 root=/dev/nfs nfsroot=59.70.245.216:/home/lizhao/rootfs,
 flags=intr,rsize=1024,wsize=1024
ip=59.70.245.222:59.70.245.216:59.70.245.216:255.255.255.0:leao:eth0:off           

引數解釋:
intr -- 當伺服器宕機或者無法到達時,允許中斷NFS請求 nolock--禁用檔案鎖。 rsize = 8192 和 wsize=8192  -- 通過設定大的同時傳輸的資料塊大小(bytes),以提高NFS讀寫的速度。改變這些值時要當心,一些舊的linux核心和網絡卡在大的塊大小不能正常工作。

按照這個修改後為:set bootargs noinitrd root=/dev/nfs nfsroot=10.168.1.1:/work/nfs_root/tmp/fs_mini_mdev,flags=nolock ip=10.168.1.112:10.168.1.1:10.168.1.1:255.255.255.0::eth0:off  init=/linuxrc console=ttySAC0

任然不可以。

最後,發現在PC中的檔案系統裡,發下了對嵌入式板子IP的設定,這個指令碼修改了IP,改到另一個網段了,所以才不通了。

檔案(/work/nfs_root/tmp/fs_mini_mdev/etc/init.d/rcS):

#!/bin/sh

ifconfig eth0 192.168.1.17


mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

修改為:

#!/bin/sh
#ifconfig eth0 192.168.1.17
ifconfig eth0 10.168.1.112



mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s