FS,我们创建NFS的目的是通过网络对外提供目录文件共享服务。NFS的原理是在客户端通过网络将远程主机共享文件系统以挂载(mount)的方式加入本机的文件系统,之后的操作就如同在主机上一样。
正因为ubuntu nfs是一个RPC(Remote Procedure Call Protocol远程过程调用协议服务程序), 所以在使用它之前, 先要映射好端口——通过portmap设定. 比如: 某个Ubuntu nfs client发起Ubuntu nfs服务请求时, 它需要先得到一个端口(port). 所以它先通过portmap得到port number. (不仅Ubuntu nfs, 所有的RPC服务程序启动之前, 都需要设定好portmap)
正因为ubuntu nfs是一个RPC(Remote Procedure Call Protocol远程过程调用协议服务程序), 所以在使用它之前, 先要映射好端口——通过portmap设定. 比如: 某个Ubuntu nfs client发起Ubuntu nfs服务请求时, 它需要先得到一个端口(port). 所以它先通过portmap得到port number. (不仅Ubuntu nfs, 所有的RPC服务程序启动之前, 都需要设定好portmap)
主机端常用软件:nfs-kernel-server 客户端常用软件:nfs-common(在sudo
apt-get install nfs-kernel-server的时候就安装上了)
1. 在主机端安装nfs-kernerl-server
sudo apt-get install nfs-kernel-server ( 内部包含了nfs-common客户端)
2. 修改/etc/exports 文件,该文件控制本地有哪些目录是可以通过nfs来访问的,且同时设置了访问的权限
gedit /etc/exports
在最后一行加上 / nfsbooot *(rw,sync,no_root_squash)
其中 /nfsbooot 是欲通过网络文件系统访问的目录 ,* 表示所有的客户端都可以访问
rw表示客户端访问权限
3 通过 /etc/init.d/nfs-kernel-server status 查看该服务是否开启
1. 在主机端安装nfs-kernerl-server
sudo apt-get install nfs-kernel-server ( 内部包含了nfs-common客户端)
2. 修改/etc/exports 文件,该文件控制本地有哪些目录是可以通过nfs来访问的,且同时设置了访问的权限
gedit /etc/exports
在最后一行加上 / nfsbooot *(rw,sync,no_root_squash)
其中 /nfsbooot 是欲通过网络文件系统访问的目录 ,* 表示所有的客户端都可以访问
rw表示客户端访问权限
3 通过 /etc/init.d/nfs-kernel-server status 查看该服务是否开启
若没有开启可通过 /etc/init.d/nfs-kernel-server start 开启 或/etc/init.d/nfs-kernel-server
restart重启
对nfs-common 客户端的服务程序可以采用同样的操作。
4 可以通过以下命令查看是否能成功的运行nfs服务器端
Mount –t nfs localhost(或本机IP):/nfsbooot /mnt
如果没有出现错误,则可以在/mnt 目录中访问 nfsbooot 目录了。(本操作仍然在主机上进行 )
5 然后连接开发板,不接USB线,(在虚拟机中没有对应的USB下载驱动,可能报错) 设置从NAND FLASH启动
6. 设置虚拟机和开发板的ip地址,在此步骤需要注意以下问题:
对nfs-common 客户端的服务程序可以采用同样的操作。
4 可以通过以下命令查看是否能成功的运行nfs服务器端
Mount –t nfs localhost(或本机IP):/nfsbooot /mnt
如果没有出现错误,则可以在/mnt 目录中访问 nfsbooot 目录了。(本操作仍然在主机上进行 )
5 然后连接开发板,不接USB线,(在虚拟机中没有对应的USB下载驱动,可能报错) 设置从NAND FLASH启动
6. 设置虚拟机和开发板的ip地址,在此步骤需要注意以下问题:
6.1 设置虚拟机与本地机的网络模式为桥接
7. 在开发板中挂载nfs文件系统: mount –t nfs –o nolock 192.168.1.100:/nfsboot /mnt
8. 测试,在虚拟机中的/nfsboot中建立 一个文件, 在开发板中很好的很快的出现了。
6.2 开发板与本地机的连接用交叉网线
6.3 设置本地机,虚拟机,开发板的网络在同一个网段中
在这里我设置为(本地机:192.168.1.101 虚拟机:192.168.1.100 开发板:192.168.1.20)
此外,还需要关闭虚拟机的防火墙。完成后可以用ping 192.168.1.100和虚拟机通信成功。7. 在开发板中挂载nfs文件系统: mount –t nfs –o nolock 192.168.1.100:/nfsboot /mnt
8. 测试,在虚拟机中的/nfsboot中建立 一个文件, 在开发板中很好的很快的出现了。
在安装过程中,在防火墙没有关闭之前,出现了连接不通的情况,终端报错:mount: RPC: Unable to receive; errno = No route to host