本文主要介绍在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 中的文件了