发明内容
本申请的目的在于提供一种BIOS的自动修复功能测试方法、装置、电子设备及计算机可读存储介质,以便有效提高测试效率和操作的便利性。
为解决上述技术问题,第一方面,本申请公开了一种BIOS的自动修复功能测试方法,应用于BIOS芯片,包括:
在接收到基板管理控制器发送的预设IPMI指令后,调用预设模拟程序以破坏BIOS固件的主模块;
保存被破坏后的所述BIOS固件;
重启系统以便进行BIOS自动修复功能测试。
可选地,所述调用预设模拟程序以破坏BIOS固件的主模块,包括:
基于所述预设模拟程序查找BIOS固件的所述主模块;
基于所述预设模拟程序删除所述主模块。
可选地,所述调用预设模拟程序以破坏BIOS固件的主模块,包括:
基于所述预设模拟程序查找BIOS固件的所述主模块;
基于所述预设模拟程序删除所述主模块中的首个字符串。
可选地,所述重启系统以便进行BIOS自动修复功能测试,包括:
重启系统以便基于预先存储的完整的BIOS固件备份进行自动修复功能测试。
第二方面,本申请还公开了一种BIOS的自动修复功能测试装置,包括:
调用单元,用于在接收到基板管理控制器发送的预设IPMI指令后,调用预设模拟程序以破坏BIOS固件的主模块;
保存单元,用于保存被破坏后的所述BIOS固件;
重启单元,用于重启系统以便进行BIOS自动修复功能测试。
可选地,所述调用单元具体用于:
基于所述预设模拟程序查找BIOS固件的所述主模块;并基于所述预设模拟程序删除所述主模块。
可选地,所述调用单元具体用于:
基于所述预设模拟程序查找BIOS固件的所述主模块;并基于所述预设模拟程序删除所述主模块中的首个字符串。
可选地,所述重启单元具体用于:
重启系统以便基于预先存储的完整的BIOS固件备份进行自动修复功能测试。
第三方面,本申请还公开了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上所述的任一种BIOS的自动修复功能测试方法的步骤。
第四方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种BIOS的自动修复功能测试方法的步骤。
本申请所提供的BIOS的自动修复功能测试方法应用于BIOS芯片,包括:在接收到基板管理控制器发送的预设IPMI指令后,调用预设模拟程序以破坏BIOS固件的主模块;保存被破坏后的所述BIOS固件;重启系统以便进行BIOS自动修复功能测试。
可见,本申请实施例所提供的BIOS的自动修复功能测试方法,基于预设IPMI指令触发执行预先在BIOS芯片中设置的预设模拟程序,可高效、自动、准确地将BIOS固件的主模块破坏,以便进行BIOS自动修复功能测试。一方面,本申请避免了拆装BIOS芯片,适用于各类主板结构,而另一方面,由于本申请中预设模拟程序的开发工作可由BIOS固件开发人员在固件开发阶段一同完成,因此测试人员在测试阶段仅需直接观测测试结果即可,无需再通过咨询开发人员进而手动定位破坏固件的主模块,既提高了测试效率,又避免了主模块的数据定位失误。本申请所提供的BIOS的自动修复功能测试装置、电子设备及计算机可读存储介质同样具有上述有益效果。
具体实施方式
本申请的核心在于提供一种BIOS的自动修复功能测试方法、装置、电子设备及计算机可读存储介质,以便有效提高测试效率和操作的便利性。
为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
基本输入输出系统(Basic Input Output System,BIOS)是服务器等设备主板上的一个重要固件程序。一般地,为了确保BIOS芯片的正常工作,目前在国产服务器中,设计人员一般均为BIOS芯片开发了自动修复功能,即BIOS recovery功能。基于该功能,当BIOS芯片里的文件被破坏后,其即可进行自动修复,有效保障器件程序的运行安全。
相应地,在服务器产品测试阶段,BIOS recovery功能的测试也自然成为其中重要的一项。但是,在相关技术中,测试人员一般在咨询过专业的BIOS开发人员后,使用第三方工具破坏掉开发人员指明的BIOS的特定区域,并将被破坏后的BIOS文件用烧录器烧录到BIOS芯片里,并重新将BIOS芯片安装至服务器上电开机,从而对BIOS芯片能否在上电后利用recovery功能成功进行自我修复。
可见,上述方法比较适用于主板上的BIOS芯片方便取摘的情况,否则将十分麻烦。此外,由于BIOS文件内部区域划分是不断变化的,一般只有专业开发人员才知道,因此,该方法将耗费测试人员较多工时与开发人员进行咨询,不便于测试工作的长期开展,影响测试效率。鉴于此,本申请提供了一种BIOS的自动修复功能测试方案,可有效解决上述问题。
参见图1所示,本申请实施例公开了一种BIOS的自动修复功能测试方法,应用于BIOS芯片,主要包括:
S101:在接收到基板管理控制器发送的预设IPMI指令后,调用预设模拟程序以破坏BIOS固件的主模块。
S102:保存被破坏后的BIOS固件。
S103:重启系统以便进行BIOS自动修复功能测试。
具体地,本申请实施例所提供的BIOS的自动修复功能测试方法,具体可基于基板管理控制器(Baseboard Management Controller,BMC)与BIOS芯片间的数据交互而自动进行,从而无需相关测试人员利用第三方工具等手动破坏BIOS芯片的数据完整性,更有效避免了将BIOS芯片在主板上的摘取、安装操作,省却了不必要的人工成本。
具体地,本申请实施例预先为BMC和BIOS芯片间的通信定义并设置了一个预设IPMI(Intelligent Platform Management Interface,智能平台管理接口)指令,并且还在BIOS芯片中预先开发有一个预设模拟程序。该IPMI指令具体用于指示BIOS芯片调用并执行该预设模拟程序。
其中,该预设模型程序在被执行时具体用于破坏BIOS固件的主模块,由此令BIOS芯片的数据完整性被破坏,以便在此情况下进行自动恢复功能的测试。
当通过执行预设模拟程序而达到破坏BIOS固件数据完整性的目的之后,便可保存被破坏后的BIOS固件,进而重启系统。当BIOS上电重启后,BIOS recovery功能将自动校验数据完整性进而在检测到数据被破坏后进行自动修复,测试人员即可获取关于自动修复功能的测试结果。
本申请实施例所提供的BIOS的自动修复功能测试方法应用于BIOS芯片,包括:在接收到基板管理控制器发送的预设IPMI指令后,调用预设模拟程序以破坏BIOS固件的主模块;保存被破坏后的BIOS固件;重启系统以便进行BIOS自动修复功能测试。
可见,本申请实施例所提供的BIOS的自动修复功能测试方法,基于预设IPMI指令触发执行预先在BIOS芯片中设置的预设模拟程序,可高效、自动、准确地将BIOS固件的主模块破坏,以便进行BIOS自动修复功能测试。一方面,本申请避免了拆装BIOS芯片,适用于各类主板结构,而另一方面,由于本申请中预设模拟程序的开发工作可由BIOS固件开发人员在固件开发阶段一同完成,因此测试人员在测试阶段仅需直接观测测试结果即可,无需再通过咨询开发人员进而手动定位破坏固件的主模块,既提高了测试效率,又避免了主模块的数据定位失误。
作为一种具体实施例,本申请实施例所提供的BIOS的自动修复功能测试方法在上述内容的基础上,调用预设模拟程序以破坏BIOS固件的主模块,包括:
基于预设模拟程序查找BIOS固件的主模块;
基于预设模拟程序删除主模块。
具体地,为了对BIOS固件的自动修复功能进行测试,需要先将其数据完整性破坏。而具体地,需要破坏的是BIOS固件的主模块。由此,本实施例中,预设模拟程序可具体包括有相应的定位查找子程序,以便用于查找BIOS固件的主模块。此外,预设模拟程序还可包括相应的删除子程序,用于执行数据删除。
其中,在本实施例中,删除子程序在进行主模块的数据删除时,可直接将整个主模块的全部数据删除。
作为一种具体实施例,本申请实施例所提供的BIOS的自动修复功能测试方法在上述内容的基础上,调用预设模拟程序以破坏BIOS固件的主模块,包括:
基于预设模拟程序查找BIOS固件的主模块;
基于预设模拟程序删除主模块中的首个字符串。
在本实施例中,预设模拟程序也同样具体包括有用于查找主模块的查找子程序,以及用于删除数据的删除子程序。本领域技术人员容易理解的是,作为BIOS固件中的一个重要模块,BIOS固件的主模块是用于执行开机运行后的相关基本输入输出初始化工作的,因此主模块中的任何一部分数据的丢失都将破坏BIOS固件的数据完整性。有鉴于此,本实施例中的删除子程序具体仅仅是删除主模块中的首个字符串。
容易理解的是,本领域技术人员也可以自行设置其他具体的删除方式,例如仅删除主模块中的第二个字符串、……、最后一个字符串等,本申请对此并不进行限定。
作为一种具体实施例,本申请实施例所提供的BIOS的自动修复功能测试方法在上述内容的基础上,重启系统以便进行BIOS自动修复功能测试,包括:
重启系统以便基于预先存储的完整的BIOS固件备份进行BIOS自动修复功能测试。
具体地,在进行BIOS自动修复功能测试之前,可将存储有完整的BIOS固件备份的存储设备,例如优盘、硬盘等,连接至主板,以便在主板重启开机上电后,利用存储设备中完整的BIOS固件备份对BIOS芯片中被破坏的BIOS固件进行数据完整性校验,进而进行自动修复。
参见图2所示,本申请实施例公开了一种BIOS的自动修复功能测试装置,主要包括:
调用单元201,用于在接收到基板管理控制器发送的预设IPMI指令后,调用预设模拟程序以破坏BIOS固件的主模块;
保存单元202,用于保存被破坏后的BIOS固件;
重启单元203,用于重启系统以便进行BIOS自动修复功能测试。
可见,本申请实施例所公开的BIOS的自动修复功能测试装置,基于预设IPMI指令触发执行预先在BIOS芯片中设置的预设模拟程序,可高效、自动、准确地将BIOS固件的主模块破坏,以便进行BIOS自动修复功能测试。一方面,本申请避免了拆装BIOS芯片,适用于各类主板结构,而另一方面,由于本申请中预设模拟程序的开发工作可由BIOS固件开发人员在固件开发阶段一同完成,因此测试人员在测试阶段仅需直接观测测试结果即可,无需再通过咨询开发人员进而手动定位破坏固件的主模块,既提高了测试效率,又避免了主模块的数据定位失误。
关于上述BIOS的自动修复功能测试装置的具体内容,可参考前述关于BIOS的自动修复功能测试方法的详细介绍,这里就不再赘述。
作为一种具体实施例,本申请实施例所公开的BIOS的自动修复功能测试装置在上述内容的基础上,调用单元201具体用于:
基于预设模拟程序查找BIOS固件的主模块;并基于预设模拟程序删除主模块。
作为一种具体实施例,本申请实施例所公开的BIOS的自动修复功能测试装置在上述内容的基础上,调用单元201具体用于:
基于预设模拟程序查找BIOS固件的主模块;并基于预设模拟程序删除主模块中的首个字符串。
作为一种具体实施例,本申请实施例所公开的BIOS的自动修复功能测试装置在上述内容的基础上,重启单元203具体用于:
重启系统以便基于预先存储的完整的BIOS固件备份进行自动修复功能测试。
参见图3所示,本申请实施例公开了一种电子设备,包括:
存储器301,用于存储计算机程序;
处理器302,用于执行所述计算机程序以实现如下步骤:
在接收到基板管理控制器发送的预设IPMI指令后,调用预设模拟程序以破坏BIOS固件的主模块;保存被破坏后的所述BIOS固件;重启系统以便进行BIOS自动修复功能测试。
在一个实施例中,存储器301中存储的计算机子程序在被处理器302执行时具体用于:基于所述预设模拟程序查找BIOS固件的所述主模块;基于所述预设模拟程序删除所述主模块。
在一个实施例中,存储器301中存储的计算机子程序在被处理器302执行时具体用于:基于所述预设模拟程序查找BIOS固件的所述主模块;基于所述预设模拟程序删除所述主模块中的首个字符串。
在一个实施例中,存储器301中存储的计算机子程序在被处理器302执行时具体用于:重启系统以便基于预先存储的完整的BIOS固件备份进行自动修复功能测试。
进一步地,本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如下步骤:
在接收到基板管理控制器发送的预设IPMI指令后,调用预设模拟程序以破坏BIOS固件的主模块;保存被破坏后的所述BIOS固件;重启系统以便进行BIOS自动修复功能测试。
在一个实施例中,所述计算机可读存储介质中存储的计算机子程序在被处理器执行时具体用于:基于所述预设模拟程序查找BIOS固件的所述主模块;基于所述预设模拟程序删除所述主模块。
在一个实施例中,所述计算机可读存储介质中存储的计算机子程序在被处理器执行时具体用于:基于所述预设模拟程序查找BIOS固件的所述主模块;基于所述预设模拟程序删除所述主模块中的首个字符串。
在一个实施例中,所述计算机可读存储介质中存储的计算机子程序在被处理器执行时具体用于:重启系统以便基于预先存储的完整的BIOS固件备份进行自动修复功能测试。
关于上述电子设备和计算机可读存储介质的具体内容,可参考前述关于BIOS的自动修复功能测试方法的详细介绍,这里就不再赘述。
本申请中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需说明的是,在本申请文件中,诸如“第一”和“第二”之类的关系术语,仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。