一种设备的启动方法、系统及存储介质技术方案

技术编号:27877034 阅读:17 留言:0更新日期:2021-03-31 00:56
本申请公开了一种设备的启动方法,包括:在设备上电后,执行任1启动阶段前,该启动阶段为验证阶段时,对第一存储器件中对应于该启动阶段的区域代码进行一致性验证;验证通过则基于第一存储器件中执行设备的该启动阶段;否则基于第二存储器件执行设备的该启动阶段,并对第一存储器件中对应于该启动阶段的区域代码进行修复;该启动阶段不为验证阶段时,基于第一存储器件执行设备的该启动阶段,并判断该启动阶段是否成功执行完毕;若未成功执行完毕则基于第二存储器件重新执行,并对第一存储器件中对应于该启动阶段的区域代码进行修复。应用本申请的方案,提高了设备启动的可靠性。本申请还提供了一种设备的启动系统及存储介质,具有相应效果。

【技术实现步骤摘要】
一种设备的启动方法、系统及存储介质
本专利技术涉及计算机
,特别是涉及一种设备的启动方法、系统及存储介质。
技术介绍
在部分对软件完成性要求比较高的场景中,会通过两个固件实现设备的冗余启动,具体的,当利用第一个固件启动失败时,将其屏蔽掉之后,再利用第二个固件重新启动。这样的缺陷是在屏蔽掉第一个固件之后,安全性上就会大打折扣,即之后如果第二个固件异常,则设备无法启动。以BMC(BaseboardManagementControlle,基板管理控制器)为例,互联网时代对基础服务器的性能要求越来越高,针对服务器整机监控的重要性显得越来越突出,需要BMC这个平台管理系统来进行一系列的监视和控制功能,监控的内容是整个服务器的软硬件,例如通过BMC管理系统管理服务器系统的温度、电压、风扇和电源等,并针对其中一项或者几项进行调节,以保证系统处于最优的状态。此外,BMC管理系统还负责记录各种软硬件的信息、软件日志、操作日志,用于提示用户以及解决后续问题的定位。因此,BMC是服务器一个不可或缺的平台管理系统,BMC的可操作性和安全性非常重要。在BMC启动的时候,目前行业的通用做法是进行1+1备份,具体的,设置两个BMC的固件ROM(Read-OnlyMemory,只读存储器),如果第一个无法启动,则重启BMC从第二片ROM中启动,启动完成后,设置启动项为第二ROM,并且将第一ROM直接屏蔽掉,从而导致在安全性上大打折扣。综上所述,如何有效地提高设备启动的可靠性,是目前本领域技术人员急需解决的技术问题。r>
技术实现思路
本专利技术的目的是提供一种设备的启动方法、系统及存储介质,以有效地提高设备启动的可靠性。为解决上述技术问题,本专利技术提供如下技术方案:一种设备的启动方法,包括:在设备上电之后,按照第1启动阶段至第k启动阶段的顺序,依次执行所述设备的k个启动阶段;在执行所述设备的任意1个启动阶段之前,且该启动阶段被预设为验证阶段时,对第一存储器件中对应于该启动阶段的区域代码进行一致性验证;当一致性验证通过时,基于所述第一存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段;当一致性验证不通过时,基于第二存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段,并对所述第一存储器件中对应于该启动阶段的区域代码进行修复;在执行所述设备的任意1个启动阶段之前,且该启动阶段未被预设为验证阶段时,基于所述第一存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段,并判断该启动阶段是否成功执行完毕;如果未成功执行完毕,则基于所述第二存储器件中对应于该启动阶段的区域代码重新执行所述设备的该启动阶段,并对所述第一存储器件中对应于该启动阶段的区域代码进行修复;其中,所述第一存储器件和所述第二存储器件中均进行了启动固件的烧写,所述启动固件划分为k个区域,依次对应所述设备的k个启动阶段,并且预先选取了k个启动阶段中的x个启动阶段作为预设的验证阶段;k为不小于2的正整数,x为正整数且1≤x≤k。优选的,所述设备为BMC,所述BMC的启动方法具体包括:在所述BMC上电之后,基于第一存储器件中对应于内核引导阶段的区域代码执行所述BMC的内核引导阶段;判断所述内核引导阶段是否成功执行完毕;如果未成功执行完毕,则基于第二存储器件中对应于内核引导阶段的区域代码重新执行所述BMC的内核引导阶段,并对所述第一存储器件中对应于内核引导阶段的区域代码进行修复;在内核引导阶段成功执行完毕之后,对所述第一存储器件中对应于内核启动阶段的区域代码进行一致性验证;当一致性验证通过时,基于所述第一存储器件中对应于内核启动阶段的区域代码执行所述BMC的内核启动阶段;当一致性验证不通过时,基于所述第二存储器件中对应于内核启动阶段的区域代码执行所述BMC的内核启动阶段,并对所述第一存储器件中对应于内核启动阶段的区域代码进行修复;在内核启动阶段成功执行完毕之后,对所述第一存储器件中对应于App线程加载阶段的区域代码进行一致性验证;当一致性验证通过时,基于所述第一存储器件中对应于App线程加载阶段的区域代码执行所述BMC的App线程加载阶段;当一致性验证不通过时,基于所述第二存储器件中对应于App线程加载阶段的区域代码执行所述BMC的App线程加载阶段,并对所述第一存储器件中对应于App线程加载阶段的区域代码进行修复;在App线程加载阶段成功执行完毕之后,完成所述BMC的启动。优选的,对所述第一存储器件中对应于内核引导阶段的区域代码进行修复,包括:复制所述第二存储器件的启动固件并覆盖所述第一存储器件的启动固件,完成对所述第一存储器件中对应于内核引导阶段的区域代码的修复。优选的,对所述第一存储器件中对应于内核引导阶段的区域代码进行修复,包括:复制所述第二存储器件的启动固件中对应于内核引导阶段的区域代码,并覆盖所述第一存储器件中对应于内核引导阶段的区域代码,完成对所述第一存储器件中对应于内核引导阶段的区域代码的修复。优选的,对所述第一存储器件中对应于内核启动阶段的区域代码进行一致性验证,包括:通过预设的校验算法计算出所述第一存储器件中对应于内核启动阶段的区域代码的第一校验值;将所述第一校验值与预先存储的对应于所述第一存储器件中对应于内核启动阶段的区域代码的第二校验值进行比较,如果所述第一校验值与所述第二校验值一致,则对所述第一存储器件中对应于内核启动阶段的区域代码进行的一致性验证通过,否则不通过。优选的,所述校验算法为MD5校验算法。优选的,对所述第一存储器件中对应于内核启动阶段的区域代码进行修复,包括:复制所述第二存储器件的启动固件并覆盖所述第一存储器件的启动固件,完成对所述第一存储器件中对应于内核启动阶段的区域代码的修复。优选的,对所述第一存储器件中对应于内核启动阶段的区域代码进行修复,包括:复制所述第二存储器件的启动固件中对应于内核启动阶段的区域代码,并覆盖所述第一存储器件中对应于内核启动阶段的区域代码,完成对所述第一存储器件中对应于内核启动阶段的区域代码的修复。一种设备的启动系统,包括:启动阶段顺次执行模块,用于在设备上电之后,按照第1启动阶段至第k启动阶段的顺序,依次执行所述设备的k个启动阶段;验证阶段执行模块,用于在执行所述设备的任意1个启动阶段之前,且该启动阶段被预设为验证阶段时,对第一存储器件中对应于该启动阶段的区域代码进行一致性验证;当一致性验证通过时,基于所述第一存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段;当一致性验证不通过时,基于第二存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段,并对所述第一存储器件中对应于该启动阶段的区域代码进行修复;非验证阶段执行模块,用于在执行所述设备的任意1个启动阶段之前,且该启动阶段未被预设为验证阶段时,基于所述第一存储器件中对应于该启动阶段本文档来自技高网...

