首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >升级踩坑后,我整理了“Linux A/B系统模式”详解

升级踩坑后,我整理了“Linux A/B系统模式”详解

原创
作者头像
创龙科技Tronlong
发布2026-07-27 09:25:53
发布2026-07-27 09:25:53
760
举报

设备在进行固件升级时,传统单分区方案会直接覆盖运行中的系统,若出现断电、固件异常等问题,极易造成设备无法开机且无法自动恢复。而具备双分区冗余存储、启动故障自动回滚机制的Linux A/B系统模式,能够解决传统单分区升级易失效、无法回滚、设备瘫痪的问题。

图1
图1

什么是Linux A/B系统模式

Linux A/B系统模式是一种高可靠的固件升级方案,划分A、B两套对等系统分区,设备单分区运行,另一分区存放备用固件,具备三大核心能力

(1)系统升级:在当前运行系统将新固件写入备用分区,无需进⼊升级模式,完成后重启即可进入新系统。

(2)故障回滚:若升级失败导致系统故障,系统可回退到当前版本,避免变砖。

(3)双重防护:升级失败、当前分区损坏等故障,系统会自动切换到另一分区恢复运行。

▍关键底层支持

Reset retry是Linux A/B的容错机制:当系统从当前分区启动失败时,Bootloader记录失败次数并切换备用分区重试;累计7次启动失败后,固定从另一分区引导。

图2
图2

▍系统升级演示

以下基于创龙科技RK3506工业评估板,下载升级固件至存储分区“userdata”进行系统升级。

本次操作从slot_b分区(B系统)启动系统,对slot_a分区(A系统)进行升级。

图3
图3
图4
图4

等待约5分钟后,系统更新完成,评估板将自动切换从slot_a分区(A系统)启动。

▍故障场景演示

以下基于创龙RK3506工业评估板,验证Linux A/B系统模式Reset retry引导的作用。本次验证模拟A系统分区损坏导致启动失败场景,内核或文件系统损坏均可自动切换至备用分区恢复,本次以内核分区损坏为例演示。

执行如下命令破坏boot_a分区(A系统内核分区),并重启评估板。

图5
图5

评估板上电重启后,由于内核分区被破坏,系统将无法完成正常的启动流程。此时,U-Boot会自动触发内核的重新引导机制。通过查看系统打印信息,可清晰地观察到tries-remain参数的值会随着U-Boot重新引导内核启动次数的增加而逐步递减。

图6
图6
图7
图7

若在U-Boot阶段尝试连续7次从slot_a分区(A系统)启动,均无法启动成功后,将自动切换至slot_b分区(B系统)启动。

图8
图8

经本次验证可知:当多次尝试从损坏的slot_a分区(A系统)启动均失败后,系统能够自动切换至正常的slot_b分区(B系统)完成启动。

无论是系统升级,还是系统故障场景,Linux A/B系统模式都能够从容应对,为您的系统保驾护航!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ▍什么是Linux A/B系统模式
  • ▍关键底层支持
  • ▍系统升级演示
  • ▍故障场景演示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档