ROS主机搭建NFS服务器,虚拟机通过挂载访问及修改主机文件

news2024/12/27 18:32:33

   本文主要介绍在ROS主机中搭建NFS服务器,虚拟机(从机)通过nfs挂载的方式访问及修改主机中文件的方法


   一、ROS主机NFS服务器搭建:

   若机器人配有显示屏,此部分可直接在机器人上操作,否则,可通过SSH远程登录的方式,在虚拟机上进行远程登录后操作,下面以要共享的文件夹及其目录为/home/learningx/qingzhou_ws进行详细介绍。

   1、使用以下指令在机器人中安装nfs服务端

sudo apt-get install nfs-kernel-server

在这里插入图片描述

   2、使用以下指令创建要共享的目录文件夹

sudo  mkdir  -p  /mnt

在这里插入图片描述

   3、编辑配置文件

   (1)添加NFS共享目录(以nano板为例)

sudo nano /etc/exports 

   此步若报错:sudo: nano: command not found,说明缺少nano包,使用以下指令安装后,再重新运行sudo nano /etc/exports

sudo apt-get install nano

在这里插入图片描述

   然后,在exports 中添加要进行NFS共享的文件夹目录,大家根据需要进行添加即可,下面的指令的例子是将/home/learningx/目录下的文件夹qingzhou_ws 作为共享文件夹

/home/learningx/qingzhou_ws  *(rw,sync,no_root_squash)

   完成编辑(更改)后,按下 ctrl + x 组合键退出 nano 编辑器,返回终端,在退出前它也会询问你是否要对更改进行保存,按下Y键保存修改。(若按下N键则不保存修改)

   (2)依次输入以下指令给挂载的目录设置权限以及修改文件用户

sudo chmod  -R  777  /home/learningx/qingzhou_ws
sudo chown  -R  777  /home/learningx/qingzhou_ws

   4、依次使用以下指令启动NFS服务和重启NFS服务

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

   5、验证NFS服务器是否成功搭建

   输入以下指令进行共享文件夹挂载,其中192.168.1.120是机器人的IP地址

sudo  mount  -t  nfs  -o  nolock  192.168.1.120:/home/learningx/qingzhou_ws  /mnt

   然后,使用cd /mnt 指令进入到mnt文件夹下查看是否存在qingzhou_ws 文件夹内的文件,进行验证NFS服务器是否成功搭建。

在这里插入图片描述


   二、搭建虚拟机上的客户端

   1、使用以下指令安装nfs-utils和portma包

sudo apt-get install nfs-common portmap

   2、使用以下指令创建一个提供挂载的目录

sudo mkdir /mnt/mount_nfs

   注:该文件夹存在于计算机目录下,跟home文件夹在同目录下,因此,不要在主目录中进行寻找。

在这里插入图片描述


   三、虚拟机通过挂载访问及修改主机文件

   在虚拟机的终端输入以下指令进行nfs挂载,其中192.168.1.120是机器人的IP地址。

sudo mount -t nfs 192.168.1.120:/home/learningx/qingzhou_ws /mnt

   此时,就可以在虚拟机中的mnt文件夹内对机器人中的qingzhou_ws 文件夹内的内容进行查看以及修改了。

   可使用以下指令解除nfs挂载

sudo umount -t nfs 192.168.1.120:/home/learningx/qingzhou_ws /mnt

   此时,就可以发现虚拟机的mnt文件夹内已经没有qingzhou_ws 中的文件了

在这里插入图片描述


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

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

相关文章

java 一文讲透API [常用类 + 常用工具](20万字博文)

目录 一、前言 二、API 简介 1.什么是API? 2.java中组件的层次结构 : 3.什么是模块 三、API(常用类) 1.Object类 2.String类 3.StringBuilder 和 StringBuffer类 4.Math类 和 System类 5.Date 和 Calender类 6.八大包装类 7.常用类补充 —— Arra…

案例分享 | 汽车电机控制箱螺钉浮高检测

电机控制器是通过主动工作来控制电机按照设定的方向、速度、角度、响应时间进行运动的集成电路,日常生活中的洗衣机、冰箱、印刷机等设备都需要电机控制器来控制其运行工作,是各种机械设备中不可或缺的部件。 在电动车辆中,电机控制器也是关…

C++的类和对象(1)

类和对象 1.面向过程和面向对象的初步认识2.类的引入3. 类的定义 (class关键字)4. 类的访问限定符及封装4.1. 类的访问限定符4.2. 类的封装什么是封装?为什么要封装? 5.类的作用域6.类的实例化 1.面向过程和面向对象的初步认识 C…

LeetCode 1043. 分隔数组以得到最大和

原题链接:1043. 分隔数组以得到最大和 给你一个整数数组 arr,请你将该数组分隔为长度 最多 为 k 的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。 返回将数组分隔变换后能够得到…

巧用千寻位置GNSS软件| 线路施工放样应用技巧

