虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

10. 制作NFS网络根文件系统

1. 环境配置

Linux主机支持NFS服务
修改bootargs启动参数
设置NFS为根文件系统
设置主机NFS文件系统地址
内核支持NFS挂载文件系统

2. 安装并配置NFS服务

2.1 Linux主机开启NFS服务

[email protected]:/home/alpha/share/rootfs# apt install nfs-kernel-server

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

配置NFS:

# vim /etc/exports

// 添加NFS共享目录

         /home/alpha/qemu/rootfs    *(rw, sync, no_root_squash, no_subtree_check)

    rw      可读可写操作

    sync    内存和磁盘上的内容保持同步

    no_root_squash    Linux主机不再将开发板设置为匿名用户,可以操作文件读写

    no_subtree_check    不检查根文件系统子目录文件

重启NFS服务:

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

3 开发板配置支持NFS网络

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

完善NFS文件系统
重启reboot命令

4. 编译busybox,使其支持nfs加载文件系统

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

创建rootfs目录,并在rootfs目录下创建文件:重新编译busybox后,将其文件拷贝到rootfs

1.创建inittab文件

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

2.创建rcS文件

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

3.创建fstab文件

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

5. 在rootfs中创建

[email protected]:/home/alpha/share/rootfs# mkdir proc mnt tmp sys root

6. 遇到的问题及启动效果图

6.1 NFS 版本问题导致文件系统加载不上

会一直卡在这里

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

使用下面这个命令确认服务启动成功与否

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统  虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统  

 

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

添加下面这句开启v2版本

RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

6.2 启动效果图

tftp下载uImage vexpress-v2p-ca9.dtb

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统

虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统