JZ2440:通过nfs挂载文件系统不成功

时间:2022-02-20 09:03:48

最近在看韦东山的视频,一步一步跟着做,发现不错。晚上做到挂载文件系统这一步时,出错了,提示: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=1024ip=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