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


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

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

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

sudo apt-get install nfs-kernel-server

android 作为nfs 服务端_NFS

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

sudo  mkdir  -p  /mnt

android 作为nfs 服务端_android 作为nfs 服务端_02

3、编辑配置文件

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

sudo nano /etc/exports

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

sudo apt-get install nano

android 作为nfs 服务端_服务器_03

然后,在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服务器是否成功搭建。

android 作为nfs 服务端_服务器_04


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

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

sudo apt-get install nfs-common portmap

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

sudo mkdir /mnt/mount_nfs

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

android 作为nfs 服务端_从机访问主机文件_05


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

在虚拟机的终端输入以下指令进行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 中的文件了

android 作为nfs 服务端_linux_06