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