NFS网络文件挂载【虚拟机到开发板】

news2024/11/25 7:05:19

注意:首先要确保虚拟机和开发板之间可以互相访问,即配置桥接网卡,如果在同一个网段下但是无法ping通可能是防火墙的问题。可以查看博文解决:vmware虚拟机设置双网卡

注意:当前虚拟机版本为18.04,若虚拟机版本过高可能会出现其他问题,可以查看该博文解决:Ubuntu22.04虚拟机通过NFS连接开发板

什么是 NFS 协议?

  • NFS(Network File System)称为网络文件系统, 实现了一个跨越网络的文件访问功能,如下图可以简要说明其原理。其整个架构为 Client-Server 架构,客户端和服务端通过 RPC 协议进行通信,RPC 协议可以简单的理解为一个基于 TCP 的应用层协议,它简化命令和数据的传输。NFS 最大的特点是将服务端的文件系统目录树映射到客户端,而在客户端访问该目录树与访问本地文件系统没有任何差别,客户端并不知道这个文件系统目录树是本地的还是远在另外一台服务器
    在这里插入图片描述

设置NFS的好处

  • 在 NFS 服务器上编译应用软件,客户端(开发板)通过 NFS 访问并运行应用程序进行测试。
  • 把 NFS 作为根文件系统来启动

操作流程

1. 在虚拟机上安装NFS:

sudo apt-get install nfs-kernel-server rpcbind

2. 在虚拟机上新建文件夹,并开通访问权限

在用户目录下创建共享文件夹

cd /home/book
mkdir nfs_rootfs

修改etc/exports文件 ,添加最后一句话

sudo vim /etc/exports

在这里插入图片描述

  • 前面的是可以被挂载的ubuntu文件地址,设置为用户目录下所有文件都可以被挂载,灵活性较大,也可以设置只挂载home/book/nfs_rootfs

  • *表示局域网下的任务地址都可以挂载该虚拟机的共享文件夹,等同于192.168.1.0/24,如果要指定ip地址则按照如下格式替换:192.168.1.230/24,其中24表示子网掩码255.255.255.0

  • rw: 表示客户机的权限,rw 表示可读写,具体的权限还受文件系统的 rwx 及用户身份影响。

  • async 则代表数据会先暂存于内存当中,而非直接写入硬盘

  • no_subtree_check:不检查子目录权限,默认配置。

  • no_root_squash:客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行

重启服务

sudo /etc/init.d/nfs-kernel-server restart

3. 查看是否启动NFS服务

在虚拟机终端输入

ps -A | grep nfs

输出结果
在这里插入图片描述

  • d表示服务

查看服务器端 NFS 共享情况

showmount -e

输出结果

在这里插入图片描述

4. 在开发板上安装NFS:

  • 安装nfs客户端
sudo apt install nfs-common -y 

5. 把ubuntu里面的某个目录挂载在开发板

5.1 查看 NFS 服务器共享目录

  • 在开发板上执行 showmount -e +“NFS 服务器 IP 命令。注意在不同网络环境下,NFS 服务器 IP 可能不一样,以实际情况为准。例如
showmount -e 192.168.1.10

输出结果如下

在这里插入图片描述

5.2 临时挂载

mount -t nfs -o nolock,vers=3 192.168.xxx.xxx:/home/book/nfs_rootfs /mnt
  • -t nfs:指定挂载的文件系统格式为 nfs。
  • 其中ip地址是虚拟机的桥接网卡地址

5.3 长久挂载

  • 设置开机自动挂载,编辑 vi /etc/profile文件
  • 把上条指令输入到末尾 保存重启或直接执行:source /etc/profile

5.4 取消挂载

  • 当客户机在网络上无法找到 NFS 共享的目录时,如开发主机关机时,在 NFS 的客户机 的终端常常会输出一些提示,或在使用 ls 命令查看共享目录会导致长时间等待,这时可以对目录使用 umount 命令取消挂载,示例如下:
sudo umount /mnt
  • 使用该命令时以要取消挂载的目录作为参数即可,没有输出表示执行正常。如果 在当前挂载的目录进行 umount 操作,会提示 “device is busy”。建议取消挂 载时,先切换到家目录 “~”,在进行 umount 操作

