banner
NEWS LETTER

嵌入式 Linux 系列 21:分区规划、镜像布局和数据保留

Scroll down

分区规划是嵌入式 Linux 产品的底层设计。它决定了系统如何启动、OTA 如何升级、配置是否保留、日志写到哪里、异常断电后能否恢复。分区设计不清楚,后面很多功能都会变成补丁。

一、一个基础分区布局

常见布局:

1
2
3
boot
rootfs
data

更适合 OTA 的布局:

1
2
3
4
boot
rootfs_a
rootfs_b
data

再复杂一些会有:

1
2
3
4
factory
recovery
misc
logs

分区越多,管理越复杂。设计时要先明确需求,不要为了看起来完整而拆太碎。

二、每个分区放什么

boot

  • U-Boot 环境。
  • kernel。
  • dtb。
  • boot script。

rootfs

  • 系统程序。
  • 动态库。
  • 默认配置。
  • 只读资源。

data

  • 用户配置。
  • 设备身份。
  • 运行日志。
  • OTA 状态。
  • 业务数据。

factory

  • SN。
  • MAC。
  • 证书。
  • 校准数据。

factory 信息通常不随恢复出厂和 OTA 清除。

三、只读 rootfs 的好处

推荐 rootfs 只读:

  • 系统文件不会被运行时破坏。
  • 异常断电风险更低。
  • OTA 替换更明确。
  • 问题定位更容易。

运行时变化放到 /data

1
2
3
4
/data/config
/data/log
/data/ota
/data/cache

四、升级和数据保留

OTA 升级 rootfs 时,要保留:

  • /data/config
  • /data/factory
  • /data/secure
  • 必要日志

但配置格式可能变化,所以要做配置迁移。

不要把用户配置散落在 /etc/usr/var 多个位置。路径越分散,升级越难保证。

五、分区设计检查清单

设计前问清楚:

  • 是否需要 OTA 回滚。
  • 是否需要恢复出厂。
  • 哪些数据必须保留。
  • 哪些数据可以丢弃。
  • 日志最多占多少空间。
  • 配置写入频率多高。
  • 断电时最坏情况是什么。

分区规划一旦量产后再改,代价很高。早期要多花时间想清楚。

其他文章
目录导航 置顶
  1. 1. 一、一个基础分区布局
  2. 2. 二、每个分区放什么
  3. 3. 三、只读 rootfs 的好处
  4. 4. 四、升级和数据保留
  5. 5. 五、分区设计检查清单
请输入关键词进行搜索