虚拟机挂载NFS到开发板上研究记录

看了一些相关的资料,想尝试是否可以通过NFS实现在linux下的编辑工程,然后不许经由scp命令把交叉编译好的文件发给板子。板子通过NSF就可以直接使用了。如此可以大大提高arm-linux的开发速度。

NFS:网络文件系统,英文Network File System

目前的我理解是,使用他就相当于给开发板外挂载一个sd卡,只不过这个卡里的内容是我可以在线编辑的。

1.解决网络通信问题

那么第一件事就是实现开发板与虚拟机的网络要能ping通,也就是要在同一个网段里。
我使用是虚拟机软件是 Oracle VM VirtualBox

在启动虚拟机前,找到设置-网络-网卡
这里我选用的是网卡3
勾选启用网络连接
连接方式:桥接
选择对应的网卡:这里我是在笔记上接了一个USB装NET的的工具,电脑自带的网口我需要用来上网。
虚拟机挂载NFS到开发板上研究记录_第1张图片

启动虚拟机后
使用`ifcconfig 命令
可以看到网卡三对应的是ETH2 但是没有分配IP 我们手动分配一下

ifconfig eth2 192.168.xx.xx

确保USB的网卡,开发板的网卡,eth2的网卡都配置在同一个网段里。

确定硬件连接没问题

到此,板子和虚拟机就可以直接ping通了。
已经可以通过SCP命令,进行文件的传输。

忽然发现虚拟可以ping的到板子但是板子ping不到虚拟机

查了一下发现,eth2没有分配具体IP
这里我修改了/etc/network/interfaces 文件,添加了eth2的配置,重启虚拟机就正常了

auto eth2
iface eth2 inet static
        address 192.168.1.9
        netmask 255.255.255.0

2.网络问题解决了,开始挂载NFS

2.1在虚拟机中使用如下命令安装NFS服务

 sudo apt-get install nfs-kernel-server rpcbind

2.2安装后会生成配置文件,编辑这个文件

sudo vi /etc/exports 

增加一行配置,文件如下:

/home/work/share 192.168.1.*(rw,sync,no_root_squash)

注:1、/home/work/share是一个共享目录,该目录的路径必须是绝对路径;
2、192.168.1.*说明 只要在192.168.1的这个网段上的所有用户都可以访问共享目录,如果是所有IP都可以访问该目录的话,就改为/mnt *(XXX)即可;
3、rw:读写访问,sync:所有数据在请求时写入共享,no_root_squash:用户具有根目录的完全管理访问权限。

2.3重启nfs服务

sudo  /etc/init.d/nfs-kernel-server restart

2.4在开发板上挂载nsf

 mount -o nolock 192.168.1.9:/home/work/share /mnt/nfs

192.168.1.9 是虚拟机的IP地址

至此NFS挂载成功

共享内存成功
虚拟机挂载NFS到开发板上研究记录_第2张图片
虚拟机挂载NFS到开发板上研究记录_第3张图片

发现在虚拟机下创建文件,是对于开发板与虚拟机都是可读可写的。
在开发板一侧在nfs里面创建文件,该文件对于虚拟机而言是只读的权限。
可以使用下面这个命令修改文件属性。

chmod 666 mytest.sh

试了一下,虚拟机在nfs下编译出来的文件,可以直接在开发板里执行。如此就省去了复制文件的一个步骤。

完结

参考文献
https://blog.csdn.net/u012007928/article/details/38985471

你可能感兴趣的:(linux)