其他文件共享方式

  1. 使用 FileZilla 在 在 Windows 和开发板之间传文件
  2. 使用共享文件夹,只能在windows和虚拟机之间
  3. 使用 TFTP 服务传输文件
  • 在 Ubuntu 中执行以下命令安装 TFTP 服务:
    sudo apt-get install tftp-hpa tftpd-hpa
    然后,创建 TFTP 服务器工作目录,并打开 TFTP 服务配置文件,如下:
    mkdir -p /home/book/tftpboot
    sudo chmod 777 /home/book/tftpboot
    sudo vim /etc/default/tftpd-hpa
    在配置文件/etc/default/tftpd-hpa 中,添加以下字段:
    TFTP_DIRECTORY="/home/book/tftpboot"
    TFTP_OPTIONS="-l -c -s"
    最后,重启 TFTP 服务:
    sudo service tftpd-hpa restart
    查看 tftp 服务是否在运行,运行如下命令,即可查看是否在后台运行。
    ps -aux | grep “tftp”

  • 开发板通过 tftp 传输文件
    下载zImage文件,会直接下载在当前路径
    tftp -g -r zImage 192.168.5.11
    上传文件到ubuntu,成功不会有提示
    tftp -p -l 1.txt 192.168.5.11

参考博文:
nfs网络文件系统挂载(虚拟机&开发板)
NFS 网络文件系统 介绍、安装与使用

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

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

相关文章

焊接铁件的一些常识

焊接整体过程 简单来说就是通过各种方式将金属熔化后冷却结合。而焊接过程中一般会有保护气体,例如氩气,二氧化碳。就是常听到的氩弧焊和二保焊。而最常见的是药皮包裹着金属心的焊条,而焊条的药皮就是加热后产生了保护气。弧光是焊条和焊件…

UnaBiz与纵行科技签署战略合作协议 为海量物联共建“融合的LPWAN全球网络”

新加坡、法国、中国,2023年5月30日,UnaBiz和纵行科技签署了战略合作协议,致力于促进“融合的LPWAN全球网络”的发展以实现全球大规模物联网。根据协议,UnaBiz和纵行科技将充分利用各自的网络资源,其中ZETA网络覆盖中国…

走进Linux编程的大门

随着Linux的不断普及,使用Linux的人也越来越多了。然而在Linux中如何进行程序设计,用什么样的开发工具好呢?本文就以我初学Linux编程的一点心得体会,和大家共同探讨。 在Linux中进行程序设计,可以使用各种编程语言和开发工具,以下是一些常用的方法&…

eBay如何实现多账号登录以及防关联?

随着跨境电商的快速发展,亚马逊,eBay已成为人们熟知的电商平台。“不把鸡蛋放在同一个篮子里”,多账号运营店铺有许多显而易见的好处。 但由于亚马逊平台封号状况愈演愈烈,不少卖家把战线转移到了eBay平台。随着入驻人数的增加&a…

windows安装minio

官方下载地址: MinIO | Code and downloads to create high performance object storage 官方快速入门文档: MinIO Object Storage for Windows — MinIO Object Storage for Windows 概述 最近熟悉公司框架,有使用到MinIO,故学习并记录总…

软考A计划-网络规划设计师-核心考点解密

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

性能测试设计阶段

性能测试设计阶段 性能测试是软件测试中的关键环节,它可以帮助我们评估软件系统在压力下的运行稳定性和性能表现。性能测试设计阶段是性能测试的基础,只有经过充分的设计,才能保证性能测试的有效性和准确性。 在性能测试设计阶段,…

C++STL之vector与list

文章目录 关于vector的用法关于List的用法vector和list的区别 关于vector的用法 #include<stdio.h> #include<iostream> #include<string.h> #include<vector> using namespace std;class PtrInt {int* ptr; public:PtrInt(int x 0) :ptr(new int[x]…

海外跨境电商商城源码-进出口电商平台网站-多语言多商户平台

欢迎探讨&#xff0c;名片交流 一、海外跨境电商系统源码包括以下几个部分&#xff1a; 前端&#xff1a;React框架、Bootstrap 后端&#xff1a;Node.js&#xff0c;Express框架、NoSQL数据库 支付系统&#xff1a;Stripe、PayPal等主流支付平台 物流系统&#xff1a;DHL…

idea 打开项目代码出错,但是编译没问题

一、说明 在使用idea的时候发现有时候编译没问题&#xff0c;代码没问题&#xff0c;但是就是项目报红&#xff1b;然后就找了一下解决方法&#xff0c;总结一下然后发一下博客给说明一下吧 二、问题和说明 1.问题 经常出现在pom的引入版本升级和版本依赖有修改 2.解决 2.…

