Linux开发学习手册—— 二、搭建NFS网络文件系统服务

开发环境和开发板需要能够互通共享文件,NFS服务的主要目的是在网络上实现文件共享。在嵌入式系统开发中,特别是在嵌入式 Linux 系统开发中,经常会使用 NFS 来实现开发板和开发环境之间的文件共享。这样,就可以在开发环境上进行代码编写、编译和调试等操作,然后通过 NFS 将编译好的程序、镜像文件等传输到嵌入式开发板上运行。

NFS(Network File System)是一种分布式文件系统协议,用于允许一个计算机通过网络访问另一台计算机上的文件系统。搭建该服务分为两部分,一个是服务端,一个是客户端。

一、NFS服务端

1.1 安装NFS服务器

打开Ubuntu终端,输入下面的命令:

shell 复制代码
sudo apt update 
sudo apt install nfs-kernel-server

1.2 配置NFS共享目录

shell 复制代码
sudo mkdir /home/nfs/shared

1.2.1 打开配置文件

shell 复制代码
sudo vim /etc/exports

1.2.2 在文件后面中添加一行

shell 复制代码
/home/nfs/shared *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
  • /srv/nfs/shared: 共享的目录路径
  • *: 允许任何主机访问
  • rw: 读写权限
  • nohide: 文件系统被挂载时,该目录将一直可见
  • insecure: 允许客户端使用非特权端口连接到 NFS 服务器。
  • async: 异步写入,提高性能
  • no_subtree_check: 禁用子树检查
  • no_root_squash: 根用户在客户端将具有服务器上的根用户的权限

1.2.3 重启NFS服务

shell 复制代码
sudo systemctl restart nfs-kernel-server

1.2.4 验证共享目录

shell 复制代码
showmount -e

1.3 配置mountd端口

1.3.1 输入sudo gedit /etc/services 打开配置文件

shell 复制代码
sudo gedit /etc/services

1.3.2 添加以下两行

shell 复制代码
mountd 9999/tcp
mountd 9999/udp

1.3.3 查看端口

shell 复制代码
sudo rpcinfo -p

二、NFS客户端

将开发板插入电源,插入串口,打开串口连接工具等待连接,此时打开电源开关即可成功连接上开发板终端。

在配置好开发板网络的前提下进行下面的操作,如果板子没有sudo命令就不用加sudo:

2.1 安装客户端软件

shell 复制代码
sudo apt update
sudo apt install nfs-common

2.2 创建挂载目录

shell 复制代码
sudo mkdir -p /mnt/nfs

2.3 进行挂载

这里的192.168.0.121是服务端的地址

shell 复制代码
sudo mount 192.168.0.121:/home/nfs/shared /mnt/nfs

或者

shell 复制代码
mount -t nfs -o nolock,vers=3,port=2049,mountport=9999 192.168.0.121:/home/nfs/shared /mnt/nfs

2.4 配置系统启动时自动挂载

Linux的部分配置文件在每次系统启动时都会执行一次。因此,如果有需要在系统启动时挂载的NFS共享,可以将对应的挂载命令写入配置文件,比如:1. 通过编辑"/etc/fstab"文件的方式。 2. 通过编辑"/etc/rc.d/rc.local"文件的方式。 from support.huawei.com/enterprise/...

2.4.1 使用/etc/fstab方式(失败了)

板子开机加载半天没动,吓我一跳,以为成砖了,挂载没有成功,不晓得原因,暂时还是使用终端连接工具提供的自定义宏功能吧。

2.4.1.1 打开/etc/fstab 文件

shell 复制代码
sudo vim /etc/fstab

2.4.1.2 将挂载信息添加到 /etc/fstab 文件中

这里的192.168.0.121是服务端的地址

shell 复制代码
192.168.0.121:/home/nfs /mnt nfs nolock,vers=3,port=2049,mountport=9999 0 0

2.5 验证挂载

shell 复制代码
mount -a

shell 复制代码
df -h

2.6 使用etc/rc.d/rc.local方式

我的这个板子没有etc/rc.d/rc.local我就不弄这个了


嵌入式Linux系列文章:

END

相关推荐
wuk9984 分钟前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
独行soc3 小时前
#渗透测试#批量漏洞挖掘#HSC Mailinspector 任意文件读取漏洞(CVE-2024-34470)
linux·科技·安全·网络安全·面试·渗透测试
BD_Marathon3 小时前
Ubuntu下Tomcat的配置
linux·ubuntu·tomcat
饥饿的半导体3 小时前
Linux快速入门
linux·运维
BD_Marathon3 小时前
Ubuntu:Tomcat里面的catalina.sh
linux·ubuntu·tomcat
BD_Marathon3 小时前
设置LInux环境变量的方法和区别_Ubuntu/Centos
linux·ubuntu·centos
Me4神秘4 小时前
Linux国产与国外进度对垒
linux·服务器·安全
zhaowangji4 小时前
ubuntu 20.04 安装中文输入法 (sougou pin yin)
linux·ubuntu
两斤半4 小时前
Debian TTY环境乱码
linux·debian
还是奇怪6 小时前
Linux - 安全排查 2
linux·运维·安全