嵌入式Linux调整分区表
16MB Flash,新增功能的时候发现flash不够用了,查看分区表,备份分区占了三千多K,所以想研究一下能不能通过调整分区,将备份分区尽量变小以腾出空间添加新功能。由于之前没有做过此类尝试,故留下此文以便不时之需。
分区现状
分区信息
dev: size erasesize name |
分区说明
| 分区 | 大小(KB) | name |
|---|---|---|
| mtd0 | 192 | uboot |
| mtd1 | 5184 | boot |
| mtd2 | 5312 | system |
| mtd3 | 5312 | bk |
| mtd4 | 320 | userdata |
| mtd5 | 64 | productdata |
mtd0: uboot分区,该分区不会进行升级boot: 内核和文件系统,有升级需求system: 业务层程序,有升级需要bk: 备份分区userdata: 配置分区,没有升级需求productdata: 出厂配置分区,没有升级需求
分区调整
调整原则
- 保持uboot、userdata、productdata三个分区大小和顺序不变
- 将boot、system分区拆分成3个较小的分区,从而减小bk分区,5184 + 5312 + 5312 = 15808 / 4 = 3952k
- 考虑到flash分区需要64K对齐,新分区如下
分区 大小(KB) name mtd0 192 uboot mtd1 3968 boot mtd2 3968 system mtd3 3968 bk mtd4 320 userdata mtd5 64 productdata mtd6 3712 new
调整步骤
调整文件系统
调整大小,保证新的img大小不会超过新分区
uboot
原配置
新配置
文件系统
由于需要支持OTA,新分区需要保证能够卸载,才能重新烧写,所以原则上新分区的文件不能是需要运行的二进制和依赖的动态库
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 L.S.W!
评论