基于 NFS 的文件共享实现

NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过 TCP/IP 网络共享文件资源,服务端通过 NFS 共享文件目录,客户端将该文件目录挂载在本地文件系统中,就可以像操作本地文件一样读写服务端文件。

在嵌入式 Linux 开发过程中,我们经常需要将在 Linux 主机交叉编译的程序文件下载到嵌入式 Linux 开发板中运行,通过使用 NFS 可大大简化操作流程。

搭建 NFS 服务

  • 执行命令安装 NFS 服务:
vbscript 复制代码
sudo apt-get install nfs-kernel-server
  • 输入 y,或直接回车确认,等待安装完成:
  • 在用户目录下新建 nfs-work 文件夹作为 NFS 的工作目录:
  • 使用 vi 编辑器打开 NFS 配置文件:
bash 复制代码
sudo vi /etc/exports
  • 添加 /home/alpha/nfs-work 作为 NFS 的一个工作目录
  • NFS 配置的一些常用参数总结如下:
常用参数 含义
ro 以只读的方式共享
rw 以读写的方式共享
sync 数据同步
async 数据异步
secure 客户端必须使用 NFS 保留端口( 1024 以下的端口)
insecure 允许客户端使用 1024 以上的端口访问
subtree_check 检查父目录的权限
no_subtree_check 不检查父目录权限
root_squash 客户端以 root 用户访问时,赋予其匿名用户权限
no_root_squash 客户端以 root 用户访问时,赋予其 root 权限
  • 执行命令重启 rpcbind 和 NFS 服务:
bash 复制代码
sudo /etc/init.d/rpcbind restart
sudo /etc/init.d/nfs-kernel-server restart
  • 重启成功:

测试 NFS

  • 首先保证 Linux 服务主机和客户机相互 ping 通,主机 ping 客户机 IP:
  • 客户机 ping 主机 IP:
  • 客户机执行 mount 命令将主机 NFS 工作目录挂载在本地 /mnt/ 目录下:
ruby 复制代码
mount -t nfs4 -o vers=4 192.168.0.120:/home/alpha/nfs-work /mnt/
  • 查看客户机本地目录,已创建 mnt 文件夹,且该文件夹为空:
  • 在主机 NFS 工作目录下创建 test.txt 文件并写入一些内容:
  • 在客户机查看本地 mnt 目录,test.txt 文件已经同步过来了:
  • 在客户机向 test.txt 文件中添加内容:
  • 在主机 NFS 工作目录下再次查看 test.txt 文件,内容也同步了:

更多内容

相关推荐
深思慎考3 分钟前
LinuxC++——etcd分布式键值存储系统API(libetcd-cpp-api3)下载与二次封装
linux·c++·etcd
前方一片光明38 分钟前
Linux—升级openssh常见的问题与解决方案
linux·运维·服务器
siriuuus2 小时前
Linux rsyslog 日志服务及日志转发实践
linux·rsyslog
dawnsky.liu2 小时前
RHEL - 在离线的 RHEL 10 中部署 Lightspeed 命令行助手
linux·人工智能·ai
promising-w2 小时前
TYPE-C接口,其实有4种
linux·c语言·开发语言
云道轩2 小时前
在rocky linux 9.5上安装yq
linux·kubernetes
烦躁的大鼻嘎3 小时前
【Linux】深入探索多线程编程:从互斥锁到高性能线程池实战
linux·运维·服务器·开发语言·c++·算法·ubuntu
wdfk_prog3 小时前
`git rm --cached`:如何让文件“脱离”版本控制
大数据·linux·c语言·笔记·git·学习·elasticsearch
xuhe23 小时前
告别 LaTeX 配置地狱:我的 Overleaf (ShareLaTeX-CE) 完整版私有化部署方案
linux·docker·overleaf
深思慎考3 小时前
LinuxC++——etcd-cpp-api精简源代码函数参数查询参考
linux·c++·etcd