linux的防火墙及arm与虚拟机共享

为实现宿主机上交叉编译后的应用程序能方便的下载到嵌入式开发板上运行,一般通过在开发板上采用网络挂载虚拟机nfs文件系统实现,虚拟机充当nfs server,目标板充当nfs client。

实验环境:宿主机是虚拟机centos5.6,目标机是mini2440上的linux,这里我用交叉网线来连接。

一 要在虚拟机安装nfs服务器

1 需要安装下面两个文件
# rpm -ivh nfs-utils-1.0.1-2.9.i386.rpm portmap-4.0-54.i386.rpm

若没有安装包这可以:

yum install   nfs-utils   portmap
portmap监控程序只是定向RPC通信数据流,使NFS客户机找到从NFS服务器共享的目录。

2  配置nfs,设置输出的共享目录

#mkdir /home/chen/mini2440share

# vim /etc/exports 
这里我只是简单的设置

/home/chen/mini2440share   *(rw,sync,no_root_squash)

然后,生效配置文件

# exportfs -rv
exporting *:/home/chen/mini2440share

起动nfs 

# /etc/init.d/portmap restart
       # /etc/init.d/nfs restart

注意起动顺序不可乱,先起动portmap再起动nfs

二 实现虚拟机与开发板连接

1 设置虚拟机与本地机的网络模式为桥接

2 开发板与本地机的连接用交叉网线

3 设置本地机,虚拟机,开发板的网络在同一个网段中

在这里我设置为(本地机:192.168.2.105  虚拟机:192.168.2.119  开发板:192.168.2.118)

ping一下,能通,嗯,成功在向你招手

三 从超级终端里连接开发板,然后挂载nfs文件系统:

# mount -o nolock,rw -t nfs 192.168.2.119:/home/chen/mini2440share    /mnt/nfs

要加参数:-o nolock(一开始,我没加,就挂载不了,老是提示超时)

注意事项:

【1】 NFS 的默认传输协议是 UDP,而PC机与嵌入式系统通过UPD交互时就会出现严重的网卡丢包现象。则终端会出现:nfs:server is not responding,still trying提示信息

解决方案是:在客户端改用TCP协议,使用下面的命令,
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.0.121:/主机nfs目录 /挂载路径 

下面是一些NFS共享的常用参数: 
ro:只读访问 
rw:读写访问 
sync:所有数据在请求时写入共享 
async:NFS 在写入数据前可以响应请求 
secure:NFS通过1024以下的安全TCP/IP端口发送 
insecure:NFS通过 1024以上的端口发送 
wdelay:如果多个用户要写入NFS目录,则归组写入(默认) 
no_wdelay:如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 
hide:在NFS共享目录中不共享其子目录 
no_hide:共享 NFS目录的子目录 
subtree_check:如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) 
no_subtree_check:和上面相对,不检查父目录权限 
all_squash:共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 
no_all_squash:保留共享文件的UID和GID(默认) 
root_squash:root用户的所有请求映射成如anonymous用户一样的权限(默认) 
no_root_squash:root用户具有根目录的完全管理访问权限 
anonuid=xxx:指定NFS服务器/etc /passwd文件中匿名用户的UID 
anongid=xxx:指定NFS服务器/etc/passwd文件中匿名用户的GID

 

 

当出现这种情况时:mount:RPC:Unable to receive;errno=No route to host

原因:有限制的端口。

(fedora 12)关闭防火墙:方法:

1、永久性关闭

lokkit --disabled
2、 即时生效,重启后失效

service 方式
开启: service iptables start
关闭: service iptables stop

iptables方式

查看防火墙状态:
/etc/init.d/iptables status

暂时关闭防火墙:
/etc/init.d/iptables stop

重启iptables:
/etc/init.d/iptables restart

本文出自 “儒家辉少” 博客,转载请与作者联系!

你可能感兴趣的:(ARM,虚拟机共享)