热度 3
2023-9-19 16:23
1029 次阅读|
0 个评论
在对评估板进行开发验证时,时常会遇到根目录空间不足的情况,而在其他分区又有冗余空间,这时则需要对分区大小重新进行分配,合理化利用分区空间。 本文将基于HD-RK3568-IOT评估板主要讲解如何修改eMMC分区大小。 1. 分区表介绍 本文主要通过修改parameter.txt 分区表文件来实现修改分区大小,示例分区表内容如下: FIRMWARE_VER:1.0 MACHINE_MODEL:RK3568 MACHINE_ID:007 MANUFACTURER:RK3568 MAGIC:0x5041524B ATAG:0x00200800 MACHINE:0xffffffff CHECK_MASK:0x80 PWR_HLD:0,0,A,0,1 TYPE:GPT CMDLINE:mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00010000@0x00008000(boot),0x00010000@0x00018000(recovery),0x00010000@0x00028000(backup),0x00c00000@0x00038000(rootfs),0x00040000@0x00c38000(oem),-@0x00c78000(userdata:grow) uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9 paramter.txt 中的uboot,misc,boot,recovery,oem,rootfs 分区应该保留,重新分区时无需删除。 分区参数的格式是size@offset(name) ,size 和offset 的单位是块,对EMMC 就是”扇区”,扇区大小是512byte 。EMMC 最前面的8MiB 空间是保留区,分区时必须从8MiB 之后的空间开始。 比如第一个分区是u-boot 分区: 0x00002000@0x00004000(uboot)0x00002000@0x00004000(uboot) size=0x2000*0x200/0x100000=4MiB offset=0x4000*0x200/0x100000=8MiB 分区名 "uboot" 2. 扩展rootfs 分区大小到7GB 目前rootfs 在分区表的大小如下所示: 0x00c00000@0x00038000(rootfs),0x00040000@0x00c38000(oem),-@0x00c78000(userdata:grow) 已知rootfs 分区大小是0x00c00000(6GB ,进制转换*512Byte) ,可以考虑从userdata 分区中回收0x200000(1GB) ,oem 分区大小不动,那么修改后的分区配置是: 0x00e00000@0x00038000(rootfs),0x00040000@0x00e38000(oem),-@0x00e78000(userdata:grow) 修改完后保存,重新将parameter.txt 文件导入到烧写工具中,以及更新修改分区的固件进行烧写,在此需要更新parameter.txt ,rootfs ,oem 以及userdata 。 烧写成功后进入系统使用df-h 查看存储空间,可以看到/dev/root 分区已经从6GB 扩展到7GB 了。