recovery&linux系统升级数据更新分析总结

    毕业工作到现在,作为码农,主要的工作核心都围绕着升级展开,渐渐的对升级也有了一部分自己的认识,见解。大致总结下对升级理解及实现。有错误或者不全面的地方,还请各位多多指导。

 

    先说说对升级的理解吧。系统升级是软件更新及BUG修复的主要方式,升级的主要原理就是数据搬移的过程,把我们需要的数据,从某个地方,更新到另外的一个地方。这个过程就叫做升级。一般是当我们系统有了新的功能增加,或者是现有的功能出现缺陷或者漏洞无法正常运行时,我们需要进行系统升级。最终达到修复系统缺陷漏洞,增加新功能的目的。

 

    从升级的方式来看,升级主要分为两大类,本地升级及远程升级,我们常说的OTA(over the air)也就是远程升级。显而易见,我们通过名字也就能明白,本地升级就是从本地获取升级数据,从而进行系统升级,本地升级常见的包括USB升级,SD卡升级,UART串口升级等,远程升级常见的有WEB升级,HTTP升级,TS流升级等。

 

    上面所描述的升级方式,基本上都是根据升级数据获取的途径来定义的。获取到数据之后,我们要把数据写入到哪里呢,那么这里就涉及到了存储设备,我们常用的flash存储包括NOR, NAND, EMMC等,在项目立项的时候,都会选择一个或者多种组合形式的flash存储设备。这几种flash都有各自的特色,NOR相对容量较小,读取速度快,启动速度快,在现在大容量盛行时代,使用的场景较少,NAND flash相对NOR flash,容量方面就大了很多,适合存储较多的数据,NAND写入之前必须执行擦除动作,才能写入,这是跟NAND只能把1写0决定的。并且NAND flash是有坏块的,那么读写的时候,要跳过坏块部分。EMMC其实也是NAND的一种,通常也称作INAND,EMMC对NAND来说,不用擦除再写,不用考虑坏块,能够自己管理坏块,比NAND使用起来更方便。上面只是大致简单的介绍下这几种flash存储设备,想了解更多的可以自行深入的学习了解。

 

    说完升级数据来源及flash存储设备,我们再来看看数据格式,升级的时候,并非只是单纯的数据搬移,针对不同类型的数据有不同的处理方式,常见的有RAW,UBI,EXT4等,一般普通镜像都是raw格式,NAND上面使用的ubi fs, EMMC上面使用的ext4 fs。raw原意是未被处理的数据,针对raw数据,我们直接数据搬移即可,针对ubi及ext4格式,我们需要特殊处理。同样是raw镜像,我们在nand与emmc上面的处理方式也不同,写nand的时候,我们需要按照block size的最小单位大小,先擦擦,再按照page size最小单位写入。而emmc则不需要这么麻烦。及时是相同的存储设备,我们对char device(字符设备)与block device(块设备)的处理方式也不相同。

 

    也就是说,我们对某个分区镜像更新时,需要根据数据类型(raw/ubi/ext4等)存储设备类型(nand/emmc等)字符设备类型(char/block等)综合考虑,采用对应的方式,更新数据。后面将对,每种不同的场合分析,如何更新。有兴趣的也可以自己研究,本文只是做大致的分析。

 

    分析完升级方式,flash存储,及数据格式后,我们列几点升级的设计注意点

(1)对升级的源数据,采用只读的方式获取。

(2)对重要的分区,可以采用分区备份的机制保护。

(3)升级过程禁止所有的输入中断,包括串口,按键,IR等。

(4)升级前数据完整性校验及安全性校验。

(5)对存在镜像加密的时候,在升级前对加密镜像合法性校验。

(6)设计异常掉电保护机制,防止升级过程掉电。

(7)升级过程任意掉电,重新上电都能够继续升级或者恢复原系统。

(8)升级流程可配置化,能够修改升级包改变升级流程。

(9)升级过程自动化,尽可能少的人为操作。

(10)升级出错立马退出并提示出错信息。

(11)升级日志尽可能完整的记录升级的每个过程及关键点信息。

(12)记录最近5次的升级日志,方便升级跟踪。

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对于 Linux 的恢复(recovery),有几种常见的情况和方法可以应对: 1. 系统启动问题:如果 Linux 系统无法正常启动,可能是由于损坏的文件系统、错误的启动配置或者其他问题引起的。在这种情况下,你可以尝试进入恢复模式或者单用户模式来修复系统。具体的步骤可能因不同的 Linux 发行版而有所差异,但通常可以通过在启动过程中按下特定的键(如 F8 或 ESC)来进入恢复模式或单用户模式。 2. 文件系统修复:如果你的文件系统损坏了,可以使用 fsck 命令进行修复。fsck 是一个用于检查和修复文件系统错误的工具。你可以使用以下命令运行 fsck: ``` fsck /dev/sda1 ``` 这里的 /dev/sda1 是你要修复的文件系统设备。 3. GRUB 修复:GRUB 是 Linux 系统的引导加载程序,如果 GRUB 配置有误或者被破坏,系统可能无法正常启动。你可以尝试使用 GRUB 修复工具来修复 GRUB 配置。具体的命令和步骤可能因不同的 Linux 发行版而有所差异。 4. 数据恢复:如果你意外删除了文件或者文件丢失了,可以使用一些数据恢复工具来尝试恢复数据。一些常见的数据恢复工具包括 TestDisk、PhotoRec、Extundelete 等。 请注意,在进行任何恢复操作之前,请务必备份重要数据,以防意外损坏或数据丢失。此外,如果你对 Linux 系统的恢复不太熟悉,建议咨询专业人士或者查阅相关文档和教程来确保操作的正确性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值