Ubuntu搭建NFS,在Smart210挂载

NFS Smart210 Ubuntu
Chauncey
发布时间: 2018-12-11
阅读: 1103

在实验室里找到了一个主控是s5pv210的智能车,主板是友善之臂的早期产品smart210

QQ截图20181211111748.jpg


里面介绍了一种通过nfs挂载,来传输文件的方式


通常传送文件一般是通过 ftp 传送文件,或者串口传送文件

不过所谓NFS(Network File System)是网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

他可以节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。

下面我来介绍一下我的挂载过程。

打开虚拟机

如果有必要可以先获取root权限

root.jpg

首先Ubuntu是没有NFS的相关程序的,需要进行NFS安装

sudo apt-get install nfs-kernel-server
并建立一个nfs服务的专有的文件夹 
mkdir -p /opt/FriendlyARM/mini210/linux/rootfs_mini210 
设置读写权限
# chmod 777 /opt/FriendlyARM/mini210/linux/rootfs_mini210


建立好文件夹后,接着执行命令:


sudo vi /etc/exports 

来配置nfs
在最后一行添加:


/opt/FriendlyARM/mini210/linux/rootfs_mini210 *(sync,rw,no_root_squash)

1.jpg
这一行的含义是:

/opt/FriendlyARM/mini210/linux/rootfs_mini210:与nfs服务客户端共享的目录,这个路径必须和你前面设置的文件的路径一致!

*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限

如果还希望共享其他目录可以在后面添加
例如

2.jpg

这里多了个insecure,这个我们等一下再说

修改完上述配置文件保存退出。
我用的是zz的vi,按esc进入命令行模式,
:wq

保存退出

重启rpcbind服务。
# /etc/init.d/rpcbind restart


重启nfs服务。
# /etc/init.d/nfs-kernel-server restart

如果以后你增加了新的地址,rpcbind和nfs需要再次重启

可以通过本机挂载nfs来测试一下
# mkdir /mnt/nfs
# mount 192.168.2.3:/opt/FriendlyARM/mini210/linux/rootfs_mini210 /mnt/nfs
# ls /mnt/nfs

请注意opt/FriendlyARM/mini210/linux/rootfs_mini210和/mnt/nfs之间有一个空格
3.jpg

可以通过umount解除挂载
4.jpg
可以看到nfs中已经没有之前的文件了

如果显示 device busy
可输入
umount -l /mnt/nfs

选项 –l 并不是马上umount,而是在该目录空闲后再umount。




这样nfs挂载就搭建好了,但是这样个情况下并不能用smart210正常挂载
因为你可能并没有将电脑 开发板 虚拟机三者ping通

首先相互ping一定是在统一网段内
Ping之前请关闭电脑防火墙和杀毒软件

我的笔记本只有一个网口,所以将他与开发板通过网线连接

我们先看一下目前的ip地址,一般你的也是192.168.1.x


5.jpg
这个是通过wifi获得的,如果你和我一样用的是笔记本,


你不能使用这个网段,建议你换一个像 192.168.2.x ,
这是因为电脑的两个网卡都要工作,必须互不干扰。

我们假设使用 192.168.2.x 这个网段,


网关:192.168.2.1
电脑IP : 192.168.2.2
虚拟机:192.168.2.3
开发板:192.168.2.4

下面分配IP,分配ip要根据实际情况来,如果你的路由器还有其他人在使用的话可以选取靠后一点的ip,防止ip冲突。

先设置电脑的静态IP
控制面板\网络和 Internet\网络连接

网卡.jpg

6.jpg


7.jpg


8.jpg

设置ip地址为192.168.2.2

别忘了要关闭你的防火墙哦
9.jpg


设置开发板的IP地址
Smart在烧录好系统后有现成的软件,可以直接更改

QQ截图20181211111826.jpg


设置虚拟机ip

11.jpg

更改设置

13.jpg

还原为默认设置后,再进行相关设置

12.jpg


虚拟机设置中将网络设置为vmnet0
14.jpg


进入虚拟机

15.jpg


16.jpg

设置虚拟机IP、子网掩码、网关,最后点击Apply应用

17.jpg

设置完成后通过ifconfig查看当前的ip地址

18.jpg
别忘了通过

ufw disable


 关闭防火墙


在smart210上也有现成的ping测试软件
可以试一下是否能ping通


如果能ping通就可以尝试挂载了
连接通过网线和串口线连接开发板


19.jpg

虚拟机已经重启过nfs后

在开发板命令界面中输入

#mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.2.2:/tftpboot /mnt
为什么如此复杂。。。因为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目录 /挂载路径 



如果出现类于
mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs

首先考虑权限设置有问题,需要将权限设为777
如果文件夹权限都设为777了,那权限上没问题
那是因为
如果端口号大于1024,则需要将 insecure 选项加入到配置文件(/etc/exports)相关选项中mount客户端才能正常工作

为什么不能大于1024呢?
secure 选项要求mount客户端请求源端口小于1024(然而在使用 NAT 网络地址转换时端口一般总是大于1024的),默认情况下是开启这个选项的,如果要禁止这个选项,则使用 insecure 标识

就分享这么多吧,感兴趣的小伙伴也去尝试一下吧


原创作品,未经权利人授权禁止转载。详情见转载须知 举报文章

点赞 (0)
Chauncey
评论(0)

登录后可评论,请 登录注册

相关文章推荐
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回

我要举报该内容理由

×
请输入您举报的理由(50字以内)