10.网络文件系统( NFS)使用

网络文件系统( NFS) 使用

  • NFS 优点:
    • 开发过程中不受开发板空间的限制,直接使用网络文件就像使用本地文件一样;
    • 调试过程中避免一一将编译后的应用程序和库文件复制到开发板上。
  • 在开发板中使用网络文件系统可以为开发和调试节省不少时间。下面具体介绍其使用步骤。

1. 虚拟机设置

  • 配置虚拟机,让其能够直接访问局域网内的任何主机。前面为了能够让虚拟机与宿主机进行通信,将虚拟机的网络连接设置为 NAT 方式,下面分别介绍桥接模式和 NAT 模式 :

    • 桥接模式:虚拟机相当于局域网中一台独立主机,可以访问网内任何一台机器。在这种模式下,需将虚拟机IP 地址配置成和宿主机同一网段,这样二者可以通信。如果再配置好网关和DNS 的地址,虚拟机还可以通过局域网的网关或路由器访问互联网。
    • NAT 模式:虚拟机借助 NAT(网络地址转换)功能,通过宿主机所在网络来访问互联网。 NAT 模式下的虚拟机 IP 是由 VMnet(NAT)虚拟网络的 DHCP 服务器提供的,无法手动修改,因此虚拟机和局域网中的其他真实主机无法通信。
  • 为了使虚拟机、宿主机和开发板能达到互相通信的目的,虚拟机的网络连接方式应该采用桥接方式

    1. 通过选择菜单 “虚拟机” ,然后在下拉菜单中选择 “设置” 选项,在弹出的 “虚拟机设置” 窗口中进行设置,需要注意的是,设置虚拟机网络连接时,应该在虚拟机没有启动时进行设置,否则无法设置或者设置无法生效。

    2. 启动虚拟机,查看虚拟机的 IP 地址和网络连接状态。

      • 如果虚拟机右下角的虚拟网卡标识显示已经连接上,那么在终端输入 ifconfig 查看网卡是否已设置。如果需要修改IP地址信息,则可以单击右上角的网络图标,然后在弹出的面板中,单击“网络设置”按钮,打开“网络”对话框,单击设置图标进入网卡设置对话框,在该对话框中对虚拟机 IP 地址和网关进行设置 :

        image-20240308224422230

      • 如果虚拟机右下角的虚拟网卡标识显示未连接,则有可能是安装虚拟机时少选了一项 VMware Bridge Protocol ,那么需要在宿主机上完成以下设置:

        • 打开网络连接的属性窗口,在该窗口中有本地连接 VMnet1、 VMnet8 和网络连接。右击 VMnet1 或者 VMnet8,选择 “属性” 进入“VMware Network Adapter VMnet1属性”对话框,如果没有找到“VMware Bridge Protocol ”项的话,那就需要重新安装该桥接协议。

          • 首先单击 “安装” 按钮,进入 “选择网络功能类型” 对话框后,选择 “服务” 选项,并单击 “添加” 按钮:

          image-20240308225648515

        • 在 “选择网络服务” 窗口单击 “从磁盘安装” 按钮,在虚拟机安装路径下的 VMware Workstation 目录中找到 netbridge.inf 文件,然后点击 “打开” 按钮进行安装:

          image-20240308225902699

        • 安装完成后,在 “VMware Network Adapter VMnet1 属性” 窗口出现了 VMware Bridge Protocol 项,如图所示。

          image-20240308230002621

        • 最后,重新启动计算机并且重启虚拟机,验证网络联通性。假设,主机的 IP 地址为 192.168.1.109,虚拟机的 IP 地址为 192.168.1.111,开发板的 IP 地址为 192.168.1.113。分别通过 ping ip地址命令,验证两两之间是否可以通信。正常情况下是可以互相ping 通,但是如果物理网卡没有连接网线则无法实现通信(开发板与主机采用交叉网线连接)。

2. 共享目录设置

  • 编辑文件/etc/exports,在文件末尾添加/home/nfs 192.168.1.*(rw, sync, no_root_squash)
    • /home/nfs:表示共享给其他主机的共享目录;
    • 192.168.1.*:表示 IP 地址为 192.168.1.(2~254) 的主机都能够挂载/home/nfs 目录;
    • rw:表示挂接此目录的客户机对该目录具有读写的权力;
    • sync:表示同步写入存储器;
    • no_root_squash:表示允许挂接此目录的客户机享有该主机的 root 身份。
  • 修改/etc/exports 配置文件后,应该使配置文件重新生效,执行exportfs –rv
    • -r:重新挂载 /etc/exports 中共享出来的目录;
    • -v:在 export 的时候,显示共享目录信息;
    • -a:全部 mount 或者 unmount /etc/exports 中的内容;
    • -u: 卸载目录
  • 查看共享目录: showmount -a
    • 如果出现错误: showmount: can’t get address for localhost.localdomain,则修改文件/etc/hosts,将::1 localhost.localdomain localhost 修改为 127.0.0.1 localhost.localdomain localhost

