跳转到内容
返回官网

A/B 双系统与切换

A/B 双系统是 JelinaOS 可靠性的核心机制:内核与系统各保存两份完整副本,运行期使用一套,更新写入另一套。本页介绍日常使用中与双系统相关的操作。

Terminal window
jelina-info

在输出中查看当前启动分区(A 或 B)与系统健康状态。设备始终运行在某一套系统上,另一套作为备份。

当前运行 System A
│
▼ 更新写入 System B
▼ 重启后自动切换至 B
▼ 启动校验通过 → 继续运行 B
│
▼ 校验失败 → 自动回退 A(业务不受影响)
  • 切换由系统自动完成,无需人工干预;
  • 两套系统内容互为备份,均为出厂状态;
  • 运行期所有用户写入进入数据分区,与切换无关。
  1. 通过系统更新发起更新;
  2. 更新写入备用分区,设备持续运行;
  3. 重启后自动切换至新系统并校验。

新版本出现问题需要回退时:

  1. 通过系统更新机制指定回退到上一版本;
  2. 系统切换回原分区并校验;
  3. 设备恢复正常运行。

也可以使用系统回滚服务手动回退(root/kernel 回滚在重启后生效,应用区回滚立即生效):

Terminal window
systemctl restart jelina-rollback@root # 回滚系统分区(重启生效)
systemctl restart jelina-rollback@kernel # 回滚内核分区(重启生效)
systemctl restart jelina-rollback@app # 回滚应用区(立即生效)
systemctl restart jelina-rollback@adv # 回滚组件区(立即生效)

执行回滚前,系统会校验当前实际挂载与配置一致,防止重复操作。

系统通过启动计数(bootcount) 跟踪启动状态,实现分级自动恢复:

  • 每次启动计数递增,系统正常启动成功后自动清零;
  • 若启动失败(崩溃、断电、看门狗重启),计数保持递增;
  • 连续多次启动失败后,系统自动进入恢复流程:先尝试恢复启动,仍失败则依次回滚系统分区与内核分区;
  • 恢复成功后回到正常启动,计数重新清零。

这套机制保证:无论升级还是故障,设备都不会陷入反复重启的循环,总能自动回到可用状态。

每次启动,系统都会校验当前分区:

  • 校验通过:正常进入系统;
  • 校验失败:自动尝试另一套系统,保证设备总能进入可用状态。

这保证了设备“开机能用、坏了能回”,是无人值守场景的可靠保障。

如何确认当前运行在哪个分区? 运行 jelina-info 查看启动分区信息。

两个分区的内容会同步吗? 不会。两套系统各自保持出厂状态,用户数据统一在数据分区,通过系统更新机制维护版本关系。

可以手动选择启动分区吗? 日常使用无需手动选择,系统自动管理。特殊维护场景可按平台提供的启动管理能力操作(瑞芯微平台提供 jelina-rk-bootctl 启动控制工具,具体用法以命令帮助为准)。