一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于PFR的BIOS固件恢复方法、系统、终端及存储介质与流程

2022-03-02 01:38:38 来源:中国专利 TAG:

基于pfr的bios固件恢复方法、系统、终端及存储介质
技术领域
1.本发明涉及服务器技术领域,具体涉及一种基于pfr的bios固件恢复方法、系统、终端及存储介质。


背景技术:

2.平台固件恢复功能pfr是intel设计的一种新的安全技术,pfr的目的是用于保护平台资产、检测损坏固件等恶意或错误行为,以及恢复平台固件到良好状态的技术。
3.在pfr的安全架构中,bios flash被分为了三个部分,分为active、recovery、staging。active中存储的是未经压缩的、直接执行的固件,recovery中存储的是压缩过得备份文件,staging是用于升级的临时缓冲区。设备启动时,pfr会对active进行校验,校验通过后设备从active中启动。校验失败时,pfr会将recovery中的镜像恢复到active中,然后重新启动。当系统固件升级时,pfr会对升级包进行校验,校验成功后,首先将固件放到staging中,然后系统重启,重启后会将新的固件写入active和recovery区域中。
4.现有的固件恢复方法,当服务器启动时,pfr对bios active校验失败时,无论bios active受到损坏的是哪一部分,程度如何,全部采取一样的策略:使用bios recovery内的备份文件将bios active全部覆盖。pfr对bios active校验失败时,只采用一种完全覆盖策略,缺少针对性,导致未损坏的部分也被清除恢复,恢复时间过长,这就造成了资源浪费,也浪费了时间。


技术实现要素:

5.针对现有技术的上述不足,本发明提供一种基于pfr的bios固件恢复方法、系统、终端及存储介质,以解决上述技术问题。
6.第一方面,本发明提供一种基于pfr的bios固件恢复方法,包括:
7.将bios存储的业务区域划分为多个子区域,多个子区域分别存储不同的固件文件;
8.基于平台固件恢复功能分别对多个子区域进行固件文件完整性校验;
9.如果校验结果中存在存储的固件文件被损坏的异常子区域,则从bios存储的备份区域读取异常子区域的备份固件文件,并将备份固件文件写入所述异常子区域。
10.进一步的,将bios存储的业务区域划分为多个子区域,多个子区域分别存储不同的固件文件,包括:
11.根据bios存储的业务区域的组成部分的类型或限定的数据块大小将业务区域划分为多个子区域;
12.为每个子区域分配编号。
13.进一步的,基于平台固件恢复功能分别对多个子区域进行固件文件完整性校验,包括:
14.在服务器启动时,分别获取各子区域存储的固件文件的md5值;
15.判断子区域的md5值与相应的初始md5值是否一致,若两者一致则判定子区域通过校验。
16.进一步的,如果校验结果中存在存储的固件文件被损坏的异常子区域,则从bios存储的备份区域读取异常子区域的备份固件文件,并将备份固件文件写入所述异常子区域,包括:
17.预先在bios存储的备份区域划分多个备份子区域并为多个备份子区域分配身份编号,建立子区域编号与备份子区域编号的一一映射关系,在子区域的具有映射关系的备份子区域内存储子区域固件文件的备份固件文件,所述备份固件文件采用压缩文件格式;
18.根据映射关系和异常子区域的编号,利用相应备份子区域的解压后的备份固件文件覆盖子区域内的被损坏的固件文件。
19.第二方面,本发明提供一种基于pfr的bios固件恢复系统,包括:
20.存储划分单元,用于将bios存储的业务区域划分为多个子区域,多个子区域分别存储不同的固件文件;
21.文件校验单元,用于基于平台固件恢复功能分别对多个子区域进行固件文件完整性校验;
22.文件更新单元,用于如果校验结果中存在存储的固件文件被损坏的异常子区域,则从bios存储的备份区域读取异常子区域的备份固件文件,并将备份固件文件写入所述异常子区域。
23.进一步的,所述存储划分单元包括:
24.区域划分模块,用于根据bios存储的业务区域的组成部分的类型或限定的数据块大小将业务区域划分为多个子区域;
25.编号分配模块,用于为每个子区域分配编号。
26.进一步的,所述文件校验单元包括:
27.文件计算模块,用于在服务器启动时,分别获取各子区域存储的固件文件的md5值;
28.一致比对模块,用于判断子区域的md5值与相应的初始md5值是否一致,若两者一致则判定子区域通过校验。
29.进一步的,所述文件更新单元包括:
30.备份映射模块,用于预先在bios存储的备份区域划分多个备份子区域并为多个备份子区域分配身份编号,建立子区域编号与备份子区域编号的一一映射关系,在子区域的具有映射关系的备份子区域内存储子区域固件文件的备份固件文件,所述备份固件文件采用压缩文件格式;
31.文件覆盖模块,用于根据映射关系和异常子区域的编号,利用相应备份子区域的解压后的备份固件文件覆盖子区域内的被损坏的固件文件。
32.第三方面,提供一种终端,包括:
33.处理器、存储器,其中,
34.该存储器用于存储计算机程序,
35.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
36.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
37.本发明的有益效果在于,本发明提供的基于pfr的bios固件恢复方法、系统、终端及存储介质,对bios中不同区域分别校验,根据bios中每个部分校验结果的不同,采用不一样的recovery策略,只恢复校验失败的区域,可以最大限度的保存现有配置,避免之前的配置信息丢失,提高恢复针对性,减少资源浪费,同时降低了恢复时间。本发明可以最大限度的保存现有配置,避免之前的配置信息丢失,降低文件恢复时间。
38.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
39.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1是本发明一个实施例的方法的示意性流程图。
41.图2是本发明一个实施例的系统的示意性框图。
42.图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
43.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
44.下面对本发明中出现的关键术语进行解释。
45.flash存储器属内存器件的一种,是一种非易失性(non-volatile)内存。flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。nand器件执行擦除操作是十分简单的,而nor则要求在进行擦除前先要将目标块内所有的位都写为0。
46.bios是英文"basic input output system"的缩略词,直译过来后中文名称就是"基本输入输出系统"。在ibm pc兼容系统上,是一种业界标准的固件接口。它是一组固化到计算机内主板上一个rom芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从cmos中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,bios还向作业系统提供一些系统参数。系统硬件的变化是由bios隐藏,程序使用bios功能而不是直接控制硬件。现代作业系统会忽略bios提供的抽象层并直接控制硬件组件。
47.cpu中央处理器(central processing unit,简称cpu)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
48.md5信息摘要算法(英语:md5 message-digest algorithm),一种被广泛使用的密
码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。md5由美国密码学家罗纳德
·
李维斯特(ronald linn rivest)设计,于1992年公开,用以取代md4算法。这套算法的程序在rfc 1321标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如sha-2。2004年,证实md5算法无法防止碰撞(collision),因此不适用于安全性认证,如ssl公开密钥认证或是数字签名等用途。md5算法的原理可简要的叙述为:md5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
49.固件(firmware)就是写入eprom(可擦写可编程只读存储器)或eeprom(电可擦可编程只读存储器)中的程序。固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。固件是担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。
50.现有技术方案为:支持pfr功能的bios将直接执行的固件存储在active区域,将压缩过的备份文件储存在recovery区域;服务器启动时,pfr会对bios active进行校验,如果校验成功,服务器使用bios active进行启动;若启动时,pfr对bios active进行校验失败,会将recovery中的镜像恢复到active中,然后重新启动。
51.为了解决pfr对bios active校验失败时,只采用一种完全覆盖策略,缺少针对性,导致未损坏的部分也被清除恢复,恢复时间过长的问题。本发明提供如下方法。
52.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种基于pfr的bios固件恢复系统。
53.如图1所示,该方法包括:
54.步骤110,将bios存储的业务区域划分为多个子区域,多个子区域分别存储不同的固件文件;
55.步骤120,基于平台固件恢复功能分别对多个子区域进行固件文件完整性校验;
56.步骤130,如果校验结果中存在存储的固件文件被损坏的异常子区域,则从bios存储的备份区域读取异常子区域的备份固件文件,并将备份固件文件写入所述异常子区域。
57.对bios中不同区域分别校验,根据bios中每个部分校验结果的不同,采用不一样的recovery策略,只恢复校验失败的区域,可以最大限度的保存现有配置,避免之前的配置信息丢失,提高恢复针对性,减少资源浪费,同时降低了恢复时间。bios active有不同的组成部分,如der,flash descriptor,boot,main,nvmram等,当服务器启动时,fpr分别对这些bios区域进行校验,当校验失败时,仅对bios部分校验失败的区域进行恢复。
58.为了便于对本发明的理解,下面以本发明基于pfr的bios固件恢复方法的原理,结合实施例中对基于pfr的bios固件进行恢复的过程,对本发明提供的基于pfr的bios固件恢复方法做进一步的描述。
59.具体的,所述基于pfr的bios固件恢复方法包括:
60.s1、将bios存储的业务区域划分为多个子区域,多个子区域分别存储不同的固件文件。
61.根据bios存储的业务区域的组成部分的类型或限定的数据块大小将业务区域划分为多个子区域;为每个子区域分配编号。
62.首先,根据业务区域的组成部分的类型划分子区域,bios active有不同的组成部分,如der,flash descriptor,boot,main,nvmram等,不同类型的存储划分为不同的区域,在区域存储类型的基础上,可以进一步通过设定数据块的大小对同一类型存储内部存储进行划分。例如flash存储文件大于设定的数据块大小,可将flash划分为flash1和flash2。
63.s2、基于平台固件恢复功能分别对多个子区域进行固件文件完整性校验。
64.在服务器启动时,分别获取各子区域存储的固件文件的md5值;判断子区域的md5值与相应的初始md5值是否一致,若两者一致则判定子区域通过校验。
65.本实施例仅提供一种数据一致性示例,在本发明的其他实施方式中也可采用其他方法校验固件文件的完整性。
66.s3、如果校验结果中存在存储的固件文件被损坏的异常子区域,则从bios存储的备份区域读取异常子区域的备份固件文件,并将备份固件文件写入所述异常子区域。
67.预先在bios存储的备份区域划分多个备份子区域并为多个备份子区域分配身份编号,建立子区域编号与备份子区域编号的一一映射关系,在子区域的具有映射关系的备份子区域内存储子区域固件文件的备份固件文件,所述备份固件文件采用压缩文件格式;根据映射关系和异常子区域的编号,利用相应备份子区域的解压后的备份固件文件覆盖子区域内的被损坏的固件文件。
68.在校验bios active的过程中,对bios active的每个区域分别进行校验,并记录校验失败的区域,在恢复过程中,只针对这些校验失败的区域进行恢复。通过建立子区域与备份子区域一一映射的关系,在固件文件受损时能够快速调取备份文件,缩短了数据恢复进程。
69.本实施例针对校验失败的区域进行恢复更新的手法,可以最大限度的保存现有配置,避免之前的配置信息丢失,降低恢复时间。
70.如图2所示,该系统200包括:
71.存储划分单元210,用于将bios存储的业务区域划分为多个子区域,多个子区域分别存储不同的固件文件;
72.文件校验单元220,用于基于平台固件恢复功能分别对多个子区域进行固件文件完整性校验;
73.文件更新单元230,用于如果校验结果中存在存储的固件文件被损坏的异常子区域,则从bios存储的备份区域读取异常子区域的备份固件文件,并将备份固件文件写入所述异常子区域。
74.可选地,作为本发明一个实施例,所述存储划分单元包括:
75.区域划分模块,用于根据bios存储的业务区域的组成部分的类型或限定的数据块大小将业务区域划分为多个子区域;
76.编号分配模块,用于为每个子区域分配编号。
77.可选地,作为本发明一个实施例,所述文件校验单元包括:
78.文件计算模块,用于在服务器启动时,分别获取各子区域存储的固件文件的md5值;
79.一致比对模块,用于判断子区域的md5值与相应的初始md5值是否一致,若两者一致则判定子区域通过校验。
80.可选地,作为本发明一个实施例,所述文件更新单元包括:
81.备份映射模块,用于预先在bios存储的备份区域划分多个备份子区域并为多个备份子区域分配身份编号,建立子区域编号与备份子区域编号的一一映射关系,在子区域的具有映射关系的备份子区域内存储子区域固件文件的备份固件文件,所述备份固件文件采用压缩文件格式;
82.文件覆盖模块,用于根据映射关系和异常子区域的编号,利用相应备份子区域的解压后的备份固件文件覆盖子区域内的被损坏的固件文件。
83.图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的基于pfr的bios固件恢复方法。
84.其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
85.其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
86.处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
87.通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
88.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
89.因此,本发明对bios中不同区域分别校验,根据bios中每个部分校验结果的不同,采用不一样的recovery策略,只恢复校验失败的区域,可以最大限度的保存现有配置,避免之前的配置信息丢失,提高恢复针对性,减少资源浪费,同时降低了恢复时间。本发明可以最大限度的保存现有配置,避免之前的配置信息丢失,降低文件恢复时间,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
90.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需
的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
91.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
92.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
93.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
94.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
95.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献