3. 启动并挂载NFS

  • 首先需要设置虚拟机防火墙,使之允许 NFS 和 RPC-bing 服务,并且启动RPC-bing 服务;

    image-20240308231323962

  • 然后,分别启动 RPC-bing 服务和 NFS 服务。注意,如果在启动过程中出现“启动 NFS 守护进程失败”等错误提示,则重新计算机后再尝试;

    service rpcbing start 		//服务启动
    service rpcbing restart 	//服务重启
    service nfs start
    service nfs restart
    
  • 在虚拟机上修改共享目录/home/nfs 的权限为 777,并确保 “虚拟机、主机及开发板” 三者可以互相ping通,最后使用 mount 命令在开发板上挂载此目录:

    chmod 777 /home/nfs
    mount –o nolock -t nfs 192.168.1.123:/home/nfs /mnt
    

4. 双网卡挂载NFS

  • 当拥有两张物理网卡时,专门用一张网卡将 ARM 板和虚拟机相连,将两者的 IP 设置在一个 IP 段内。具体过程和单网卡类似,首先做到虚拟机和 ARM 能相互 ping 通,能正常启动 NFS 服务,最后挂载网络文件系统。

  • 在搭建 NFS 时,给出一些错误情况解决的方法:

    • 当启动 NFS 服务失败时,解决的办法通常是修改/etc/exports 文件,出错的原因通常是权限引起的。
    • 当出现 RPC 等报错时,应该注意防火墙是否关闭。
    • 当挂载 NFS 时,出现 Permission denied 报错时,检查/etc/exports 文件中的权限设置,另外检查共享目录的权限设置。
  • 在挂载过程时,给出一些错误情况解决的方法:

    • mount: RPC: Timed out:该问题是由主机的防火墙引起的,关闭了虚拟机的防火墙后请注意,主机的防火墙也可能对 RPC 的包进行拦截。遇到此类问题时,请读者注意虚拟机和主机两者的防火墙是否关闭。

    • 在使用 mount -t nfs 192.168.1.123:/home/nfs /mnt 命令挂载时,提示错误:

      rpcbind: server localhost not responding, timed out
      RPC: failed to contact local rpcbind server (errno 5).
      rpcbind: server localhost not responding, timed out
      RPC: failed to contact local rpcbind server (errno 5).
      rpcbind: server localhost not responding, timed out
      RPC: failed to contact local rpcbind server (errno 5).
      
      • 需要将挂载命令修改为:mount –o nolock –t nfs 192.168.1.123:/home/nfs /mnt

