基于嵌入式系统的Linux内核自动回滚恢复方法技术方案

技术编号:36874211 阅读:43 留言:0更新日期:2023-03-15 20:21
本发明专利技术公开了一种基于嵌入式系统的Linux内核自动回滚恢复方法,包括以下步骤:步骤一、将升级版本的内核文件拷贝到存储设备中并在存储设备中设置“待升级”标记;步骤二、检测存储设备中是否有“待升级”标记及“尝试升级”标记;步骤三、在存储设备中设置“尝试升级”标记,并加载启动升级版本内核;步骤四、检测到加载内核成功,则去除“待升级”标记及“尝试升级”标记;步骤五、检测到加载内核失败,则启动自动回滚恢复措施,加载启动旧版本内核;步骤六、当步骤二中无“待升级”标记,且无“尝试升级”标记,则加载启动旧内核。本发明专利技术避免了升级内核失败时导致系统无法正常启动,能以最快地速度恢复并投入生产使用,方便了用户的使用。方便了用户的使用。方便了用户的使用。

【技术实现步骤摘要】
基于嵌入式系统的Linux内核自动回滚恢复方法


[0001]本专利技术涉及计算机操作系统
,具体公开了一种基于嵌入式系统的Linux内核自动回滚恢复方法。

技术介绍

[0002]Linux以其免费、良好的安全性、可靠的系统安全性和开放性等特点,赢得了广大企业的青睐并广泛使用。随着软件技术的发展及需求的变更,Linux系统的软件更新更为频繁,这就需要Linux操作系统不断地进行更新和升级内核,以保证满足新的功能需求。
[0003]在升级Linux内核文件时,会由于新内核本身存在问题、与现有文件设备树或uboot不兼容、内核文件拷贝不全等问题,导致更新Linux内核文件后系统无法正常启动,此时往往需要重新安装系统并部署业务,使得业务中断较长时间,不利于自动化快速部署升级。
[0004]因此,如何提供一种Linux内核升级失败时自动回滚恢复的方法,成为迫切解决的技术难题。

技术实现思路