【技术保护点】
1.一种设备的启动方法,其特征在于,包括:/n在设备上电之后,按照第1启动阶段至第k启动阶段的顺序,依次执行所述设备的k个启动阶段;/n在执行所述设备的任意1个启动阶段之前,且该启动阶段被预设为验证阶段时,对第一存储器件中对应于该启动阶段的区域代码进行一致性验证;当一致性验证通过时,基于所述第一存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段;当一致性验证不通过时,基于第二存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段,并对所述第一存储器件中对应于该启动阶段的区域代码进行修复;/n在执行所述设备的任意1个启动阶段之前,且该启动阶段未被预设为验证阶段时,基于所述第一存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段,并判断该启动阶段是否成功执行完毕;如果未成功执行完毕,则基于所述第二存储器件中对应于该启动阶段的区域代码重新执行所述设备的该启动阶段,并对所述第一存储器件中对应于该启动阶段的区域代码进行修复;/n其中,所述第一存储器件和所述第二存储器件中均进行了启动固件的烧写,所述启动固件划分为k个区域,依次对应所述设备的k个启动阶段,并且预先选取了k个启动阶段中的x个启动阶段作为预设的验证阶段;k为不小于2的正整数,x为正整数且1≤x≤k。/n...

【技术特征摘要】
1.一种设备的启动方法,其特征在于,包括:
在设备上电之后,按照第1启动阶段至第k启动阶段的顺序,依次执行所述设备的k个启动阶段;
在执行所述设备的任意1个启动阶段之前,且该启动阶段被预设为验证阶段时,对第一存储器件中对应于该启动阶段的区域代码进行一致性验证;当一致性验证通过时,基于所述第一存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段;当一致性验证不通过时,基于第二存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段,并对所述第一存储器件中对应于该启动阶段的区域代码进行修复;
在执行所述设备的任意1个启动阶段之前,且该启动阶段未被预设为验证阶段时,基于所述第一存储器件中对应于该启动阶段的区域代码执行所述设备的该启动阶段,并判断该启动阶段是否成功执行完毕;如果未成功执行完毕,则基于所述第二存储器件中对应于该启动阶段的区域代码重新执行所述设备的该启动阶段,并对所述第一存储器件中对应于该启动阶段的区域代码进行修复;
其中,所述第一存储器件和所述第二存储器件中均进行了启动固件的烧写,所述启动固件划分为k个区域,依次对应所述设备的k个启动阶段,并且预先选取了k个启动阶段中的x个启动阶段作为预设的验证阶段;k为不小于2的正整数,x为正整数且1≤x≤k。


