1.简介
(1)NFS为Netword File System的简称,是基于UDP/IP协议的应用。
(2)NFS的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件,可以通过NFS挂载远程主机的目录,访问该目录就想访问本地目录一样,所以也可以简单地将它看做是一个文件服务器。
(3)通过NFS服务,我们可以实现在线调试文件系统或应用程序,而不用像传统的方式生成文件系统镜像。通过NFS可以提高我们的调试效率。
2.搭建NFS服务器
(1)宿主机
① 安装Ubuntu NFS服务:apt-get install nfs-kernel-server
PS:安装过程弹出对话,选择Y,回车继续安装
② 配置/etc/exports
在文件的最后一行添加/home/linux/ *(rw,sync,no_root_suqash) (*表示所有IP都可以访问,也可以设定固定IP)。
常见参数选项参数含义rw可读写的权限ro只读的权限no_root_squashNFS客户端分享目录使用者的权限,即如果客户端使用的是root用户,那么对于这个共享的目录而言,该客户端就具有root的权限sync资料同步写入到内存与硬盘当中async资料会先暂存于内存当中,而非直接写入硬盘
③重启portmap服务:service portmap start 或 /etc/init.d/portmap restart
④重启nfs服务:/etc/init.d/nfs-kernal-server restart
(2)目标板:目标板内核需要配置nfs服务
①进入内核目录并进入配置界面:make menuconfig
-> Networking support
-> Networking options
-> IP:kernel level autoconfiuration
②返回第一级目录
-> File systems
-> Network File Systems
-> NFS clent support
-> NFS client support for NFS version 3
-> NFS client support for the NFSv3 ACL protocol extension
-> NFS client support for NFS version4
-> NFS client support for NFSv4.1
-> Root file system on NFS
③返回第一级目录
-> Boot options
-> Default kernel command
配置:root=/dev/nfs rw nfsroot=192.168.1.103:/home/linux //连接下一行
ip=192.168.1.230:192.168.1.103:192.168.1.1:255.255.255.0 //连接下一行
:iTOP:eth0:off rootfstype=ext4 init=/linuxrc console=ttySAC2,115200
注释:
⑴ root=/dev/nfs rw nfsroot=192.168.1.103:/home/linux 表示挂载的nfs服务器地址是192.168.1.103,挂载的目录是/home/linux
⑵ ip=192.168.1.230:192.168.1.103:192.168.1.1:255.255.255.0:iTOP:eth0:off 第一个IP表示开发板IP地址,第二个IP表示nfs服务器的ip,第三个是开发板的网关,第四个是子网掩码
⑶ iTOP是开发板主机名,eth0是网卡设备的名称
PS:到此,nfs客户端和服务器端环境搭建完毕,在客户端可以使用mount命令将宿主机上的目录挂载到本地目录,命令如下:
mount -t nfs -o nolock 192.168.1.103:/home/linux /mnt/nfs