我是靠谱客的博主 火星上电脑,最近开发中收集的这篇文章主要介绍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服务安装配置过程总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部