(errno 5).
```

    - 需要将挂载命令修改为:`mount –o nolock –t nfs 192.168.1.123:/home/nfs /mnt ` 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLO语义分割标注文件txt还原到图像中

最近做图像分割任务过程中,使用labelme对图像进行标注,得到的数据文件是json,转换为YOLO训练所需的txt格式后,想对标注文件进行检验,即将txt标注文件还原到原图像中,下面是代码: import cv2 im…

我们的一生都是在挤火车。

哈喽,你好啊,我是雷工! 昨天从燕郊坐火车回石家庄,由于赶上元旦假期,所有高铁票都售罄,一张普通火车票,还是一周前就买才买到的。 从燕郊站,到北京站,然后地铁去北京西站…

vulhub中Weblogic WLS Core Components 反序列化命令执行漏洞复现(CVE-2018-2628)

Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。 访问http://your-ip:7001/consol…

多模太与交叉注意力应用

要解决的问题 对同一特征点1从不同角度去拍,在我们拿到这些不同视觉的特征后,就可以知道如何从第一个位置到第二个位置,再到第三个位置 对于传统算法 下面很多点检测都是错 loftr当今解决办法 整体流程 具体步骤 卷积提取特征,…

数据库系统概论(超详解!!!) 第三节 关系数据库

1.基本概念 1. 域(Domain) 域是一组具有相同数据类型的值的集合。 2. 笛卡尔积(Cartesian Product) 给定一组域D1,D2,…,Dn,允许其中某些域是相同的。 D1,D2…

算法学习之动态规划DP——背包问题

一、01背包问题 (一)题目 有 N 件物品和一个容量是 V的背包。每件物品只能使用一次。 第i件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值…

牛客周赛 Round 36 解题报告 | 珂学家 | 状态DP + 构造 + 9棵树状数组

前言 整体评价 今天相对容易,E的构造题,感谢出题人极其善意的Case 1, 算是放水了。F题是个很典的结论题,由于存在动态点修改,所以引入树状数组做区间和的快速计算。 A. 小红的数位删除 题型: 签到 s input()print (s[:-3])B. …

状态机高阶讲解-02

261 00:11:22,483 --> 00:11:25,260 或依赖于这个,在这里表达 262 00:11:26,780 --> 00:11:30,000 Moore是说什么,在这里表达 263 00:11:30,280 --> 00:11:30,523 264 00:11:30,523 --> 00:11:33,443 在状态里表达,状态的什么 …

【Python】新手入门:全局变量和局部变量的概念、区别以及用法

【Python】新手入门:全局变量和局部变量的概念、区别以及用法 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈…

ABC 344

ABC 344 ABC用python写代码会比较快 A 题可以积累简洁的写法&#xff1a; S input() a, b, c S.split(|) print(ac)#include<bits/stdc.h> using namespace std; int main(){string s;cin >> s;int x s.find("|"); // The first occurrence of | w…

登录凭证------

为什么需要登录凭证&#xff1f; web开发中&#xff0c;我们使用的协议http是无状态协议&#xff0c;http每次请求都是一个单独的请求&#xff0c;和之前的请求没有关系&#xff0c;服务器就不知道上一步你做了什么操作&#xff0c;我们需要一个办法证明我没登录过 制作登录凭…

有源电桥电路

有源电桥电路 有源电桥由A3运放的正向输入端与负向输入端电压相等且为零可知&#xff1a;G点&#xff08;待测阻抗Zx与被测阻抗Rs的连接点&#xff09;电平一直为零&#xff0c;也就是平衡点虚地点&#xff0c;Ux与Us也就变成参照虚地点的绝对相量电压。并且根据运放的虚断原理…

FFmpeg——开源的开源的跨平台音视频处理框架简介

引言&#xff1a; FFmpeg是一个开源的跨平台音视频处理框架&#xff0c;可以处理多种音视频格式。它由Fabrice Bellard于2000年创建&#xff0c;最初是一个只包括解码器的项目。后来&#xff0c;很多开发者参与其中&#xff0c;为FFmpeg增加了多种新的功能&#xff0c;例如编码…

U盘秒变“零字节”?数据恢复全攻略!

一、遭遇U盘“零字节”危机 在数字化时代的浪潮中&#xff0c;U盘凭借其便携性和大容量&#xff0c;早已成为我们工作和生活中不可或缺的数据存储工具。然而&#xff0c;有时我们可能会突然遭遇一个令人头疼的问题——U盘显示0字节。明明前一天还存满了重要的文件&#xff0c;…

Android视角看鸿蒙第四课(module.json中的各字段含义之descriptionmainElement)修改程序入口

Android视角看鸿蒙第三课(module.json中的各字段含义之description&mainElement) 前言 上编文章了解了module.json中的name和type两个字段的含义及变更字段需要注意的事项&#xff0c;也明白了如何去实现类似Android library的功能。 这篇文章继续了解module.json中的des…

指针总结及例题总结

1 定义 指针是用来存放地址的变量 不同类型的指针变量所占用的存储空间是相同的&#xff0c;sizeof(int)sizeof(char)sizeof(double)... *是解引用操作符&#xff0c;&是取地址操作符&#xff0c;两者有着抵消作用 int a20;int* p&a;*p*&a20; 2&#xff0c;…

【C++11】包装器和bind

文章目录 一. 为什么要有包装器&#xff1f;二. 什么是包装器&#xff1f;三. 包装器的使用四. bind 函数模板1. 为什么要有 bind &#xff1f;2. 什么是 bind ?3. bind 的使用场景 一. 为什么要有包装器&#xff1f; function 包装器&#xff0c;也叫作适配器。C 中的 funct…

Vue.js计算属性:实现数据驱动的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

RESTful API学习

RESTful API REST&#xff08;英文&#xff1a;Representational State Transfer&#xff0c;简称REST&#xff0c;直译过来表现层状态转换&#xff09;是一种软件架构风格、设计风格&#xff0c;而不是标准&#xff0c;只是提供了一组设计原则和约束条件。它主要用于客户端和…

光伏数字化管理平台:驱动绿色能源革命的智能化引擎

随着全球对可再生能源需求的不断增长&#xff0c;光伏产业已经成为推动绿色能源革命的重要力量。在这个背景下&#xff0c;光伏数字化管理平台应运而生&#xff0c;以其强大的数据处理、实时监控和智能优化功能&#xff0c;为光伏电站的运营管理和维护带来了革命性的变革。 光伏…