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

【linux】NFS调试总结

文章目录

  • 00. ENV
  • 10. 简述
  • 20. 下载、安装、配置
  • 30. 使用
    • 1. 从uboot中设置NFS启动文件系统
    • 2. 调试
  • 80. 问题
    • 1. NFS版本不匹配问题
  • 90. 附件
    • 91. 服务端NFS配置项简述

00. ENV

ubuntn1804

10. 简述

百度百科:https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F?fromModule=lemma_search-box

通过NFS把文件系统等直接传到开发板、与服务端共享文件,提高开发效率。

20. 下载、安装、配置

安装NFS服务端、端口映射工具等
sudo apt install nfs-kernel-server rpcbind

配置

  1. 创建NFS目录: mkdir -p ~/nfs
  2. 配置NFS目录等:sudo vi /etc/exports
    添加:/home/xxxx/nfs *(rw,sync,no_root_squash)
    // 添加NFS的路径和属性(具体属性参考“附件91”)
  3. 重启NFS服务:sudo /etc/init.d/nfs-kernel-server restart
  4. 查看配置:
    4.1 路径: sudo exportfs
    4.2 版本:sudo cat /proc/fs/nfsd/versions

30. 使用

1. 从uboot中设置NFS启动文件系统

  1. uboot中相关命令、参数简述:bootcmd,bootargs,nfs
    1.1 bootcmd::uboot启动后自动执行该命令
    1.2 bootargs:uboot启动时传递给内核的参数
    1.2 nfs:该命令可以通过nfs服务将文件传到开发板内存中,后续可直接从内存中加载系统等。
    nfs 命令格式:nfs [本地内存地址][[NFS服务器地址:]文件名]
    命令参考: nfs 0x81000000 192.168.10.10:/home/xxx/nfs/zImage // 将服务器端.10.10的/home/xxx/nfs/zImage文件传输到开发板的0x81000000的位置
  1. 配置uboot默认从nfs加载系统
    2.1 修改默认启动参数bootargs
    (假设服务器端存在
    根文件系统:/home/xxx/nfs/rootfs
    IP:192.168.10.10
    开发板IP:192.168.10.200)
=> setenv bootargs '\
> root=/dev/nfs rw \
> nfsroot=169.168.10.10:/home/xxxx/nfs/rootfs,v2,tcp \
> ip=169.168.10.200:169.168.10.10:169.168.10.10:255.255.255.0::eth0:off \
> console=ttyS0,115200'/* 格式参考如下:* root=/dev/nfs rw* nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>] * 		服务端rootfs文件夹,参数* ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>* 		指定开发板IP,服务区IP,网关,掩码,xx,网口,状态,xx*/

2. 调试

  1. 服务端修改的相关信息会同步到开发板上,即共享文件

80. 问题

1. NFS版本不匹配问题

  1. 修改支持的版本:以支持v2为例
  2. sudo vi /etc/default/nfs-kernel-server
    修改如下参数:
RPCNFSDCOUNT="-V 2 8"
RPCMOUNTDOPTS="-V 2 --manage-gids"
RPCSVCGSSDOPTS="--nfs-version 2,3,4 --debug --syslog"
  1. 重启服务:sudo /etc/init.d/nfs-kernel-server restart

90. 附件

91. 服务端NFS配置项简述

选项功能
ro共享目录只读
rw共享目录可读可写
sync将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
no_root_squash来访的root用户保持root帐号权限
all_squash所有访问用户都映射为匿名用户或用户组
no_all_squash(默认)访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组
root_squash(默认)将来访的root用户映射为匿名用户或用户组
anonuid=指定匿名访问用户的本地用户UID,默认为nfsnobody(65534)
anongid=指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534)
secure(默认)限制客户端只能从小于1024的tcp/ip端口连接服务器
insecure允许客户端从大于1024的tcp/ip端口连接服务器
async将数据先保存在内存缓冲区中,必要时才写入磁盘
wdelay(默认)检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率
no_wdelay若有写操作则立即执行,应与sync配合使用
subtree_check(默认)若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree_check即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
http://www.lryc.cn/news/137099.html

相关文章:

  • wireshark进行网络监听
  • 时间复杂度
  • Unity实现广告滚动播放、循环播放、鼠标切换的效果
  • LangChain + Streamlit + Llama:将对话式AI引入本地机器
  • Python 读写 Excel 文件库推荐和使用教程
  • “深入解析JVM:理解Java虚拟机的工作原理和优化技巧“
  • 解决SEGGER Embedded Studio无法显示Nordic MCU外设寄存器问题
  • Oracle-day1:scott用户、查询、取整、截取、模糊查询、别名——23/8/23
  • stm32之3.key开关
  • GPT带我学-设计模式-代理模式
  • VMware Workstation Pro 无法使用开机状态下拍的快照来克隆虚拟机,怎么解决?
  • 【JAVA】XML及其解析技术、XML检索技术、设计模式
  • Ansible 自动化安装软件
  • 简单介绍 React Native 整合 Formik 实现表单校验
  • 蓝帽杯半决赛2022
  • 电路学习+硬件每日学习十个知识点(40)23.8.20 (希腊字母读音,阶跃信号和冲激信号的关系式,信号的波形变换,信号的基本运算,卷积积分,卷积和)
  • Python——列表(list)推导式
  • 代码随想录算法训练营day43 | LeetCode 1049. 最后一块石头的重量 II 494. 目标和 474. 一和零
  • Linux安装jdk、mysql、并部署Springboot项目
  • tomcat更改端口号和隐藏端口号
  • 生信分析Python实战练习 2 | 视频19
  • wps设置其中几页为横版
  • 如何在Ubuntu 22.04上安装PHP 8.1并设置本地开发环境
  • wazuh安装与使用
  • Vue 3 常见面试题汇总
  • Docker是什么?详谈它的框架、使用场景、优势
  • neo4j
  • 【项目 计网5】 4.15 TCP通信实现(服务器端)4.16 TCP通信实现(客户端)
  • windows可视化界面管理服务器上的env文件
  • 自然语言处理在智能客服和聊天机器人中的应用