当前位置: 首页 > article >正文

【系统移植】NFS服务器环境搭建——挂载根文件系统

什么是NFS?

NFS(Network File System)即网络文件系统,其基于UDP/IP 使用NFS能够在不同计算机之间通过网络进行文件共享,能使使用者访问网络上其它计算机中的文件就像在访问自己的计算机一样,文件只存在于服务器上,并没有下载到客户端,类似于百度网盘的在线阅览功能。 

Ubuntu和开发板之间用NFS协议传输文件时,Ubuntu为NFS服务器,开发板为客户端 ,能够在开发板上挂载根文件系统。

NFS服务器环境搭建

1、检查自己的Ubuntu是否安装NFS,如果已安装,则无需再安装。

$ dpkg -s nfs-kernel-server

如显示如下结果,则说明已安装,无需再安装: 

如显示如下结果,则说明未安装: 

 2、安装NFS服务器,前提是确保Ubuntu能连上外网,可以ping下百度,如果能ping通,则说明已经连上外网

$ sudo apt-get install nfs-kernel-server

3、修改NFS服务器配置文件 

因为etc/目录在根目录下,需要sudo权限打开才能修改。

$ sudo vi /etc/exports

在文件末尾添加如下代码,保存并退出:

/opt/4412/rootfs是NFS服务器的工作目录(如该目录还不存在,需要在下一步创建),客户端要访问的文件要放在该目录下,*代表不限制IP,() 中是一系列参数。

4、创建服务器工作目录,并设置为最高权限 

$ sudo mkdir -p /opt/4412/rootfs
$ sudo chmod -R 777 /opt

5、重启服务器,使配置生效 

$ sudo service nfs-kernel-server restart

如显示如下信息,则说明重启成功: 

 如果使用的是Ubuntu 24.04,可能什么都不显示,也是重启成功(我的就如此):

注意:以后每次重新打开Ubuntu,要使用NFS,都要重启 

6、本地测试是否安装成功 

 查看/opt/4412/rootfs/目录下的文件

$ ls /opt/4412/rootfs/

如果有rootfs/目录下有文件,则cd到家目录;如果没有文件,可以用touch命令创建test.txt文件,或者其他什么文件都可以,自己随意,再cd到家目录。

 使NFS挂载工作目录到/mnt目录:

$ sudo mount -t nfs localhost:/opt/4412/rootfs /mnt

查看是否挂载成功:

$ ls /mnt/

 如/opt/4412/rootfs/目录下的文件和目录在/mnt目录下都存在,则说明挂载成功:

如需要取消挂载:

$ sudo umount /mnt

可能遇到的问题

问题一:Ubuntu17.10之后的版本NFS默认只支持协议3和4,会导致挂载失败。

解决方法:在/etc/default/nfs-kernel-server 文件末尾加一句如下内容: RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog" 然后重启 nfs 服务。

在用下面命令查看支持的版本:

$ sudo cat /proc/fs/nfsd/versions

结果如下,则说明可以支持NFS协议2:

问题二:尝试过问题一的解决方法之后,如果仍然无法解决,则可以指定uboot的NFS3版本,在开发板上设置uboot的环境变量。
参考如下格式设置

具体设置方法可以参考【系统移植】在开发板上加载内核和根文件系统的三种方法中设置bootargs自启动参数环境变量部分。

最后再重启NFS服务器

$ sudo service nfs-kernel-server restart

该部分参考NFS环境搭建 ,如果更多问题,可以查阅。


http://www.kler.cn/a/447845.html

相关文章:

  • mapStateToProps
  • 西游记战力排名、笔记等
  • electron打包linux环境
  • Leaflet的zoom层级-天地图层级之间的关系
  • Vue之版本演进
  • react 项目打包二级目 使用BrowserRouter 解决页面刷新404 找不到路由
  • Linux网络——网络套接字
  • java小知识点:比较器
  • 使用PyTorch实现GPT-2直接偏好优化训练:DPO方法改进及其与监督微调的效果对比
  • 机器学习(四)-回归模型评估指标
  • 【LeetCode】906、超级回文数
  • vue入门教程:组件透传 Attributes
  • c++领域展开第四幕——类和对象(上篇收尾 this指针、c++和c语言的初步对比)超详细!!!!
  • 如何使用PSQL Tool还原pg数据库(sql格式)
  • Kubernetes网络管理
  • 示波器--UNI-T 优利德 UT4102C 使用介绍
  • 前端面试:项目细节重难点问题分享(19)
  • 一步一步写线程之十六线程的安全退出之二例程
  • 2024年12月的《数据资产管理实践指南(7.0版)》解析
  • 使用Python构建个性化学习管理系统
  • javaEE-线程的常用方法-4
  • GIT与github的链接(同步本地与远程仓库)
  • 深入理解 Java 中的 ArrayList 和 List:泛型与动态数组
  • (2024.12)Ubuntu20.04安装ZED-SDK
  • 图解HTTP-HTTP报文
  • 硬盘接口模式sata与ahci区别, U盘UEFI GPT与Legacy 启动项区别,硬盘格式MBR和gpt的区别