NFS方式挂载rootfs的设置方法

时间:2021-06-15 16:30:02

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。


1、什么是nfs?

(1)nfs(网络文件系统)是一种网络通讯协议,由服务器和客户端构成。

(2)nfs的作用

  • 利用nfs协议可以做出很多直接性应用,但这里使用nfs主要是做rootfs挂载。
  • 开发板中运行kernel作nfs客户端(在配置时要配置成支持nfs客户端),虚拟机ubuntu中搭建nfs服务器(要指定共享目录)。
  • 在虚拟机ubuntu的nfs服务器的NFS共享目录下,导入文件夹形式的rootfs目录,在客户端中挂载这个文件夹形式的rootfs,进而启动系统。

2、在虚拟机上搭建nfs服务器

(1)搭建方法见环境搭建文档

(2)挂载的理解:

  • 被挂载的目录,即要访问的目录,比如/root/rootfs/rootfs;
  • 挂载到某目录,该目录就是一个小窗口,通过该窗口可以访问被挂载的目录的内容。比如挂载到/opt,则可以通过opt访问/root/rootfs/roots的内容。
  • 用完之后一般要卸载:umount  /opt

3、配置内核以支持nfs作为rootfs

(1)设置nfs启动方式的bootargs

  • 首先在uboot启动时打断自启动,.然后修改bootargs这个环境变量(注意具体的内容可能不同)

set bootargs root=/dev/nfs nfsroot=192.168.1.141:/root/rootfs/ ip=192.168.1.20:192.168.1.141:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200 

  • 此时如果直接挂载运行,会提示错误如下,因为没有配置内核以支持NFS启动方式。

NFS方式挂载rootfs的设置方法


(2)在内核配置阶段,即menuconfig中配置支持nfs启动方式

NFS方式挂载rootfs的设置方法


(3)在uboot中设置环境变量

  • set bootcmd ‘tftp 30008000 zImage;bootm 30008000’;

(4)重新启动uboot,就会到tftp服务器中下载内核,然后再到nfs服务器中下载rootfs。

  • 如果rootfs是可用的,那么就会启动成功;
  • 如果rootfs是不可用的,那么会提示下面的错误。

NFS方式挂载rootfs的设置方法


4、总结

(1)nfs方式启动相当于开发板上的内核远程挂载主机上的rootfs(根文件系统、内核在主机上,而不是像以前那样先烧录在开发板上)

(2)nfs方式启动不用制作rootfs镜像;

(3)nfs方式不适合真正的产品,一般作为产品开发阶段调试使用。