1.背景
起因是下面截图的信息,根据打印信息大致可知道在挂载SD卡分区2的时候出现错误了,当时大致判断为内核去找根文件系统里面的脚本以及执行文件时出现错误,但由于在u-boot里面print时未找到bootargs的参数来确认以及修改根文件系统位置以及文件系统类型,故借此机会了解下SD卡根文件系统制作以及原理,做到知其然知其所以然!!!
2.确认过程
确认根文件系统为SD卡
1).去源码里面查看bootargs console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait"
或者config里面CONFIG_SUBSYSTEM_ROOTFS_SD=y
2).有一张带根文件系统的SD卡,系统启动正常后,拔掉SD卡,在根文件系统里面ls,会出现下面信息
3.制作过程
首先了解下文件系统类型,以及为啥要用ext2,3,4类型文件系统作为根文件系统?fat32为啥不行?
原因:根文件系统采用符号链接等特性,用FAT32是不行的,本文采用标准的ext3的文件系统.在实测时,把U盘整个做一个分区做VFAT格式做BOOT系统,用来存放内核镜像,设备树等;第二个分区采用ext3格式,做根文件系统。
虚拟根文件系统怎么到真实根文件系统,想了解的可以阅读: rootfs启动流程
(1)插入SD卡,确保接触正常,点击虚拟机右下方长方形的图片,点击连接
(2)df 查看信息
(3)umount /dev/sdc1 不然等会新建完分区,保存时,会出现下面问题
(4)删除原分区,若有多个,需多次删除
(5)新建分区
(6)拔掉SD卡-->格式化分区
(7)拷贝根据系统到SD卡
(8)后来用另一片SD卡制作时遇到下面一个问题,后期有时间再去调查下,应该是二分区不应该选为扩展分区,还是选主分区。格式化好像指支持主分区和逻辑分区
(9)当然最好使用图形软件来分区,且设置下挂载点