[0005]本专利技术的目的在于提供一种基于嵌入式系统的Linux内核自动回滚恢复方法,以解决上述
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:
[0007]一种基于嵌入式系统的Linux内核自动回滚恢复方法,包括以下步骤:
[0008]步骤一、将升级版本的内核文件拷贝到存储设备中,并在存储设备中设置“待升级”标记;
[0009]步骤二、uboot启动加载内核文件前,检测存储设备中是否有“待升级”标记及“尝试升级”标记;
[0010]步骤三、当步骤二中存储设备中有“待升级”标记,并且没有“尝试升级”标记时,则在存储设备中设置“尝试升级”标记,并加载启动升级版本内核;
[0011]步骤四、当步骤三中成功加载启动升级版本内核,则将升级版本内核覆盖到旧版本内核,并且去除“待升级”标记及“尝试升级”标记;
[0012]步骤五、当步骤二中有“待升级”标记,并且有“尝试升级”标记,则启动自动回滚恢复措施,删除升级版本内核,清除“待升级”标记及“尝试升级”标记,并且加载启动旧版本内核;
[0013]步骤六、当步骤二中无“待升级”标记,且无“尝试升级”标记,则加载启动旧内核。
[0014]优选地,步骤一中的拷贝加载内核文件到存储设备方式为以系统分区方式存储。
[0015]优选地,步骤一中的拷贝加载内核文件到存储设备方式为文件系统中以文件方式存储。
[0016]优选地,步骤一中在存储设备中设置“待升级”标记方法为以文件系统中某文件是
否含指定值来标识。
[0017]优选地,步骤一中在存储设备中设置“待升级”标记方法为是否存储某文件来标识。
[0018]优选地,步骤一中在存储设备中设置“待升级”标记方法为存储设备指定地址内容是否为指定值来标识。
[0019]优选地,步骤三中在存储设备中设置“尝试升级”标记方法为以文件系统中某文件是否含指定值来标识。
[0020]优选地,步骤三中在存储设备中设置“尝试升级”标记方法为是否存储某文件来标识。
[0021]优选地,步骤三中在存储设备中设置“尝试升级”标记方法为存储设备指定地址内容是否为指定值来标识。
[0022]与现有技术相比,本专利技术的有益效果是:本专利技术在每次升级更新内核时,会保留旧版本内核;若加载新内核失败时,可在uboot加载阶段自动回滚恢复运行旧内核,避免了升级内核失败时导致系统无法正常启动,以最快地速度恢复并投入生产使用,能够自动、快速、高效地自动恢复,方便了用户的使用,优势明显。
附图说明
[0023]图1为本专利技术的流程示意图。
具体实施方式
[0024]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]参阅附图1所示,一种基于嵌入式系统中Linux内核升级失败时自动回滚恢复的方法,包括以下步骤:
[0026]步骤一、将升级版本的内核文件拷贝到存储设备中,并在存储设备中设置“待升级”标记;
[0027]实现代码为:
[0028]cp zImage_new/boot/zIamge_new;echo 1>/boot/need_update;
[0029]其中,新版本的内核文件为zImage_new,拷贝到文件系统中/boot文件夹下zImage_new文件中;/boot/need_update文件用来标识是否有“待升级”标记,将文件内容写1则设置“待升级”标记。
[0030]步骤二、uboot启动加载内核文件前,检测存储设备中是否有“待升级”标记及“尝试升级”标记;
[0031]在本实施例中,/boot/need_update文件内容是否为1标识“待升级”标记是否设置,/boot/try_update文件内容是否为1标识“尝试升级”标记是否设置。
[0032]此阶段主要读取/boot/need_update及/boot/try_update文件内容是否为1,来检测存储设备中是否有“待升级”标记及“尝试升级”标记。
[0033]步骤三、当步骤二中有“待升级”标记,且没有“尝试升级”标记,则在存储设备中设置“尝试升级”标记,并加载启动升级版本内核;
[0034]实现代码为:
[0035]echo 1>/boot/try_update;load mmc 0 0x82000000/boot/zImage_new;bootz 0x82000000;
[0036]在本实施例中,/boot/zImage_new为升级版本内核文件,通过load指令将/boot/zImage_new加载到指定地址,并通过bootz加载启动内核。
[0037]步骤四、当步骤三中成功加载启动升级版本内核,则将升级版本内核覆盖到旧版本内核,且去除“待升级”标记及“尝试升级”标记;
[0038]实现代码为:
[0039]cp/boot/zImage_new/boot/zImage;echo 0>/boot/need_update;echo0>/boot/try_update;
[0040]在本实施例中,/boot/zImage_new为新版本内核,/boot/zImage为旧版本内核,清空标记的方法为将/boot/need_update和/boot/try_update文件内容写0。
[0041]步骤五、当步骤二中有“待升级”标记,且有“尝试升级”标记,则启动自动回滚恢复措施,删除升级版本内核,清除“待升级”标记及“尝试升级”标记,并加载启动旧版本内核;
[0042]实现代码为:
[0043]echo 0>/boo本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于嵌入式系统的Linux内核自动回滚恢复方法,其特征在于,包括以下步骤:步骤一、将升级版本的内核文件拷贝到存储设备中,并在存储设备中设置“待升级”标记;步骤二、uboot启动加载内核文件前,检测存储设备中是否有“待升级”标记及“尝试升级”标记;步骤三、当步骤二中存储设备中有“待升级”标记,并且没有“尝试升级”标记时,则在存储设备中设置“尝试升级”标记,并加载启动升级版本内核;步骤四、当步骤三中成功加载启动升级版本内核,则将升级版本内核覆盖到旧版本内核,并且去除“待升级”标记及“尝试升级”标记;步骤五、当步骤二中有“待升级”标记,并且有“尝试升级”标记,则启动自动回滚恢复措施,删除升级版本内核,清除“待升级”标记及“尝试升级”标记,并且加载启动旧版本内核;步骤六、当步骤二中无“待升级”标记,且无“尝试升级”标记,则加载启动旧内核。2.根据权利要求1所述的基于嵌入式系统的Linux内核自动回滚恢复方法,其特征在于,步骤一中的拷贝加载内核文件到存储设备方式为以系统分区方式存储。3.根据权利要求1所述的基于嵌入式系统的Linux内核自动回滚恢复方法,其特征在于,步骤一中的拷贝加载内核文件到存储设备方式...

【专利技术属性】
技术研发人员:于洋范守苏
申请(专利权)人:上海帕特尼智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1