Linux虚拟机和arm开发板间的NFS服务配置
来源:互联网 发布:斗鱼抢鱼丸软件 编辑:程序博客网 时间:2024/05/21 21:01
很多嵌入式开发环境中,都需要在上位机和开发板之间配置NFS服务来实现两者间的通信和共享。所谓NFS,即是网络文件系统NetworkFileSystem的缩写。NFS最早由Sun公司开发,其最主要的功能就是可以通过网络让不同机器、不同操作系统之间共享文件。NFS一般由两个主要部分:一台服务器和一台或多台客户机。NFS服务允许客户机将远程服务器中共享的目录挂载到本地,用户和程序可以像访问本地文件一样访问远端系统上的文件。
我这几天在实验室几经周折再PC和开发板间搭建了NFS,现将过程总结如下,以便日后再用时方便查询。
所使用的环境和设备:
主机操作系统:Window7 ultimate
虚拟机:VMwareWorkstation 7.1.0 build
虚拟机操作系统:Ubuntu11.10,内核3.0.0
开发板:迈冲科技MC9260,处理器arm9,内核2.6.20
配置虚拟机网络:
要在Ubuntu系统里搭建NFS服务,就要为其分配固定的ip地址,所以此虚拟机要以Bridged方式桥接到网络中,不能使用NAT方式上网。
安装NFS服务器:
在较新版本的linux内核中,都已经包含了NFS客户端程序。在配置NFS只需安装NFS服务,Ubuntu中命令如下:
$sudoapt-get install nfs-kernel-server
这里需要注意的是,通常NFS服务由portmap、nfsd(rpc.nfsd)和rpc.mountd这三个主要服务构成,而且安装结束后Ubuntu会自动启动NFS服务。我开始并未注意到这一点,网上有很多帖子说挂载失败是因为没有启动portmap服务,但反复多次配置、重启甚至重装portmap后没有效果。Ubuntu已经默默地做好了这些事。
配置NFS服务器:
NFS服务器的配置文件为/etc/exports,其格式如下:
共享目录客户端主机(NFS参数)
例如/home/leon/share*(rw,sync)
编辑配置文件后,需重启NFS服务,命令如下:
$sudo/etc/init.d/nfs-kernel-server restart
使用NFS服务:
不出意外,按照上面的配置,NFS服务应该就使用了。可以先用主机自己做测试,例如:
$sudo mount –t nfs 211.87.235.141:/home/leon/share /mnt
其中,211.87.235.141为NFS服务器ip,/home/leon/share为共享目录,/mnt为挂载目录。
问题和解决:
经过上面的配置和测试,在我搭建的环境中,本机和局域网内的其他虚拟机都能挂载共享目录,唯独用开发板挂载时失败:
一番百度、google后,大家对解决方案各执一词,为了解决问题,不免一一试验:关闭系统防火墙、配置和重启portmap服务、修改/etc/exports配置文件和在mount命令上加上各种复杂的参数。期间sudoufw disable这样的命令不知道搞了多少次,无奈开发板就是mount不上。
再重复下这时的情况:我自己的和局域网内其他的虚拟机可以成功挂载NFS的共享目录,NFS服务器的配置应该没有大问题。虚拟机和开发板之间可以相互Ping通,其网络连接没有问题。但用开发板去挂载虚拟机的共享目录就不能成功。很纠结。
再来看一下错误提示:RPC:Timedout。RPC是远程过程调用服务,其主要功能是制定每个NFS功能所对应的端口号,并且将该端口信息传递给客户端,让客户端连接到正确的端口上。Linux中端口映射由portmap负责,于是又照着网上各路高手的指点配置portmap,但仍未能解决问题。再啰嗦一下,其实就像前面已经说过的,Ubuntu已经默默地做好了portmap的工作了。作为一个小白,这种情况下自然是各种纠结。还好,最终在一本《linux系统移植》的书上找到了答案:RPC:Timedout并不是服务器的端口映射没响应,而是它根本没收到RPC包。虽然在前面的配置过程中,已经关闭了Ubuntu的防火墙,但却忽略了一个重要的问题,这里的Ubuntu毕竟只是一个虚拟机,外面主机的防火墙还在尽职尽责地检查着进出物理网卡的数据包。这里起作用的不仅有windows防火墙,为了做各种测试,我的windows防火墙早就已经关了,其他的安全软件例如小红伞、360等都会对RPC包进行拦截。例如,在我的主机上,把小红伞的防火墙关闭后,开发板就可以顺利地挂在NFS服务器上的共享目录了。
- Linux虚拟机和arm开发板间的NFS服务配置
- NFS服务的配置(虚拟机下的Linux,开发板是ARM9 S3C2410)
- NFS服务的配置(虚拟机下的Linux,开发板是ARM9 S3C2410) .
- NFS-连接虚拟机Linux和开发板
- 虚拟机 ARM+LINUX 开发环境的配置
- 嵌入式开发板与虚拟机Linux挂接NFS配置步骤
- arm linux nfs配置
- 虚拟机开发环境搭建(tftp,nfs,samba,arm-linux-gcc)
- 虚拟机linux配置NFS
- linux下tftp、samba、nfs服务的配置和启用
- linux下配置TFTP和NFS服务的方法
- 开发板上linux虚拟机的nfs文件系统
- 配置arm-linux虚拟机开发环境
- arm板和linux系统之间的那些nfs
- linux nfs服务配置
- linux配置nfs服务
- 嵌入式软件开发培训笔记——ARM架构Linux系统下交叉编译环境搭建、NFS、TFTP服务配置及Nandflash的读写
- Ubuntu10.04+mini2440下ARM-linux开发环境搭建(2)----NFS服务器的配置及通过NFS启动linux
- 摄像头保存位图
- Eclipse 快捷键以及颜色设置
- 《代码优化:有效使用内存》读书笔记(二)——优化技巧之消除数据相关性
- sicily 1007
- java程序设计与问题解决(基础篇)-读书笔记-4
- Linux虚拟机和arm开发板间的NFS服务配置
- 从程序员到技术总监,分享10年开发经验
- Ubuntu下设置轮换背景
- C++开发者的VS2010(二)—— Lambda 表达式
- joj 1329 二叉树
- Q4之保存窗体状态
- (2011.10.28)汇编_王爽_第六章_学习小结
- 接个手柄,意外发现Linux竟然能听懂它的话
- oracle学习笔记4