分区规划是嵌入式 Linux 产品的底层设计。它决定了系统如何启动、OTA 如何升级、配置是否保留、日志写到哪里、异常断电后能否恢复。分区设计不清楚,后面很多功能都会变成补丁。
一、一个基础分区布局
常见布局:
1 | boot |
更适合 OTA 的布局:
1 | boot |
再复杂一些会有:
1 | factory |
分区越多,管理越复杂。设计时要先明确需求,不要为了看起来完整而拆太碎。
二、每个分区放什么
boot:
- U-Boot 环境。
- kernel。
- dtb。
- boot script。
rootfs:
- 系统程序。
- 动态库。
- 默认配置。
- 只读资源。
data:
- 用户配置。
- 设备身份。
- 运行日志。
- OTA 状态。
- 业务数据。
factory:
- SN。
- MAC。
- 证书。
- 校准数据。
factory 信息通常不随恢复出厂和 OTA 清除。
三、只读 rootfs 的好处
推荐 rootfs 只读:
- 系统文件不会被运行时破坏。
- 异常断电风险更低。
- OTA 替换更明确。
- 问题定位更容易。
运行时变化放到 /data:
1 | /data/config |
四、升级和数据保留
OTA 升级 rootfs 时,要保留:
/data/config/data/factory/data/secure- 必要日志
但配置格式可能变化,所以要做配置迁移。
不要把用户配置散落在 /etc、/usr、/var 多个位置。路径越分散,升级越难保证。
五、分区设计检查清单
设计前问清楚:
- 是否需要 OTA 回滚。
- 是否需要恢复出厂。
- 哪些数据必须保留。
- 哪些数据可以丢弃。
- 日志最多占多少空间。
- 配置写入频率多高。
- 断电时最坏情况是什么。
分区规划一旦量产后再改,代价很高。早期要多花时间想清楚。
- 本文链接: https://blog.hansong.icu/2026/06/26/Embedded_Linux_Series_21_Partition_Layout/
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。