【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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉开水白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值