2.根据权利要求1所述的设备的启动方法,其特征在于,所述设备为BMC,所述BMC的启动方法具体包括:
在所述BMC上电之后,基于第一存储器件中对应于内核引导阶段的区域代码执行所述BMC的内核引导阶段;
判断所述内核引导阶段是否成功执行完毕;
如果未成功执行完毕,则基于第二存储器件中对应于内核引导阶段的区域代码重新执行所述BMC的内核引导阶段,并对所述第一存储器件中对应于内核引导阶段的区域代码进行修复;
在内核引导阶段成功执行完毕之后,对所述第一存储器件中对应于内核启动阶段的区域代码进行一致性验证;
当一致性验证通过时,基于所述第一存储器件中对应于内核启动阶段的区域代码执行所述BMC的内核启动阶段;
当一致性验证不通过时,基于所述第二存储器件中对应于内核启动阶段的区域代码执行所述BMC的内核启动阶段,并对所述第一存储器件中对应于内核启动阶段的区域代码进行修复;
在内核启动阶段成功执行完毕之后,对所述第一存储器件中对应于App线程加载阶段的区域代码进行一致性验证;
当一致性验证通过时,基于所述第一存储器件中对应于App线程加载阶段的区域代码执行所述BMC的App线程加载阶段;
当一致性验证不通过时,基于所述第二存储器件中对应于App线程加载阶段的区域代码执行所述BMC的App线程加载阶段,并对所述第一存储器件中对应于App线程加载阶段的区域代码进行修复;
在App线程加载阶段成功执行完毕之后,完成所述BMC的启动。


3.根据权利要求2所述的设备的启动方法,其特征在于,对所述第一存储器件中对应于内核引导阶段的区域代码进行修复,包括:
复制所述第二存储器件的启动固件并覆盖所述第一存储器件的启动固件,完成对所述第一存储器件中对应于内核引导阶段的区域代码的修复。


4.根据权利要求2所述的设备的启动方法,其特征在于,对所述第一存储器件中对...

【专利技术属性】
技术研发人员:王宏伟
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

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

1