还原固件信息的方法及装置与流程

文档序号:12887058阅读:333来源:国知局
还原固件信息的方法及装置与流程

本发明涉及固件安全技术领域,特别涉及一种还原固件信息的方法及装置。



背景技术:

固件是一种嵌入在硬件装置中的软件,是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作。一般来说,担任着电子设备最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统(basicinput/outputsystem,bios)。

当bios信息异常时,可能会导致无法进入操作系统,甚至还可能导致无法正常开机,更严重的情况下无法更新bios,则只能拆开电子设备更换只读存储器(readonlymemory,rom)。现有技术中可以通过将bios信息备份到硬盘中。当bios信息异常导致无法正常开机时,可以通过自动恢复技术,将硬盘中备份的bios信息恢复到rom中,从而解决系统无法正常开机的问题。现有技术备份的过程如下:(1)开机时,检测硬盘中是否已经备份有bios信息;(2)若硬盘中存在bios信息,则直接运行引导程序进入操作系统;(3)若引导成功,则检测bios信息是否存在升级标志,若存在,则重新备份硬盘中的bios信息,并在bios信息中建立升级标志;(4)若引导失败,则当不存在升极标志时,调用硬盘中备份的bios信息进行恢复,当存在升级标志时,用原来的bios信息进行恢复。

现有技术的备份方法只有当bios信息存在较新版本时才进行备份,当进行bios信息的恢复操作时,只能恢复到初始状态,中间的所有设置将无法恢复。



技术实现要素:

有鉴于此,本发明实施例的目的是提供一种能够对bios信息实时备份的还原固件信息的方法及装置。

为了实现上述目的,本发明实施例提供了一种还原固件信息的方法,包括:

当启动电子设备时,运行所述电子设备的bios程序,以进入操作系统;

若运行所述bios程序进入系统失败,则当存在bios备份程序时,使用所述bios备份程序还原固件信息;

若运行所述bios程序进入系统成功,则当进入操作系统后,且当存在bios备份程序时,则根据所述bios程序更新所述bios备份程序。

作为优选,若运行所述bios程序进入系统成功,所述方法还包括:

验证运行的所述bios程序的信息与预先存储的所述bios程序的信息是否相一致;

若不一致,则根据所述bios程序的信息更新预先存储的所述bios程序的信息。

作为优选,若运行所述bios程序进入系统成功,所述方法还包括:

验证备份区是否存在bios备份程序;

若存在,则验证所述bios备份程序与rom存储器中存储的bios程序版本是否一致,若不一致,则根据rom存储器所存储的bios程序版本更新备份区的所述bios备份程序;

若不存在,则根据运行的所述bios程序备份所述bios程序。

作为优选,若运行所述bios程序进入系统失败,所述方法还包括:

检测备份区中是否存储有bios备份程序;

若存在,检测所述bios备份程序是否为更新后的版本;

若是,则对所述bios程序进行还原固件信息的操作。

作为优选,检测所述bios备份程序是否为更新后的版本,包括:

获取所述备份区存储的bios备份程序的校验信息;

验证所述bios备份程序的信息与rom存储器中存储的bios程序的信息是否一致,若一致则为更新后的版本。

作为优选,所述bios程序的信息包括所述bios程序的校验值;所述bios备份程序的信息包括所述bios备份程序的校验值。

作为优选,所述校验值可由循环冗余算法获得。

根据本发明实施的另一方面,本发明还提供一种还原固件信息的装置,包括:

启动模块,配置为当启动电子设备时,运行所述电子设备的bios程序,以进入操作系统;

固件恢复模块,配置为当运行所述bios程序失败时,且当存在bios备份程序时,使用所述bios备份程序进行固件恢复;

第一更新模块,配置为当运行所述bios程序成功时,且当进入操作系统后,且当存在bios备份程序时,则根据所述bios程序更新所述bios备份程序。

作为优选,所述装置还包括:

验证模块,配置为当运行所述bios程序成功时,验证运行的所述bios程序的信息与预先存储的所述bios程序的信息是否相一致;

第二更新模块,配置为当运行的所述bios程序的信息与预先存储的所述bios程序的信息不一致时,根据所述bios程序的信息更新预先存储的所述bios程序的信息。

作为优选,所述验证模块具体配置为:

验证备份区是否存在bios备份程序;

若存在,则验证所述bios备份程序与rom存储器中存储的bios程序版本是否一致,若不一致,则根据rom存储器所存储的bios程序版本更新备份区的所述bios备份程序;

若不存在,则根据运行的所述bios程序备份所述bios程序。

与现有技术相比,本发明实施例具有以下有益效果:本发明实施例的技术方案当运行bios程序失败时,且当存在bios备份程序时,使用所述bios备份程序进行固件恢复;当运行所述bios程序成功,且当进入操作系统后,且当存在bios备份程序时,则根据所述bios程序更新所述bios备份程序,这样能够保证所备份的bios程序是最新的bios程序,并且在还原固件信息时,也能够恢复中间的所有设置而且还可以避免在进入操作系统之前bios备份程序导致的被更新的bios备份程序不能引导操作系统的问题。

