【Linux】新唐NUC977挂载NFS实现网络文件传输

简介: 【Linux】新唐NUC977挂载NFS实现网络文件传输

前言


相关简介:

  NFS(Network File System)即网络文件系统,是 FreeBSD 支持的文件系统

中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。在 NFS 的应

用中,NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访

问本地文件一样。

  使用 NFS,可以很方便的将 PC 上编译好的程序或者一些其他文件复制到开发

板上调试,省去了频繁插拔 U 盘的繁琐。

  要实现 NFS 文件系统,需要现在 PC 的 Ubuntu 系统搭建好 NFS 服务器,并设

置共享目录,开发板挂载该共享目录,达到文件传输的功能。


完成目标:

  虚拟机编译c文件,将编译好的文件拷贝到共享目录,,开发板挂载共享目录并拷贝文件到开发板目录中运行。


一、虚拟机Ubuntu配置

Ubuntu 安装 NFS 服务

sudo apt-get install nfs-kernel-server

修改 NFS 配置文件

vim /etc/exports

在最后一行添加:

/srv/nfs4 *(insecure,rw,sync,no_subtree_check)

参数说明:

  • /srv/nfs4 : nfs服务器共享的目录(需要本身存在,记得创建否则会挂载失败)。
  • :代表允许所有的网段访问(也可以使用具体的IP)
  • rw:挂接此目录的客户端对该共享目录具有读写权限
  • sync:资料同步写入内存和硬盘
  • no_subtree_check:不检查父目录的权限。

重启 NSF 服务器

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

查看本机地址验证本机nfs服务开启是否成功

mount -t nfs -o nolock 192.168.190.128:/srv/nfs4 /mnt

参数说明:

  • 192.168.190.128:NSF服务器的IP地址
  • /srv/nfs4 :共享目录所在的文件夹,应与搭建服务器是设置的相同
  • /mnt :共享目录的挂载地址

然后我们使用交叉编译器编译一个文件先放在共享目录中,方便开发板待会儿运行使用;

#include <stdio.h>
int main()
{
    printf("hello world!\r\n");
    return 0;
}

二、开发板挂载

保证开发板与电脑是在同一个局域网

ifconfig eth0 up  # 打开网卡
udhcpc -i eth0  # dhcp分配IP

电脑和虚拟机以及开发板三者互ping完成通讯表示网络配置成功,然后就可以执行下面的操作;

这里我也搞了好久

好不容易ping通了还是无法挂载

这里的原因是内核不支持nfs,解决办法是在内核图形化配置中配置下面的选项

File systems—>

[*] Network File Systems —>

mount -t nfs -o nolock 192.168.1.6:/srv/nfs4 /mnt
cp /mnt/main ./
./main

执行效果

最后

Linux开发少不了文件的传输,挂载U盘、nfs都是传输文件的一种手段

本章需要注意的点:

  • 电脑与开发板一定是要在同一局域网下
  • 内核需要开启nfs支持
  • 编译运行文件需要使用交叉编译器编译

这里还可以设置一个开机启动自动进行上面的设置大大缩短开发的时间

vi /etc/init.d/rcS

在文件末添加

ifconfig eth0 up  # 打开网卡
udhcpc -i eth0  # dhcp分配IP
mount -t nfs -o nolock 192.168.1.6:/srv/nfs4 /mnt

2022-7-22补充开发板挂载nfs无法创建文件到PC端

修改权限

vim /etc/exports
#/srv/nfs4 *(insecure,rw,sync,no_subtree_check)  # 屏蔽之前的
 /srv/nfs4 *(insecure,rw,sync,no_root_squash)
/etc/init.d/nfs-kernel-server restart


相关文章
|
26天前
|
安全 Linux 网络安全
Web安全-Linux网络协议
Web安全-Linux网络协议
52 4
|
26天前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
19 1
|
2月前
|
Ubuntu Linux
内核实验(四):Qemu调试Linux内核,实现NFS挂载
本文介绍了在Qemu虚拟机中配置NFS挂载的过程,包括服务端的NFS服务器安装、配置和启动,客户端的DHCP脚本添加和开机脚本修改,以及在Qemu中挂载NFS、测试连通性和解决挂载失败的方法。
50 0
内核实验(四):Qemu调试Linux内核,实现NFS挂载
|
22天前
|
网络协议 Linux
Linux 网络配置
了解基本命令与权限后,如何让Linux系统联网?可通过编辑`/etc/sysconfig/network-scripts/`下的`ifcfg-ethX`文件配置网卡,其中`ethX`代表第X块网卡。对于DHCP自动获取或静态IP,需设置`BOOTPROTO`参数,并指定IP、子网掩码和网关等。配置完成后,运行`/etc/init.d/network restart`重启网络。DNS可在`/etc/resolv.conf`中设置,添加`nameserver`行即可,无需重启网卡。配置好后,可用`ifconfig`查看IP信息,并通过远程工具如SecureCRT连接服务器。
43 0
|
29天前
|
域名解析 负载均衡 网络协议
Linux网络接口配置不当所带来的影响
总而言之,Linux网络接口的恰当配置是保证网络稳定性、性能和安全性的基础。通过遵循最佳实践和定期维护,可以最大程度地减少配置错误带来的负面影响。
67 0
|
2月前
|
算法 Linux 索引
Linux0.11 根文件系统挂载(四)
Linux0.11 根文件系统挂载(四)
18 0
|
2月前
|
存储 Linux Shell
【应用服务 App Service】App Service For Linux 中如何挂载一个共享文件夹呢? Mount Azure Storage Account File Share
【应用服务 App Service】App Service For Linux 中如何挂载一个共享文件夹呢? Mount Azure Storage Account File Share
|
2月前
|
存储 Linux 网络安全
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
|
2月前
|
存储 Linux 网络安全
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
|
2月前
|
网络协议 Linux Shell
【Azure 应用服务】App Service For Linux 中安装paping, 用于验证从App Service向外请求的网络连通性
【Azure 应用服务】App Service For Linux 中安装paping, 用于验证从App Service向外请求的网络连通性
下一篇
无影云桌面