4.2 uboot开发 - emmc 分区
- 成功进入系统后,使用命令
fdisk -l
查看硬盘信息,却打印出/dev/mmcblk0 doesn't contain a valid partition table
这样的信息。 - 使用命令
ls /dev/mmcblk0*
查看,确实又存在分区。 - 既然磁盘上没有分区表信息,那么内核中的分区表信息是哪来的?
- 左思右想,想起了上一篇文章中传递给内核的启动参数,其中有一段是这样的:
- blkdevparts=mmcblk0:1M(u-boot.bin),16M(kernel),19M(update),6144M(rootfs.ext4),8192M(oem),-(data)
- 感觉应该就是这个了,遂一通乱查,最后得知内核可以通过以下方式获取硬盘的分区信息:
- 控制器驱动提供分区表
- bootloader命令行(通过参数 blkdevparts 传递)
Emmc 分区简介
- 大部分 Emmc 在物理上存在以下分区:
- Boot Area Partition 1
- Boot Area Partition 2
- RPMB
- User Data Area
- Boot 分区主要是为了支持从 eMMC 启动系统而设计的。即 linux 下的
/dev/mmcblk0boot*
设备。 - RPMB 即 Replay Protected Memory Block 简称&