Linux嵌入式学习-mount命令+nfs挂载失败原因【转】
NFS 挂载失败原因[待搜集]
1.挂载时若出现mount.nfs: Input/output error
解决:在客户端也需启动portmap服务 service portmap status[查看状态];service portmap start[启动]
2.在用nfs共享大文件或者挂载根文件系统时候出现下面的问题:
nfs: server 192.168.14.223 not responding
nfs: server 192.168.14.223 not responding
nfs: server 192.168.14.223 OK
但是共享小文件还是可以的。
问题的原因分析:
1、NFS 的默认传输协议是 UDP,而PC机与嵌入式系统通过UPD交互时就会出现严重的网卡丢包现象;
2、server机和目标机网卡传输速率冲突,使得目标机需要大量时间复制大量数据包,其实如果目标机的网卡速率够大,则不用分那么多包,也不会冲突。
问题的解决方案:
方法一:在客户端改用TCP协议,使用下面的命令,在mount命令中加上参数tcp
#mount -o tcp ,nolock 192.168.14.223:/nfs_root /mnt
也可这样干:
跟踪了fs/nfs/nfsroot.c的代码,发现在nfs作为根文件系统时,参数可以直接写在“nfsroot=”后面,每个参数用逗号隔开,如:
nfsroot=192.168.10.1:/rootfs,proto=tcp,nfsvers=3,nolock
这样就可以指定nfs使用tcp协议
方法二:指定传输速率(限定传输时一次读写的数据大小)
#mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.14.223:/nfs_root /mnt
http://blog.csdn.net/a746742897/article/details/52710703
linux内核下载地址: https://www.kernel.org/pub/linux/kernel