线路施工放样主要是解决线路工程和水利工程施工中,线路及渠道中线和边坡施工放样编辑的专用程序。千寻位置GNSS软件中完成线路施工放样可按照下述步骤操作。 点击【测量】->【线路施工放样】,选择一条线路放样,如图 5.6-1所示。 图 5.6-1…

跟姥爷深度学习4 从数学计算看神经网络

一、前言 我们前面简单的做了一个气温预测,经过反复调试,效果还不错。实际上在这个方向上我们还可以更进一步优化,但因为我们是学习嘛,主要还是看广度而不是深度。考虑到后面要开始学习卷积网络,我们必须把更基础的内…

打印流,Properties类

打印流只有输出流,没有输入流 package com.hspedu.printstream;import java.io.IOException; import java.io.PrintStream;/*** author 韩顺平* version 1.0* 演示PrintStream (字节打印流/输出流)*/ public class PrintStream_ {public stat…

网络安全-网站漏洞扫描器

网络安全-网站漏洞扫描器 网站漏洞扫描器是用来扫描对方网站可能存在哪些漏洞的工具,我们可以借助网站漏洞扫描器来当作辅助作用去检测对方网站的漏洞。下面我们来介绍一款常用、好用的漏洞扫描器–AWVS。 AWVS 先说缺点-这玩意简称漏扫,你一旦发送&a…

IPSEC相关知识点

1.什么是数据认证,有什么作用,有哪些实现的技术手段? 数字认证证书它是以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的安全性、完整性。 使用了数字证书,即使您发送的…

(PCB系列七)PCB差分信号布线及其要点

1、差分信号的定义 差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相同,相位相反。在这两根线上的传输的信号就是差分信号。信号接收端比较这两个电压的差…

不要老盯着ChatGPT,这几家公司的产品同样不容小觑

Adept.ai 2022 年成立,致力于一款能够代替人类使用电脑、操控软件的AI助手,旗下模型 ACT-1 还处于雏形阶段,但根据官方示例,已经可以完成通过自然语言指令完成特定的任务。公司创始人曾任OpenAI的工程副总裁,后来进入谷…

前端开发APP应该采取什么框架?

近十年,随移动网络在人们生活中的不断渗透以及线上服务需求的不断提升,人们对于桌面应用、APP、小程序、物联网终端设备等的需求不断提升。据公开数据显示,2022年,小程序数量已超550万;工信部数据显示,截止…

会议回顾!2023机器视觉在线研讨会圆满结束

4月20日下午,持续两小时的“融合生态,让制造与视俱进”2023机器视觉在线研讨会圆满结束,此次会议联合机器视觉产业链上中下游厂商,共同分享工业机器视觉领域最新技术和应用案例,专题讲解与观众问答相互交织&#xff0c…

OpenAI API调用

上次简单写了一篇对ChatGPT的一些看法,最近想深入研究一下。 极客时间上有个课程《AI大模型之美》,看了一下还可以。当做入门是不错的,但还是有很多细节可以打磨,不过毕竟是在风口上的课,也能接受。 本次演示如何调用…

【小知识点总结】Java中的split函数的用法(二)

一、String.split()函数有两种形式 split(String regex) 会默认忽略字符串后面的分隔符split(String regex,int limit) regex:可以是字符串或者正则表达式 limit:可以限制返回的数组的元素个数,当其值为-1时,表示任意大小 // s.split("-")会忽…

阿赵的MaxScript学习笔记分享十五《MaxScript界面的进阶应用》

MaxScript学习笔记目录 大家好,我是阿赵,之前介绍过MaxScript的各种UI控件的用法,这次介绍一些稍微复杂一点的用法。 一、例子介绍 这次要做的例子,有一部分是使用了dotNet的UI控件,一部分是MaxScript自带的UI用法&a…

理解Vuex【Vue】

5. vuex 5.1 理解vuex 5.1.1 vuex是什么 概念:专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式&#x…

AI风范,院士点赞丨北京人工智能峰会暨AI金雁奖颁奖典礼成功举办,实在智能再获AI金雁奖

4月14日,由中国电子商会人工智能委员会主办,中国创业者俱乐部、北京集智未来人工智能产业创新基地联合主办的“2023北京人工智能峰会暨AI金雁奖颁奖典礼”举行,汇聚了人工智能各领域的产学研专家、院士、人工智能企业代表近300人,…

Jenkins自动拉取SVN源代码构建打包vue前端项目

目录 1.功能需求 2.安装插件 2.1 安装NodeJS插件 2.2 安装SVN插件 3.配置环境 3.1 NodeJS环境 4.新建任务配置部署信息 4.1 源代码管理 4.2 构建触发器 4.3 构建环境 4.4 构建步骤 5.构建项目 5.1 点击查看控制台日志 1.功能需求 使用Jenkins从SVN上拉取Vue项…

C#基础学习--异步编程

什么是异步 启动程序时,系统会在内存中创建一个新的进程。进程是构成运行程序的资源的集合。进程是构成运行程序的资源的集合。这些资源包括虚地址空间,文件句柄和许多其他程序运行所需的东西 在进程内部,系统创建了一个称为线程的内核&…