在安装NFS前将虚拟机设置成NAT方式,保证虚拟机能够正常上网
一NFS安装
NFS安装
在主机上安装NFS服务软件,因为Debian/Ubuntu上默认是没有安装的。
1、安装端口映射器portmap(可选)
$ sudo apt-get install portmap
2、在终端提示符后键入以下命令安装NFS服务器
$ sudo apt-get install nfs-kernel-server
3、安装NFS客户端(可选)
$ sudo apt-get install nfs-common
注意:nfs- kernel-server和nfs-common都依赖于portmap。另外,在一些文档中提出还需要使用apt-get来
手动安装NFS的客户端nfs-common,以及端口映射器portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时,apt会自动把它们安装好。
这样,宿主机就相当于NFS Server。同样地,目标系统作为NFS的客户端,需要安装NFS 客户端程序。如果是Debian/Ubuntu系统,则需要安装nfs-common(第3步)。
二.NFS配置
虚拟机安装vim命令2.1 配置portmap
$sudo dpkg-reconfigure portmap,出现“正在设定portmap”软件包设置界面,对Should portmap be bound to the loopback address?选择“否(No)”。
2.2 配置/etc/hosts.deny
$Vim /etc/hosts.deny
禁止任何host(主机)能和你的NFS服务器进行NFS连接。在该文件中加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
3、配置/etc/hosts.allow
$vim /etc/hosts.allow
允许那些你想要的主机和你的NFS服务器建立连接。
下列步骤将允许任何IP地址以192.168.1开头的主机连接到NFS服务器上,具体要看你目标板的端口地址,也可以指定特定的IP地址。在该文件中加入:
### NFS DAEMONS
portmap: 192.168.1.
lockd: 192.168.1.
rquotad: 192.168.1.
mountd: 192.168.1.
statd: 192.168.1. #此处的IP可根据自己设定的IP修改
通过/etc/hosts.deny和/etc/hosts.allow设置对portmap的访问,采用这两个配置文件有点类似"mask"的意思。先在/etc/hosts.deny中禁止所有用户对portmap的访问,再在/etc/hosts.allow 中允许某些用户对portmap的访问。
然后重启portmap daemon:
$ sudo /etc/init.d/portmap restart
4、配置/etc/exports
$vim /etc/exports
(1)共享的NFS目录在/etc/exports中列出,这
个文件控制对目录的共享(NFS挂载目录及权限由该文件定义),书写规则是每个共享为一行)。
格式:[共享目录] [主机名或IP](参数,参数...)
第一个参数是要让客户机访问的目录,第二个是你允许的主机IP,最后的()内是访问控制方式。
注意:客户端可以使用主机名或者IP地址指定,在主机名中可以使用通配符(*),IP地址后也可以跟掩码段(/24),但出于安全原因这种情况应该尽量避免。客户端的说明后可在圆括号中加入一系列参数。很重要的一点,不要在最后一个客户端声明的后面留下任何空白或者没关闭括号,因为空白都被解释成客户端的分隔符。
例如我要将/opt/FriendlyARM/mini2440/root_nfs目录让用户的IP共享,则在该文件末尾添加下列语句:
/opt/FriendlyARM/mini2440/root_nfs *(rw,sync,no_root_squash)
其中:
/opt/FriendlyARM/mini2440/root_nfs 表示NFS共享目录,它可以作为开发板的根文件系统通过NFS挂接;
* 表示所有的客户机都可以挂接此目录;
rw 表示挂接此目录的客户机对该目录有读写的权力;
sync 表示所有数据在请求时写入共享,即数据同步写入内存和硬盘;
no_root_squash 表示允许挂接此目录的客户机享有该主机的root身份。
注意:可以用主机名来代替*,尽量指定主机名以便使那些不想其访问的系统不能访问NFS 挂载的资源。另外,最好加上sync, 否则$ sudo exportfs -r时会给出警告,sync是NFS的默认选项。
(2)查看NFS Server的export list:
$ sudo showmount -e
若更改了/etc/exports,运行以下命令进行更新:
$ sudo exportfs -rv
然后重启NFS服务:
$ sudo /etc/init.d/nfs-kernel-server restart
启动和停止NFS服务
1、启动NFS的方法和启动其他服务器的方法类似,首先需要启动portmap和NFS这两个服务,并且portmap服务一定要先于NFS服务启动。
$ sudo /etc/init.d/portmap start
$ sudo /etc/init.d/nfs-kernel-server start
2、停止NFS服务
在停止NFS服务的时候,需要先停止NFS服务再停止portmap服务,如果系统中还有其他服务需要使用portmap服务,则可以不停止portmap服务。
$ sudo /etc/init.d/nfs-kernel-server stop
$ sudo /etc/init.d/portmap stop
3、重新启动portmap和NFS服务
$ sudo /etc/init.d/portmap restart
$ sudo /etc/init.d/nfs-kernel-server restart
4、检查portmap和NFS服务状态
$ sudo /etc/init.d/portmap status(不知原文是否有误,我的ubuntu上portmap貌似没status这个命令参数)
$ sudo /etc/init.d/nfs-kernel-server status
配置宿主机的IP
配置宿主机的IP,在命令行中输入# ifconfig 来查看本机的IP地址。如果没有设置,可以用命令# ifconfig eth0 192.168.0.18 来设置IP。其中的IP地址可以根据具体情况来设定。设定完成后在通过ifconfig来再次查看是否已经设定成功。
2.3 启动宿主机NFS服务
安装完NFS服务后就可以通过# /etc/init.d/nfs-kernel-server restart (/etc/init.d/nfs-kernel-server start)来重新开启网络文件系统服务,以便后面的开发板挂载。也可以通过# /etc/init.d/nfs-kernel-server stop来停止。
3 目标板的挂载操作
给你的目标机上电,目标板上的Linux操作系统起来以后,在PC机上Ubuntu操作系统上打开minicom,通过串口向目标板发送shell命令。
像主机操作一样,首先检查目标板(客户机)的IP是否与宿主机的IP再同一个地址段上,否则用上面用过的命令进行检查和设置本地IP。
设置完IP之后可以ping一下检查网卡、网线是否连接正确。
既在minicom中输入# ping 192.168.0.18 (主机IP地址)连接成功会不断的打印信息。
接下来就是在开发板上进行挂载mount
# mount -t nfs -o nolock 192.168.0.18:/ /mnt
其中:后是客户机挂载的共享目录;/mnt是开发板的挂载目录
OK,挂在完成。
通过
# cd /mnt
# ls
可以发现主机的根目录被挂载进了开发板mnt目录中。
如果你想取消挂在可以使用命令# umount /mnt就可以了。
NFS挂载$mount -t nfs -o nolock 192.168.1.18:/opt/FriendlyARM/program /mnt/
前面部分是主机共享的实际目录,后面是客户机访问的目录
注意:完成第4步后,nfs的基本配置就已经完成。为了让虚拟机能够正常提供nfs服务,需要将虚拟机的网络方式修改为桥接方式,然后将虚拟机的ip设置成与主机的ip段(目标板的ip段)在同一个ip段中。保证虚拟机、目标板和主机之间可以相互ping通。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论