ubuntu挂载到开发板某个目录

由于嵌入式Linux开发大多数使用的是交叉编译环境,难免很频繁的将文件在开发板和PC环境( 如ubuntu )之间传递,最方便的方法为挂载NFS。


网络文件系统NFS( Network File System )是一种将远程主机上的目录经网络挂载到本地主机的一种机制,如将ubuntu家目录 /home 挂载到开发板的 /tmp 目录。


说到挂载,大家可能觉得很专业,很抽象。我们把U盘插到电脑上,我们可以说,U盘挂载到电脑上,这样我们在电脑上能够直接看到U盘的内容。同样的,我们将ubuntu家目录 /home 挂载到开发板的 /tmp 目录,那么我们在开发板/tmp 目录能够看到ubuntu家目录 /home 的东西,这个开发板的 /tmp目录相当于ubuntu的家目录 /home 。


测试环境如下:

开发板型号:s5pv210

技术分享

Linux系统(安装在虚拟机VMware player): ubuntu-12.04

技术分享


ubuntu环境的配置(在PC ubuntu上操作):

1、NFS服务安装

sudo apt-get install nfs-kernel-server  nfs-common

技术分享


2、NFS服务配置

 /etc/exports的最后加一句话: /home  *(rw,sync,no_root_squash)

让/home家目录具备以下的属性:

rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。

具体操作如下:

技术分享

技术分享


3、重启NFS服务器

sudo service nfs-kernel-server restart

技术分享


4、在PC上测试NFS服务器是否安装成功

我们把 ubuntu 的家目录 \home\edu 挂载到本机的 \tmp目录,最终,如果我们在/tmp目录,看到的东西是 ubuntu 家目录 \home\edu 的东西,那说明挂载成功。

sudo mount -o nolock 10.221.20.17:/home/edu  /tmp

10.221.20.17 为需要挂载目录的ip,这里是ubuntu的ip

技术分享


先进入家目录,查看内容:

技术分享


再进入 /tmp 目录,查看内容,和家目录的内容一样,挂载成功:

技术分享


ubuntu的家目录/home/edu 挂载到开发的/tmp目录:

如果没有局域网网络,我们需要通过一根网线,一端连开发板,一端连PC机,人为组成一个局域网。

技术分享


接着,我们分别给ubuntu和开发板设置一个同一网段的ip,网段相同,主机ip不能相同,否则,会导致ip冲突。

技术分享

1、设置PC机ubuntu的ip(在PC机ubuntu进行相应操作)

a) 通过命令进行设置

在终端里敲:sudo ifconfig eth0 10.221.20.17 netmask 255.255.255.0

注意,eth0 的 “0” 为数字 “0”

查看:ifconfig

技术分享

b) 通过图形界面进行设置

技术分享


技术分享


技术分享


技术分享


技术分享


技术分享


技术分享


技术分享


技术分享


技术分享



2、设置开发板的ip(在开发板终端进行相应操作)

将开发板连接好终端,如何连接请点此处。

在终端里敲:ifconfig eth0 10.221.20.123 netmask 255.255.255.0

注意,eth0 的 “0” 为数字 “0”

查看:ifconfig

测试能否拼通ubuntu: ping 10.221.20.17 , 敲:ctrl + c 即可中断连接

技术分享


技术分享


如果能平通,上图就是平通的情况,说明,开发板和PC机的ubuntu是在同一个局域网内。


3、在开发板上写相应挂载命令(在开发板终端进行相应操作)

mount -o nolock,wsize=1024,rsize=1024 10.221.20.17:/home/edu  /tmp

10.221.20.17:为需要挂载目录的ip,这里是PC机上ubuntu的ip


然后,进入/tmp目录,查看一下内容,如果看到的是ubuntu的/home/edu目录的内容,说明挂载成功。

技术分享


4、写个挂载脚本( 开发板操作 )

开发板每次重启后,上面写的设置ip,挂载命令都会失效,于是,我们又要重复3、在开发板上写相应挂载命令(在开发板终端进行相应操作)的操作,这样会很麻烦,所以,我们接下来在开发板 /home 目录 写个挂载脚本,以后开启开发板,人为运行这个挂载脚本即可实现挂载功能。


a)在开发板的/home目录,新建一个脚本:vi mount_nfs.sh

技术分享


b) 在脚本 mount_nfs.sh 写如下内容,然后保存

ifconfig eth0 10.221.20.123 netmask 255.255.255.0

mount -o nolock,wsize=1024,rsize=1024 10.221.20.17:/home/edu  /tmp

技术分享


c) 给脚本添加权限:chmod 777 mount_nfs.sh

技术分享


d) 重启开发板,进入/home,运行脚本,测试是否挂载成功

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。