我是靠谱客的博主 火星上电脑,最近开发中收集的这篇文章主要介绍Firefly AIO-3399ProC开发板与PC端搭建NFS远程挂载环境前言一、NFS介绍二、NFS服务安装配置过程总结,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 前言
- 一、NFS介绍
- 二、NFS服务安装配置过程
- 2.1 开发板端安装配置NFS服务
- 2.2 PC端安装配置NFS服务
- 2.3 测试开发板和PC端是否可以通过NFS文件夹共享文件
- 总结
前言
实验室所用的Firefly AIO-3399ProC开发板在搭建交叉编译环境前,需要在开发板端和PC端部署NFS远程挂载环境,本文记录下搭建过程,以供本人和各位参考。
一、NFS介绍
网络文件系统,英文为Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
NFS 允许计算的客户-服务器模型。服务器实施共享文件系统,以及客户端所连接的存储。客户端实施用户接口来共享文件系统,并加载到本地文件空间当中。
通过在开发板和PC端部署NFS远程挂载环境,可以很方便地在两者间传输文件。
二、NFS服务安装配置过程
注:部分操作配置参考此文
2.1 开发板端安装配置NFS服务
- 安装NFS相关组件
sudo apt-get install nfs-kernel-server -y
- 在开发板中创建并配置NFS共享文件夹
#创建共享文件夹
sudo mkdir /mnt/nfs
#修改文件夹的用户访问权限
sudo chown -R firefly /mnt/nfs/
#查看修改后的NFS文件夹权限
ll /mnt/nfs/
total 3
drwxr-xr-x 3 root root 1024 May 12 2020 ./
drwxr-xr-x 22 root root 1024 Mar 12 13:13 ../
drwxr-xr-x 20 firefly firefly 1024 Mar 15 10:22 firefly/
- 设置共享文件夹的访问权限
修改主机 /etc/exports 文件,在该文件中添加如下代码
/mnt/nfs *(rw,sync,no_root_squash)
该行代码的说明如下:
/mnt/nfs 表示所设定的共享文件,这里可以任意改,
*表示任意网段的下位机都可以连接到此文件夹
(rw,sync,no_root_squash) //表示一些权限
rw 可读写的权限
ro 只读的权限
no_root_squash NFS 客户端分享目录使用者的权限,即如果客户端使用的是 root 用户,那么对于这个共享的目录而言,该客户端就具有 root 的权限,若是以NFS挂载根文件系统时,必须设置此项
sync 资料同步写入到内存与硬盘当中
async 资料会先暂存于内存当中,而非直接写入硬盘
sudo vim /etc/exports
# /etc/exports: the access control list for filesystems which may
be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(
ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_c
heck)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/mnt/nfs *(rw,sync,no_root_squash)
- 重启NFS相关服务
#停止NFS服务
sudo /etc/init.d/nfs-kernel-server stop
# 启动NFS服务
sudo /etc/init.d/nfs-kernel-server start
# 重新启动NFS服务
sudo /etc/init.d/nfs-kernel-server restart
- 查看系统中创建的共享文件夹
firefly@firefly:~$ showmount -e
Export list for firefly:
/mnt/nfs *
- 查看开发板的网络配置
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.126 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::ecfd:ead1:e1:e900 prefixlen 64 scopeid 0x20<link>
ether 7a:10:c5:77:34:a8 txqueuelen 1000 (Ethernet)
RX packets 165358 bytes 15182215 (15.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 721900 bytes 1018945203 (1.0 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 24
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 235 bytes 17298 (17.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 235 bytes 17298 (17.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether cc:4b:73:8a:85:ff txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可看到此时开发板的固定IP地址为192.168.1.126。
至此开发板端的NFS配置完成
2.2 PC端安装配置NFS服务
- 安装NFS服务
sudo apt-get install nfs-common -y
- 创建NFS共享文件夹
sudo mkdir /mnt/nfs
#修改文件夹的用户访问权限
sudo chown -R user /mnt/nfs
#查看修改后的NFS文件夹权限
ll /mnt/nfs/
总用量 13
drwxr-xr-x 4 root root 4096 3月 15 10:25 ./
drwxr-xr-x 25 root root 4096 3月 5 14:01 ../
drwxr-xr-x 2 root root 4096 11月 28 19:55 hgfs/
drwxr-xr-x 2 user root 1024 3月 15 10:19 nfs/
- 测试PC端与开发板网络是否相通
#在PC端ping开发板的IP地址
ping 192.168.1.126
PING 192.168.1.126 (192.168.1.126) 56(84) bytes of data.
64 bytes from 192.168.1.126: icmp_seq=1 ttl=64 time=0.674 ms
64 bytes from 192.168.1.126: icmp_seq=2 ttl=64 time=0.626 ms
64 bytes from 192.168.1.126: icmp_seq=3 ttl=64 time=0.703 ms
64 bytes from 192.168.1.126: icmp_seq=4 ttl=64 time=0.665 ms
- 在PC端挂载开发板的NFS共享文件夹
sudo mount -t nfs -o nolock 192.168.1.126:/mnt/nfs /mnt/nfs
- 设置开机自动挂载开发板共享的NFS文件夹
修改/etc/文件夹下的fstab文件,按实际IP地址及文件夹目录添加
nfs-server-ip:/nfsdir /mnt nfs rw 0 0
sudo vim /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=92a17988-3b1d-4bd0-8d30-bf0a8ac93146 / ext4 errors=remount-ro 0 1
/swapfile none swap sw 0 0
192.168.1.126:/mnt/nfs /mnt/nfs nfs rw 0 0
2.3 测试开发板和PC端是否可以通过NFS文件夹共享文件
#开发板端
cp /home/firefly/work_3399.zip /mnt/nfs/
#PC端
ls /mnt/nfs
work_3399.zip
#PC端
mv /mnt/nfs/work_3399.zip ./work.zip
#开发板端
ls /mnt/nfs
work.zip
NFS支持TCP和UDP协议
通过上列代码测试文件传输及重命名,可知PC端和开发板端可进行文件传输,至此NFS远程挂载环境搭建完成。
总结
本文总结了ARM开发板和PC端搭建远程挂载环境的过程,方便后续搭建交叉编译环境。
最后
以上就是火星上电脑为你收集整理的Firefly AIO-3399ProC开发板与PC端搭建NFS远程挂载环境前言一、NFS介绍二、NFS服务安装配置过程总结的全部内容,希望文章能够帮你解决Firefly AIO-3399ProC开发板与PC端搭建NFS远程挂载环境前言一、NFS介绍二、NFS服务安装配置过程总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复