挂载NFS出现的各种问题

时间 : 14-12-17 栏目 : 技术笔记, 根目录 作者 : eekuang 评论 : 0 点击 : 8,586 次

最近在折腾海思Hi3515开发板,准备毕业设计的东西。接触到NFS,问题很多。经过不懈努力,终于挂载成功。写下我遇到的问题,希望能给后来者一些启示。

首先说下我的软硬件配置

电脑用的是vmware虚拟机和virtualbox,对应系统为red hat enterprise linux ws release3 ,linux内核2.6

嵌入式开发板为海思多媒体开发板Hi3515,文件系统为busybox1.1.2,linux内核2.6.24

嵌入式主板直接通过网线连接到电脑,主板IP:192.168.1.178,虚拟机IP:192.168.1.192,掩码255.255.255.0,网关DNS什么的随意设置。

 

开发板提供商提供的为red hat enterprise linux ws release3系统,已安装好nfs和portmap

问题1:嵌入式板加载nfs模块出错

执行命令加载NFS驱动:modprobe nfs,出现如下的信息:

~ $:modprobe nfs

insmod: cannot open module`/lib/modules/2.6.24-rt1-hi3515v100/kernel/net/sunrpc/sunrpc.ko': No such file or directory

insmod: cannot open module `/lib/modules/2.6.24-rt1-hi3515v100/kernel/fs/nfs_common/nfs_acl.ko': No such file or directory

insmod: cannot open module`/lib/modules/2.6.24-rt1-hi3515v100/kernel/fs/lockd/lockd.ko': No such file or directory

insmod: cannot open module`/lib/modules/2.6.24-rt1-hi3515v100/kernel/fs/nfs/nfs.ko': No such file or directory

modprobe: failed to load module nfs

解决办法:上述提示无法打开对应模块。这个很简单,文件有缺失,在SDK文件夹Hi3515_SDK_V1.0.4.0.c2\rootfs-FULL_REL\lib\modules\2.6.24-rt1-hi3515v100\kernel下面。拷贝过去即可重新编译下载即可。

 

问题2:嵌入式主板和虚拟机无法通信,互ping不通,提示:host unreachnable

解决办法:嵌入式板不需要再做修改。将VMare的networkAdatpter改为桥接。在电脑的网络和共享中心中,禁用VMnet8,启用VMnet1。这两者的区别,请自行百度。然后,在服务器终端中输入service network restart。再ping,通了。

问题2:permission deny

输入:

$:mount -t nfs -o nolock -o tcp192.168.1.192:/tmp /mnt 后,提示permission denied

 

解决办法:关于这个,我在网上查到了很多种办法具体有以下几种;

①把服务器(即宿主机)防火墙关了。可能是selinux或者其他防火墙软件。嵌入式系统开发不涉及外网,不用防止攻击,所以可以直接关掉。

②exports设置问题。这个我不再详细阐述,百度出来的结果大多数都是这个。

③关掉防火墙之后,我再试,还是出错,错误没变。

后来参考博文

http://cuixijiang.blog.163.com/blog/static/11001013820091158476312/

找到了 pam-panel-icon这个进程,一直在限制访问。输入命令"pkill -9 pam-panel-icon " "pkill -15 pam-panel-icon"。问题解决

④hosts解析问题

当一个连接请求发到服务器时,它会首先尝试将ip与本机的host文件进行匹配,查无匹配项则用ip地址与exports配置进行比对。比对成功,则可以访问。如果你的hosts有该ip的配置,则系统将其转为域名形式。但是如果此时exports的配置对应的是ip而不是域名,那么就会出现认证出错,无访问权限。解决办法是,统一。统一为域名形式或者注释掉hosts中的解析项就行了。

问题4:

 

输入:mount -t nfs -o nolock -o tcp 192.168.1.199:/tmp /mnt,提示:mount: Mounting 192.168.1.199:/tmp on /mnt failed: No such device。查日志,发现发来了连接请求。

后来百度,说可能是嵌入式板不支持该文件系统。瞬间明白了:重启板子后,忘了重新加入nfs模块。真是有够猪头的!输入modprobe nfs。然后再尝试挂载:

mount -t nfs -o nolock -o tcp192.168.1.192:/tmp/mytest/mnt

成功了!

 

写在最后:挂载成功之后,板子提供商技术人员告诉我,可以直接用tftp将文件下载到板子文件系统的/tmp目录下测试程序。瞬间觉得傻逼了。。。NFS没用处了。由于系统使用CRAMFS系统,所以我以为文件都是只读的。但其实,/tmp目录是可读写的,可以通过tftp将程序下载到板子上实时测试。不过,还是在探索NFS的过程中学到了一些东西。感恩!

 

anyShare分享到:

除非注明,文章均为( eekuang )原创,转载请保留链接: http://www.14en.com/?p=80

挂载NFS出现的各种问题:等您坐沙发呢!

发表评论


-----===== 博主信息 =====-----
腾讯后台开发工程师
介绍:目前从事容器云相关开发工作,主要使用C++/go语言。


0