Benewake(北醒) 单点TF系列雷达【通用指令串口助手】使用说明

目录 硬件准备1:连接设备2:串口连接以及读数 常见问题1 连接串口后无数据 硬件准备 1:连接设备 连接『TF系列产品』、『TTL - USB 转接板』和『USB 线』&#xff0c;确保无松动&#xff0c;再将『USB 线』与『电脑』连接。 2:串口连接以及读数 1.打开串口助手&#xff0c;选…

Zabbix 5.0如何升级至6.0?操作文档

Zabbix5.0升级至6.0的认证培训&#xff0c;仅需6小时&#xff08;无需5天&#xff09;点击报名。 感谢本文作者王会新&#xff0c;ZCP-Zabbix高级认证工程师 目录 1.方案说明 2.环境说明 3.Mysql环境部署 3.1 mysql安装 3.2 配置mysql 3.3 创建zabbix库 4.Zabbix Server升…

国产GPU重要应用场景迎来突破!摩尔线程发布重磅产品与创新解决方案

5月31日&#xff0c;摩尔线程举办2023夏季发布会&#xff0c;重磅宣布了一系列新产品与技术更新&#xff0c;涵盖数字办公、娱乐与创作、AI与云计算以及元宇宙等GPU重要应用场景&#xff0c;标志着摩尔线程为用户提供的高品质、易部署、创新性应用型解决方案取得重大进展。 主…

JetBrains的PHP集成开发环境PhpStorm 2023版本在Linux系统的下载与安装配置教程

目录 前言一、PhpStorm安装二、使用配置总结 前言 PhpStorm是一款专为PHP开发人员设计的集成开发环境&#xff08;IDE&#xff09;。它提供了丰富的功能和工具&#xff0c;可以帮助开发人员更高效地编写、调试和部署PHP应用程序。注&#xff1a;已在CentOS7.9和Ubuntu20.04安装…

【开发心得】一招减少msdtc时间3分钟,但还有未解之谜

最近解决了一个诡异的问题&#xff0c;MSDTC默认超时造成事务被取消&#xff0c;业务被迫中断&#xff0c;好在没有一直跟MSDTC耗着&#xff0c;而是通过其他方式解决了&#xff0c;但最后还是留下了两个未解之谜。对用到MSDTC处理SQL事务的朋友应该有借鉴作用&#xff0c;欢迎…

uniapp滚动加载 下拉刷新

前言 在日常开发中&#xff0c;滚动加载和下拉刷新是非常常见的功能&#xff0c;页面数据过多时&#xff0c;需要滚动加载优化性能&#xff0c;本篇技术分享博客将介绍如何在uniapp中实现滚动加载和下拉刷新。 预览 滚动加载 下拉刷新 一、滚动加载 滚动加载指的是当用户滑…

LINUX系统编程-----上

文章目录 第一章 linux系统介绍(属于扯闲篇)linux的概况linux的历史起源unixPosix标准和其他标准开源运动linux的诞生 linux使用使用范围linux的登录 第二章 linux常用命令linux的shell使用切换用户显示所有用户退出当前用户添加用户 删除用户当前工作目录当前工作目录下的所有…

chatgpt赋能python:Python交换位置:如何快速交换列表中的元素

Python交换位置&#xff1a;如何快速交换列表中的元素 介绍 Python作为一种强大且易于学习的编程语言&#xff0c;一直受到广大开发者的喜爱和选择。而在Python编程中&#xff0c;往往需要对列表中的元素进行交换操作。那么&#xff0c;在本文中&#xff0c;我们将探讨Python…

u-boot启动流程分析-史上最全最详细

嗨喽&#xff0c;大家好&#xff0c;我是程序猿老王&#xff0c;程序猿老王就是我。 今天给大家全面的分析一下u-boot启动流程。整理这篇文章花费时间较长&#xff0c;中间很长时间未更新&#xff0c;希望这篇文章对大家有所帮助。 本章主要是详细的分析一下uboot的启动流程&am…

摆脱低工资!80%的高薪人会的动态大屏技巧,工具和教程都给你!

在汇报上下功夫已经是职业人基本的素养&#xff0c;看了某鹅厂的产品组朋友做的汇报才知道他们已经卷到了这种程度&#xff01;把静态的图表和文字&#xff0c;图片做成了3D动画&#xff0c;你别说&#xff0c;真就很出彩&#xff01;既有产品的仿真&#xff0c;又有数据的支撑…