附图说明

图1为本发明的还原固件信息的方法的实施例一的流程图;

图2为本发明的还原固件信息的方法的实施例二的流程图;

图3为本发明的还原固件信息的方法的存储bios程序的区域的示意图;

图4为本发明的还原固件信息的装置的实施例一的示意图;

图5为本发明的还原固件信息的装置的实施例二的示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1为本发明的还原固件信息的方法的实施例一的流程图,如图1所示,本实施例的还原固件信息的方法,具体可以包括如下步骤:

s101,当启动电子设备时,运行所述电子设备的bios程序,以进入操作系统。

其中,电子设备可以包括台式计算机、笔记本电脑、平板电脑、手机和pda等电子设备。

在电子设备的开机过程中,可以执行bios程序以引导进入操作系统。

s102,若运行所述bios程序进入系统失败,则当存在bios备份程序时,使用所述bios备份程序还原固件信息。

具体的,在实际使用电子设备的过程中,经常会由于种种原因,例如,用户使用不当、病毒入侵等,而使bios程序出现异常。导致无法开机或进入操作系统。这时,可以检测是否存在bios备份程序,如果存在,则使用所述bios备份程序还原固件信息。

s103,若运行所述bios程序进入系统成功,则当进入操作系统后,且当存在bios备份程序时,则根据所述bios程序更新所述bios备份程序。

具体地,现有技术中有的bios备份是在未进入操作系统之前,刚开始启动电子设备,检测运行的bios程序版本为更新的版本,就对bios程序进行备份的,这种情况下,当bios程序无法引导操作系统,则备份没有任何意义;而且当引导失败后,即使进行还原固件信息的操作,仍然是无法引导操作系统。

本实施例,当成功进入操作系统后,再备份所运行的bios程序,可以保证,所备份的bios程序一定是能够成功运行的,一定能够引导操作系统的。如果当前的bios出现异常,或者更新后的bios程序无法引导操作系统等情况发生,这时只要还原固件信息,即可以实现引导系统。

另外,存储bios备份程序的备份区可以为硬盘的hpa区域。hpa是ata与s-ata规范中规定的硬盘的一种特性。支持该特性的硬盘,可以通过一些指令,将硬盘的最后一段空间设置成保护空间,设置后保护空间的数据不能被访问。如果需要访问保护空间,需要同样用ata指令打开硬盘保护空间。因此可以利用硬盘的这种特性来保证保存的用于自动恢复bios模块的bios数据的安全性。

本发明实施例的技术方案当运行bios程序失败时,且当存在bios备份程序时,使用所述bios备份程序进行固件恢复;当运行所述bios程序成功,且当进入操作系统后,且当存在bios备份程序时,则根据所述bios程序更新所述bios备份程序,这样能够保证所备份的bios程序是最新的bios程序,并且在还原固件信息时,也能够恢复中间的所有设置而且还可以避免在进入操作系统之前bios备份程序导致的被更新的bios备份程序不能引导操作系统的问题。

图2为本发明的还原固件信息的方法的实施例二的流程图,本实施例的还原固件信息的方法在上述实施例一的基础上,进一步更加详细地介绍本发明的技术方案。如图2所示,本实施例的还原固件信息的方法,具体可以包括如下步骤:

s201,当启动电子设备时,运行所述电子设备的bios程序,以进入操作系统。

其中,电子设备可以包括台式计算机、笔记本电脑、平板电脑、手机和pda等电子设备。

在电子设备的开机过程中,可以执行bios程序以引导进入操作系统。

s202,若运行所述bios程序进入系统成功,验证运行的所述bios程序的信息与只读存储器(readonlymemory,rom)中存储的所述bios程序信息是否相一致;若不一致,则执行步骤s203;否则,则执行步骤s204。

具体地,本实施例在biosrom存储器中存储有bios程序信息。为验证当前运行的bios程序是否是更新过的bios程序,需要将当前运行的bios程序的信息与预先存储的bios程序的信息进行比较,然后根据比较结果进行相应的操作。

s203,根据所述bios程序的信息更新rom存储器存储的所述bios程序信息。

具体地,若当前运行的bios程序与rom中存储的bios程序的信息不一致,则说明当前运行的程序被更新过,然后将rom中存储的bios程序的信息替换为当前运行的bios程序的信息。

s204,验证备份区是否存在bios备份程序;若存在,则执行步骤s205;否则,则执行步骤s207。

具体地,若当前运行的bios程序与rom中存储的bios程序的信息一致,则说明当前运行的程序可能没有被更新,则可以正常运行bios程序,然后根据实际情况进行备份。在根据实际情况进行备份时,首先验证备份区中是否存在bios备份程序,根据bios备份程序的情况进行相应的操作。

s205,验证所述bios备份程序与rom存储器中存储的bios程序信息是否一致;若不一致,则执行步骤s206,若一致,则执行s211。

具体地,步骤s205包括:a,验证所述bios备份程序的信息是否与预先存储的所述bios程序的信息一致;b,若不一致,则根据所述bios程序更新所述bios备份程序。

