存储介质的分区与空间分配

2019-04-14 21:10发布

存储介质的分区与空间分配

对于嵌入式系统来说,存储介质的分区很重要,这样才能在上电后正确的部署整个系统
  • 一般存储介质主要被分为:1.bootloader区 2.env区 3.kernel区 4.rootfs区 5.其他fs区

1.分区表

  • mmc/sd设备专门有一个扇区用来描述块设备的分区信息的,称之为MBR,对于SD卡来说,MBR在扇区0
  • 对于emmc来说,在出厂时里面会实现物理上的分区, 主要由这几个部分组成:
    1. BOOT1:一般用来放bootloader,物理上的稳定性、可靠性极好
    2. BOOT2:常作为BOOT1的备份,BOOT1失效时执行BOOT2
    3. RPMB:存放特殊、保密的数据,极少使用该分区
    4. User Data Area:常规空间,占整块EMMC大小的93%,可被fdisk工具分区
    5. Vender private area:厂家预留区域

2.分区的意义

  • bootloader对分区的概念不太在意,只要它能把内核烧到A位置,把文件系统烧到B位置,把xxx烧录到xxx位置。。。很多时候也会出现分区表在固化在U-boot源码中。。以实现在U-boot控制台中用命令一键分区。。如,可以使用“nand write 3000000 kernel”命令将uImage烧到kernel分区,而不必写那么长:nand write 3000000 A
  • kernel直接读取MBR就知道了分区,但是它却不知道rootfs在哪。所以在U-boot的bootargs可以不包含分区表的具体内容,但要告诉kernel哪个分区放了rootfs
  • Linux和U-boot中均可使用fdisk命令来分区,一般在制作、烧录固件时来对存储介质分区

3.文件系统与分区