概述
NFS:Network File System(网络文件系统),NFS只是一种文件系统,本身并没有传输功能,是基于RPC协议实现的,为C/S架构。也就是说,NFS也只是文件系统而已,与jffs2,yaffs,ext4等是一类东西。但是NFS的特殊之处在于,它可以通过网络来挂载文件系统,而不用烧写到设备上,从而方便我们调试。这就跟早期的网吧里使用PXE启动来搭建无盘系统一样:每台电脑并没有安装硬盘,而是直接通过PXE启动服务器上的系统,看起来每台电脑都有硬盘,其实都是挂载服务器上的硬盘。
nfs服务器安装
不同的ubuntu,安装nfs的方法不同,本教程使用的是18.04版本,nfs的安装很简单,直接在网上获取并安装即可,见如下命令。
安装服务器端
sudo apt-get install nfs-kernel-server
安装客户端
sudo apt-get install nfs-common
关闭防火墙
ufw disable
root目录创建
创建rootfs文件夹
与tftp有些类似,并不是ubuntu中所有文件夹都可以进行网络传输或访问,必须指定固有的文件夹。因此我们创建一个专用文件夹。
mkdir /home/hudaizhou/sound_code/rootfs/rootfs
修改可执行权限
chmod 777 -R /home/hudaizhou/sound_code/rootfs/rootfs
配置export
export是用来指定可以用来做网络传输的文件夹,我们在export文件中添加该目录,如下:
sudo vi /etc/exports
添加:
/home/hudaizhou/sound_code/rootfs/rootfs *(rw,sync,no_root_squash,no_subtree_check)
命令释义:
- * 是IP地址
- rw:读写操作
- sync: 在应用之前将任何更改写入光盘
- no_subtree_check:阻止子树检查
导出共享目录
sudo exportfs -a
重启服务器
sudo systemctl restart nfs-kernel-server
查看nfs的rootfs文件夹目录
showmount localhost -e
本地测试
挂载
sudo mount -t nfs -o nolock 192.168.10.51:/home/hudaizhou/sound_code/rootfs/rootfs /opt
到/opt目录查看rootfs的文件是否显示。
卸载
每次用完后需要卸载不然会影响opt目录:
umount /opt
开发板测试
开发板刷机可以正常运行的uboot+kernel+rootfs,要注意的是开发板的系统必须开启了nfs功能。
挂载
sudo mount -t nfs -o nolock 192.168.10.51:/home/hudaizhou/sound_code/rootfs/rootfs /opt
到/opt目录查看rootfs的文件是否显示。
卸载
每次用完后需要卸载不然会影响opt目录:
umount /opt