如果所述bios备份程序的信息是否与预先存储的所述bios程序的信息一致,则说明bios备份程序已经是最新的bios备份程序了,无需再进行更新;如果不一致,则说明运行的bios程序是更新过的bios程序,需要对其进行重新备份,即更新所述bios备份程序。

s206,根据rom存储器所存储的bios程序更新备份区的所述bios备份程序。

具体地,可以对当前所运行的bios程序进行重新备份。

s207,根据运行的所述bios程序备份所述bios程序。

s208,若运行所述bios程序失败,检测备份区中是否存储有bios备份程序;若存在,则执行步骤s209;否则,则执行步骤s210。

具体地,当运行所述bios程序失败时,说明当前运行的bios程序存在异常,这时应该检测备份区中是否存储有bios备份程序,以便于进行还原固件信息的操作。

s209,检测所述bios备份程序是否为更新后的版本;若是,则执行步骤s210;否则,执行步骤s211。

步骤s209包括:c,验证所述bios备份程序的信息与预先存储的bios程序的信息是否一致,若一致则为更新后的版本。

具体地,如果备份区中存在bios备份程序,则检测该bios备份程序的信息,以确定bios备份程序是否为最新的bios程序。验证的方法可以包括:验证bios备份程序的信息与当前想要运行的bios程序的信息是否一致。

s210,对所述bios程序进行还原固件信息的操作。

具体地,可以将bios备份程序复制到biosrom中,然后运行biosrom中的bios程序,以引导操作系统。

其中,上述bios程序的信息包括所述bios程序的校验值;所述bios备份程序的信息包括所述bios备份程序的校验值。如果二者版本一致,bios程序的校验值与bios备份程序的校验值也应当是一致的。

其中,校验值可由循环冗余校验算法(cyclicredundancycheck,crc)获得。循环冗余校验是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数。因此,可根据bios程序计算出其crc值,根据bios备份程序计算出其crc值,然后进行比较。

另外,如图3所示,biosrom存储bios程序的区域可分为程序区、数据区和校验区。其中,程序区用于存储引导部分和其他代码,数据区用于存储数据,校验区用于存储校验值,在本实施例中可以为crc值。在具体实施时,不论程序区中存储的引导部分和其他代码有变化,还是数据区中存储的数据发生变化,均会使得crc值发生变化,需要重新进行计算。在验证过程中,只需要将校验区中的crc值与bios备份程序的crc值进行比较,以确定是否需要重新备份。

本实施例在备份区仅保留一个最新的且可正常运行的bios程序,避免在备份区存储多个版本的bios程序时,在还原固件信息时无法确定采用哪一bios程序的问题。同时,对于存储bios备份程序的存储介质也没有限制,既可以用普通硬盘存储,也可以采用其他非易失性存储设备存储。

s211,结束运行bios程序。

本发明实施例的技术方案在引导进入操作系统后才进行备份,确保bios备份程序可以引导操作系统;同时,本实施对存储bios备份程序的存储介绍类型也没有限制。

图4为本发明的还原固件信息的装置的实施例一的示意图,如图4所示,本实施例的还原固件信息的装置,具体可以包括启动模块41、固件恢复模块42和第一更新模块43。

启动模块41,配置为当启动电子设备时,运行所述电子设备的bios程序,以进入操作系统;

固件恢复模块42,配置为当运行所述bios程序失败时,且当存在bios备份程序时,使用所述bios备份程序进行固件恢复;

第一更新模块43,配置为当运行所述bios程序成功时,且当进入操作系统后,且当存在bios备份程序时,则根据所述bios程序更新所述bios备份程序。

本实施例的还原固件信息的装置,通过采用上述模块还原固件信息的实现机制与上述图1所示实施例的还原固件信息的方法的实现机制相同,详细可以参考上述图1所示实施例的记载,在此不再赘述。

图5为本发明的还原固件信息的装置的实施例二的示意图,本实施例的还原固件信息的装置在如图4所示的实施例一的基础上,进一步更加详细地介绍本发明的技术方案。如图5所示,本实施例的还原固件信息的装置,进一步可以包括:

验证模块51,配置为当运行所述bios程序成功时,验证运行的所述bios程序的信息与预先存储的所述bios程序的信息是否相一致;

第二更新模块52,配置为当运行的所述bios程序的信息与预先存储的所述bios程序的信息不一致时,根据所述bios程序的信息更新预先存储的所述bios程序的信息。

所述验证模块51具体配置为:

验证备份区是否存在bios备份程序;

若存在,则验证所述bios备份程序与rom存储器中存储的bios程序版本是否一致,若不一致,则根据rom存储器所存储的bios程序版本更新备份区的所述bios备份程序;

若不存在,则根据运行的所述bios程序备份所述bios程序。

本实施例的还原固件信息的装置,通过采用上述模块还原固件信息的实现机制与上述图2所示实施例的还原固件信息的方法的实现机制相同,详细可以参考上述图2所示实施例的记载,在此不再赘述。

以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1