我是以root身份登录Ubuntu的:
在Ubuntu上执行 #apt-get install nfs-kernel-server //安装NFS服务
在Ubuntu上执行 #mkdir /root/nfs //创建一个共享文件夹
在Ubuntu上执行 #vi /etc/exports
在exports文件中加入 /root/nfs *(rw,sync,no_root_squash,no_subtree_check)
/root/nfs :刚才创建的共享文件夹
*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_subtree_check:不检查父目录的权限。
no_root_squash:root用户具有对根目录的完全管理访问权限。
在Ubuntu上执行 #/etc/init.d/rpcbind restart 重启rpcbind 服务
在Ubuntu上执行 #/etc/init.d/nfs-kernel-server restart 重启nfs服务
注意此时可能会出现:Not starting: portmapper is not running //重启Ubuntu系统后就好了;
在Ubuntu上执行 #showmount -e //显示出共享出来的目录说明搭建成功
在ARM的Linux系统执行 #mount -t nfs -o nolock 10.10.206.221:/root/nfs /mnt
10.10.206.221 //Ubuntu的地址
此时就可以在ARM的Linux系统的/mnt目录下看到Ubuntu的/root/nfs目录下的内容!
在uboot-2010.03中挂载nfs启动内核:执行命令
CXD_Boot # nfs 0x50008000 10.10.206.15:/root/nfs/zImage
0x50008000 :下载到0x50008000内存地址处;
10.10.206.15 :nfs服务器的IP地址(uboot的IP地址我已经在环境变量中设置好了)
/root/nfs/zImage :要下载文件的路径和文件名
当通过NFS复制较大的文件是会出现:nfs:server is not responding, still trying
原因:
具有较高的传送速率的NFS主机网卡和较低速率的目标机网卡之间不匹配,要解决此问题需要在挂载文件系统时添加额外的参数。
解决办法:
1
当目标机启动后已经进入linux系统的情况下,使用以下mount命令:
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024
10.10.206.15:/root/nfs /mnt
(即添加了intr rsize=1024 wsize=1024 参数,参数的具体意义见下面注释)