CN117032813A - 双基本输入输出系统闪存的切换判定方法及装置 - Google Patents
双基本输入输出系统闪存的切换判定方法及装置 Download PDFInfo
- Publication number
- CN117032813A CN117032813A CN202311301658.1A CN202311301658A CN117032813A CN 117032813 A CN117032813 A CN 117032813A CN 202311301658 A CN202311301658 A CN 202311301658A CN 117032813 A CN117032813 A CN 117032813A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- output system
- basic input
- current
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 301
- 238000000034 method Methods 0.000 title claims abstract description 216
- 230000009977 dual effect Effects 0.000 title claims abstract description 59
- 230000008569 process Effects 0.000 claims abstract description 136
- 230000002159 abnormal effect Effects 0.000 claims abstract description 87
- 238000012795 verification Methods 0.000 claims description 111
- 230000006870 function Effects 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 34
- 230000007246 mechanism Effects 0.000 claims description 23
- 238000012549 training Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 150000003839 salts Chemical class 0.000 claims description 13
- 230000005856 abnormality Effects 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 8
- 238000010801 machine learning Methods 0.000 claims description 6
- 238000013135 deep learning Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 8
- 238000007726 management method Methods 0.000 description 18
- 241000282472 Canis lupus familiaris Species 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 108010028984 3-isopropylmalate dehydratase Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/4408—Boot device selection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种双基本输入输出系统闪存的切换判定方法及装置,适用于计算机固件技术领域。在基本输入输出系统启动过程中的第一阶段和第二阶段,根据硬件策略的硬件设计,检测当前基本输入输出系统闪存的只读区域数据是否完整;在第三阶段和第四阶段,根据软件策略检测当前基本输入输出系统闪存是否正常,上述数据不完整、第三阶段至第四阶段的当前基本输入输出系统闪存的异常情况,均需要切换至另一个输入输出系统闪存启动。相比于当前的双flash芯片下仅通过超时的误判切换情况,在服务器启动之前的不同阶段采用不同的硬软件策略,精准判断以提高flash芯片的切换判定的准确性,保证flash的可靠性和稳定性。
Description
技术领域
本发明涉及计算机固件技术领域,特别是涉及一种双基本输入输出系统闪存的切换判定方法、装置、设备及介质。
背景技术
在服务器开机启动过程中,需要进行硬件的检查,资源配置以及初始化等阶段,固件程序被加载到内存中以保证服务器正常运行。
若基本输入输出系统(Basic Input Output System,BIOS)闪存(flash)中的固件程序发生问题,会导致存储在BIOS flash的数据读写错误,数据升级出现异常,甚至导致服务器无法正常启动。当前对于BIOS flash芯片采用双flash芯片,在一个flash芯片损坏后切换至另一个flash芯片。目前对于flash芯片的切换判定仅是通过超时确定,但是在BIOS启动过程中包括四个阶段,图1为基本输入输出系统启动过程的四个阶段示意图,如图1所示,第一阶段,安全阶段(Security,SEC);第二阶段,预固件接口标准初始化(Pre-Extensible Firmware Interface Initialization,PEI)阶段;第三阶段,驱动程序执行环境(Driver Execution Environment,DXE)和第四阶段,引导设备选择(Boot DeviceSelection)阶段,整个启动过程中的超时情况有可能并不是当前flash芯片损坏造成的,有可能是服务器满插的外设设备较多存在的超时,也有可能是软件初始化过程中存在的宕机行为,均被误判为当前flash出现问题,这样简单粗暴的判定会导致flash芯片的浪费,使得服务器的可靠性和稳定性降低。
因此,如何精准判定flash芯片的切换以保证服务器的可靠性和稳定性是本领域技术人员亟需要解决的问题。
发明内容
本发明的目的是提供一种双基本输入输出系统闪存的切换判定方法、装置、设备及介质,以解决在整个BIOS启动过程中简单粗暴的切换判定导致flash芯片的浪费,使得服务器的可靠性和稳定性降低的问题。
为解决上述技术问题,本发明提供一种双基本输入输出系统闪存的切换判定方法,包括:
在基本输入输出系统启动过程中的第一阶段和第二阶段,获取当前基本输入输出系统闪存,并根据硬件策略确定所述当前基本输入输出系统闪存的只读区的完整性;
在所述只读区完整的情况下,且在所述基本输入输出系统启动过程中的第三阶段和第四阶段,根据软件策略确定所述当前基本输入输出系统闪存的工作状态,其中,所述软件策略至少包括计时器策略和校验策略;
在所述工作状态为异常或者所述只读区不完整的情况下,由所述当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存进行启动。
一方面,所述硬件策略的确定过程,包括:
获取预设时间以及所述基本输入输出系统对所属硬件电路的预留通用输入输出接口;
在所述预设时间内控制所述基本输入输出系统拉起所述预留通用输入输出接口以确定所述硬件策略。
另一方面,所述根据硬件策略确定所述当前基本输入输出系统闪存的只读区的完整性,包括:
在所述预设时间内判断所述基本输入输出系统是否拉起所述预留通用输入输出接口;
若拉起,则确定所述预留通用输入输出接口有效,并确定所述当前基本输入输出系统闪存的所述只读区完整;
若未拉起,则确定所述预留通用输入输出接口无效,并确定所述当前基本输入输出系统闪存的所述只读区不完整。
另一方面,所述根据软件策略确定所述当前基本输入输出系统闪存的工作状态,包括:
根据所述计时器策略确定所述当前基本输入输出系统闪存的加载过程是否超时;
如果未超时,则确定所述当前基本输入输出系统闪存的加载过程正常;
如果超时,则确定所述当前基本输入输出系统闪存的加载过程异常;
在所述当前基本输入输出系统闪存的加载过程异常的情况下,获取只读区域数据的获取预定时间;
在所述获取预定时间内判断是否获取到所述当前基本输入输出系统闪存内的所述只读区域数据,其中,所述只读区域数据包括所述当前基本输入输出系统闪存在所述第一阶段、所述第二阶段内的所述只读区的数据和所述第三阶段、所述第四阶段内除变量区之外的只读区内的数据;
若未获取到,则确定所述当前基本输入输出系统闪存的工作状态为异常;
若获取到,则根据所述校验策略确定所述当前基本输入输出系统闪存的工作状态是否异常;
若校验正确,则确定所述当前基本输入输出系统闪存的工作状态正常;
若校验错误,则确定所述当前基本输入输出系统闪存的工作状态异常。
另一方面,所述计时器策略预先在基本输入输出系统闪存的所述第二阶段内建立,且由基板管理控制器的智能平台管理接口设定所述计时器策略的计时初始值,并在所述基本输入输出系统启动过程的所述第三阶段和所述第四阶段运行。
另一方面,所述计时器策略具体为看门狗定时器的定时机制,所述根据所述计时器策略确定所述当前基本输入输出系统闪存的加载过程是否超时,包括:
获取所述当前基本输入输出系统闪存的加载过程对应的外部设备数量;
若在所述外部设备数据大于所述计时初始值内正常加载的外部设备数量时,则确定在所述计时初始值内所述当前基本输入输出系统闪存的加载过程超时;
若在所述外部设备数据小于或者等于所述计时初始值内正常加载的外部设备数量时,则确定在所述计时初始值内所述当前基本输入输出系统闪存的加载过程未超时;
或者,在所述计时初始值内判断所述当前基本输入输出系统闪存的加载过程中是否存在喂狗机制;
若不存在,则在所述计时初始值结束时确定所述当前基本输入输出系统闪存的加载过程超时;
若存在,则确定所述当前基本输入输出系统闪存的加载过程未超时。
另一方面,所述校验策略的确定过程,包括:
获取所述基本输入输出系统的二进制文件;
将所述二进制文件上传至基板管理控制器内的软件界面以获取所述当前基本输入输出系统闪存的所述只读区域数据;
获取所述基本输入输出系统所属的服务器型号信息以及加盐数据;
根据所述只读区域数据、所述服务器型号信息和所述加盐数据的关系确定校验函数以建立所述校验策略。
另一方面,所述加盐数据的确定过程至少包括以下方式之一:
由时间戳和/或字符串确定的数据;
根据加密规则生成的密文数据;
由随机函数加密生成的随机序列对应的数据。
另一方面,所述根据所述校验策略确定所述当前基本输入输出系统闪存的工作状态是否异常,包括:
获取预先存储在存储器内的预设校验值;
获取所述当前基本输入输出系统闪存的所述只读区域数据;
根据所述校验函数对所述当前基本输入输出系统闪存的所述只读区域数据进行计算得到当前校验值;
判断所述当前校验值与所述预设校验值是否相同;
若相同,则确定校验正确,并确定所述当前基本输入输出系统闪存的工作状态正常;
若不同,则确定校验错误,并确定所述当前基本输入输出系统闪存的工作状态异常。
另一方面,所述根据所述只读区域数据、所述服务器型号信息和所述加盐数据的关系确定校验函数,包括:
将所述服务器型号信息对应的所述只读区域数据与所述加盐数据进行填充处理得到第一预设长度的第一数据;
根据所述第一预设长度对所述第一数据进行分割得到多个第二预设长度的第二数据,其中,所述第一预设长度大于所述第二预设长度;
将多个所述第二预设长度的第二数据进行初始化消息摘要缓存的迭代处理,得到最终的校验输出结果以建立所述校验函数。
另一方面,所述根据所述只读区域数据、所述服务器型号信息和所述加盐数据的关系确定校验函数,包括:
调用初始校验模型,将所述只读区域数据和所述服务器型号信息作为输入参数输入至所述初始校验模型,其中,所述初始校验模型至少包括深度学习、机器学习的一种或者多种模型;
将所述服务器型号信息对应的加盐数据预先存储在所述初始校验模型内以便于与所述服务器型号信息对应的只读区域数据进行特征提取处理得到特征数据;
将所述特征数据进行分类处理得到分类结果,并将所述分类结果作为所述初始校验模型的当前输出参数;
判断所述当前输出参数所属的当前迭代次数是否满足预设要求,其中,所述预设要求由迭代次数确定;
若满足,则得到迭代训练完成的校验模型,并将所述迭代训练完成的校验模型作为所述校验函数;
若不满足,则返回至所述调用初始校验模型的步骤进行训练迭代,直至所述当前输出参数所属的当前迭代次数满足所述预设要求为止。
另一方面,所述当前校验值与所述预设校验值的比较过程,包括:
在所述当前校验值与所述预设校验值对应的各自数据长度不同时,将所述当前校验值的数据长度进行特征处理得到与所述预设校验值的数据长度相同的第一校验值;
将所述第一校验值与所述预设校验值对应拆分为各校验字;
将所述第一校验值的各校验字与所述预设校验值的校验字一一比较确定各第一校验结果;
将各所述第一校验结果的平方加和得到第二校验结果;
将所述第二校验结果进行根号处理得到所述第一校验值与所述预设校验值的距离值;
在所述距离值为0时,确定所述第一校验值与所述预设校验值的相似度为1,并得到所述第一校验值与所述预设校验值相同;
在所述距离值不为0时,确定所述第一校验值与所述预设校验值的相似度小于1,并得到所述第一校验值与所述预设校验值不同。
另一方面,在所述当前校验值与所述预设校验值相同时,还包括:
在所述当前校验值与所述预设校验值相同时,确定当前基本输入输出系统程式异常;
在确定所述当前基本输入输出系统程式异常之后,还包括:
更新所述当前基本输入输出系统程式,并返回至所述获取所述当前基本输入输出系统闪存的所述只读区域数据的步骤。
另一方面,在所述当前校验值与所述预设校验值不同时,还包括:
在所述当前校验值与所述预设校验值不同时,确定所述当前基本输入输出系统的数据写入异常,其中,所述数据写入异常属于所述工作状态异常;
在所述确定所述当前基本输入输出系统的数据写入异常之后,还包括:
更新当前基本输入输出系统程式,并返回至所述获取所述当前基本输入输出系统闪存的所述只读区域数据的步骤。
另一方面,更新所述当前基本输入输出系统程式,包括:
获取更新所述当前基本输入输出系统程式的更新次数;
若在首次更新次数下得到的所述当前校验值与所述预设校验值不同,则在首次更新次数的基础上迭代更新,并返回至所述获取所述当前基本输入输出系统闪存的所述只读区域数据的步骤,直至达到所述更新次数;
在达到所述更新次数时,获取最后一次更新迭代下的所述当前校验值;
若最后一次更新迭代下的所述当前校验值与所述预设校验值不同,则输出错误信息。
另一方面,在所述预定时间内未获取到所述只读区域数据或者当前校验值与预设校验值不同时,还包括:
输出所述当前基本输入输出系统闪存的错误信息;
记录所述当前基本输入输出系统闪存的工作状态异常的日志信息;
控制所述当前基本输入输出系统闪存所属的服务器关机以便于进入至所述切换至另一个基本输入输出系统闪存的步骤。
另一方面,在所述当前基本输入输出系统闪存的所述只读区不完整时,由所述当前基本输入输出系统闪存切换至所述另一个基本输入输出系统闪存,包括:
控制复杂可编程逻辑器件对所述当前基本输入输出系统闪存所属的服务器的主板下电;
记录所述当前基本输入输出系统闪存的所述只读区损坏的日志信息;
由所述当前基本输入输出系统闪存切换至所述另一个基本输入输出系统闪存启动。
另一方面,在所述基本输入输出系统启动过程的第四阶段之后,还包括:
关闭所述看门狗定时器的定时机制;
结束所述基本输入输出系统启动过程以进行所述当前基本输入输出系统闪存所属的服务器的正常工作。
为解决上述技术问题,本发明还提供一种双基本输入输出系统闪存的切换判定装置,包括:
第一确定模块,用于在基本输入输出系统启动过程中的第一阶段和第二阶段,获取当前基本输入输出系统闪存,并根据硬件策略确定所述当前基本输入输出系统闪存的只读区的完整性;
第二确定模块,用于在所述只读区完整的情况下,且在所述基本输入输出系统启动过程中的第三阶段和第四阶段,根据软件策略确定所述当前基本输入输出系统闪存的工作状态,其中,所述软件策略至少包括计时器策略和校验策略;
切换模块,用于在所述工作状态为异常或者所述只读区不完整的情况下,由所述当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存进行启动。
为解决上述技术问题,本发明还提供一种双基本输入输出系统闪存的切换判定设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的双基本输入输出系统闪存的切换判定方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的双基本输入输出系统闪存的切换判定方法的步骤。
本发明提供的一种双基本输入输出系统闪存的切换判定方法,在服务器上电至进入操作系统之前的基本输入输出系统的4个阶段拆开进行判定,在基本输入输出系统启动过程中的第一阶段和第二阶段,根据硬件策略的硬件设计,检测当前基本输入输出系统闪存的只读区域数据是否完整,以确定在当前基本输入输出系统闪存下启动文件是否成功,若数据完整说明启动文件成功,则进入后续的基本输入输出系统的第三阶段,在基本输入输出系统启动过程中的第三阶段和第四阶段,根据软件策略检测当前基本输入输出系统闪存是否正常,对于软件策略至少包括计时器策略和校验策略,如果异常的情况下,确定当前基本输入输出系统闪存的文件数据在写入时异常或者当前基本输入输出系统闪存的芯片硬件损坏;如果数据不完整说明启动文件失败,则说明当前基本输入输出系统闪存的硬件可能出现问题,故在上述数据不完整以及在第三阶段至第四阶段的当前基本输入输出系统闪存的异常情况,均需要切换至另一个输入输出系统进行启动。本发明的有益效果在于在4个阶段内,通过硬件策略和软件策略(至少包括计时器策略和校验策略)的设计,进行精准细化判定,相比于当前的双flash芯片下仅通过超时的误判切换情况,本发明在服务器启动之前的不同阶段采用不同的硬软件策略,精准判断以提高flash芯片的切换判定的准确性,保证flash的可靠性和稳定性。
其次,通过硬件策略的硬件逻辑,结合第一阶段和第二阶段的硬件初始化阶段的特性,将该两个阶段的当前BIOS flash的切换判定过程精准化,提高判定的准确性;在软件策略包括计时器策略和校验策略的情况下,先通过计时器策略确定加载过程是否超时,如果超时,则通过校验策略进行校验以确定当前BIOS flash的工作状态是否异常。结合第三阶段和第四阶段的特性,通过软件逻辑进行判定,相比于当前的双flash判定通过超时确定,本实施例中在第三阶段和第四阶段内精准判断超时,在超时的情况下根据校验策略进行校验以精准区分,保证服务器安全可靠的运行;看门狗定时器的定时机制进行计数以确定是否超时,提高超时确定的精准性;超时确定过程,通过外部设备的数量比较或者看门狗定时器的喂狗机制确定,提高加载过程超时确定的多样性;校验比较过程以确定当前BIOSflash的工作状态是否异常,采用校验函数进行比较,提高校验的准确性;不同情况下确定的校验函数,以便于得到的当前校验值的准确性;出现当前BIOS flash工作状态异常的情况下,输出对应的错误信息,记录对应的日志信息,并控制服务器对应下电以切换下一个BIOS flash启动,以便于BMC记录到告警日志和故障诊断,方便维修人员定位维修;进入操作系统后,关闭FRB-2程式,节省占用的资源,以便于进行服务器的正常工作其他资源占用。
另外,本发明还提供了一种双基本输入输出系统闪存的切换判定装置、设备及介质,具有如上述双基本输入输出系统闪存的切换判定方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为基本输入输出系统启动过程的四个阶段示意图;
图2为本发明实施例提供的一种双基本输入输出系统闪存的切换判定方法的流程图;
图3为本发明实施例提供的另一种双基本输入输出系统闪存的切换判定方法的流程图;
图4为本发明实施例提供的一种双基本输入输出系统闪存的切换判定装置的结构图;
图5为本发明实施例提供的一种双基本输入输出系统闪存的切换判定设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种双基本输入输出系统闪存的切换判定方法、装置、设备及介质,以解决在整个BIOS启动过程中简单粗暴的切换判定导致flash芯片的浪费,使得服务器的可靠性和稳定性降低的问题。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
在服务器硬件设计中,服务器的重置地址通常指向BIOS闪存(flash),该闪存是一种高速非易失性存储器,用于储存固件程序,这些程序在服务器开机时被启动运行。这些固件程序扮演着极其重要的角色,它们的主要任务是对硬件进行初始化,并将硬件资源传递给操作系统。在整个服务器启动过程中,固件程序就像是一枚连接承上启下的桥梁,确保各个组件协同工作。在服务器启动,该固件程序会被加载到内存中,在开机过程中开始执行,整个过程包括硬件的自检、资源配置和初始化等步骤。固件程序能够确保服务器在正常运行之前,所有的硬件资源都能够正确地配置和准备好。
如果BIOS flash中的固件程序出现问题,则会导致不同的后果,若BIOS flash中的数据可能会遭受读写错误,或者在数据升级过程中出现异常,如果要升级的数据本身出现故障,都有可能导致服务器无法正常启动,甚至损坏硬件。
当前的服务器主板设计只有一个BIOS flash芯片,如果芯片所处的硬件存在磕碰的情况,会使得物理芯片出现损害;如果在迭代升级过程中遇到掉电情况,会出现充放电的电容或者静电进行击穿,导致系统黑屏无法进入操作系统,影响服务器的正常使用。当前的服务器主板设计双BIOS flash芯片,其仅通过超时情况贯穿BIOS启动过程,切换判定较为简单粗暴,若当前BIOS flash芯片没有损坏的情况下切换,则会浪费该BIOS flash芯片,同时也没有起到服务器可靠稳定的作用,甚至在切换至下一个BIOS flash芯片时也会出现超时误认为BIOS flash芯片损坏。因此,本发明提供的双基本输入输出系统闪存的切换判定方法,可以解决上述的问题。
图2为本发明实施例提供的一种双基本输入输出系统闪存的切换判定方法的流程图,如图2所示,该方法包括:
S11:在基本输入输出系统启动过程中的第一阶段和第二阶段,获取当前基本输入输出系统闪存,并根据硬件策略判断当前基本输入输出系统闪存的只读区是否完整;若完整,则进入步骤S12,若不完整,则进入步骤S13;
S12:在基本输入输出系统启动过程中的第三阶段和第四阶段,根据软件策略判断当前基本输入输出系统闪存的工作状态是否正常,若异常,则进入步骤S13,若正常,则进入步骤S14;
其中,软件策略至少包括计时器策略和校验策略;
S13:由当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存进行启动;
S14:确定基本输入输出系统启动成功。
具体地,在启动过程中的第一阶段和第二阶段,第一阶段(SEC阶段)是自服务器上电开始进行,第一阶段为安全阶段,在这个阶段中,主要任务是对系统进行初始化,确保基本的硬件安全性,例如检查和验证BIOS固件的完整性。SEC阶段的主要目标是启动后续阶段,确保系统没有受到恶意软件或硬件的影响。第二阶段(PEI阶段)是自第一阶段结束的时刻进入,在这个阶段中,BIOS初始化更多的硬件,为后续的操作系统和应用程序提供必要的环境。PEI阶段执行硬件初始化、内存探测和初始化等任务,为系统提供更高级别的功能。
BIOS flash的结构是由一个一个固件卷(Firmware Volume,FV)组成,但是FV是具有属性的,其属性包括只读区和变量区,对于只读区的数据不允许变动,例如负责引导的固件卷(Firmware Volume Boot Block,FVBB),主要包括SEC和PEI阶段的模组。对于变量区的数据允许改写,比如进入BIOS加载过程(setup)改写加载选项,都是保存在变量区的存储变量的非易失性存储卷(Firmware Volume Non-Volatile Random Access Memory,FV_NVRAM),主要保存BIOS的一些变量,比如加载过程的一些选项设定,属于BDS阶段。
对于第一阶段和第二阶段属于只读区内的初始化,主要是对应硬件的初始化,获取当前BIOS flash,根据硬件策略判断当前BIOS flash的只读区是否完整。对于硬件策略的判定,主要是引入一个判定引导成功与否的硬件电路内的接口是否有效,该接口可以是预留的接口,也可以是和其他接口引脚并用,在此不做限定。双基本输入输出系统闪存处于同一个服务器平台上,以防止在不同的服务器平台上通过硬件策略启动文件存在误刷BIOS的情况,因为误刷BIOS也能得到只读区的完整的结论。
如果在第一阶段和第二阶段的加载过程成功之后,则说明引导成功,其接口有效,该当前BIOS flash的只读区完整。如果加载过程没有成功,则说明当前BIOS flash的只读区不完整。
需要说明的是,加载过程没有成功,说明文件没有启动成功,对于文件启动失败的因素,可能存在一个误切或者就是一个损坏的硬件,例如在FVBB区域内,只读存储器(ReadOnly Memory,ROM)损害,也不知道具体是哪块损坏,可能是硬件芯片被烧,导致硬件的接口无法启动,也可能是硬件短路,或者当前BIOS flash芯片损坏,上述的情况均可能存在,故在加载过程没有成功的情况下,即当前BIOS flash的只读区不完整,切换至另一个BIOSflash继续查看,如果下一个当前BIOS flash未启动成功,则有可能是硬件上出现的问题,本实施例仅考虑当前BIOS flash芯片损坏的问题。
在上述实施例中的当前BIOS flash的只读区完整的情况下,继续进入当前BIOS启动过程的第三阶段和第四阶段,其中第三阶段(DXE阶段)内BIOS加载并执行更多的固件驱动程序,为操作系统提供更多的硬件支持,对于第四阶段(BDS阶段)内,系统选择要从启动操作系统的引导设备,例如硬盘、通用串行总线(Universal Serial Bus,USB)驱动器或光盘。
根据软件策略判断当前BIOS flash的工作状态是否正常,需要说明的是,对于软件策略至少包括计时器策略和校验策略,对于计时器策略可以设置一个计时机制进行计时,对于计时器可以是看门狗计时器,也可以是其他定时器,在此不做限定,对于计时器策略是在当前第三阶段和第四阶段内是否超时,如果超时,说明加载过程异常。但是本实施例中的加载过程异常并不是当前BIOS flash的工作状态异常,还需要进一步通过校验策略查看是数据的损坏还是芯片物理上的损坏,或者加载过程宕机,如果是加载过程的宕机,则说明当前BIOS flash工作正常,无需切换。如果是数据异常或者当前BIOS flash芯片损坏,这种情况下确定为当前BIOS flash工作状态异常,需要切换下一个BIOS flash。
因此,只要是当前BIOS flash的只读区不完整或者当前BIOS flash的工作状态异常,需要切换至另一个BIOS flash。需要说明的是,对于这两种情况切换至另一个BIOSflash的切换过程不同,在第一种当前BIOS flash的只读区不完整的情况下,当前处于第一阶段和第二阶段,先通过复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)让主板下电,再去切换。而第二种情况是处于第三阶段和第四阶段,通知服务器下电后切换即可。
在软件策略中主要通过软件逻辑设计,对应的校验策略,是当前得到的校验值与预设校验值比较,若相同,则确定校验值相等;若不同,则说明校验值不相等。对于校验策略的校验算法,可以是根据当前的工程实现设定一种校验算法,也可以采用当前的校验算法,在此不做限定。
在当前BIOS flash的工作状态正常的情况下,直接进入操作系统,确定基本输入输出系统启动成功。若当前BIOS flash的工作状态异常,则切换至下一个BIOS flash,进行下一个BIOS flash的启动,也就是说,继续上述步骤S11中将下一个BIOS flash作为当前BIOS flash进行测试以确保BIOS启动成功。
本发明提供的一种双基本输入输出系统闪存的切换判定方法,在服务器上电至进入操作系统之前的基本输入输出系统的4个阶段拆开进行判定,在基本输入输出系统启动过程中的第一阶段和第二阶段,根据硬件策略的硬件设计,检测当前基本输入输出系统闪存的只读区域数据是否完整,以确定在当前基本输入输出系统闪存下启动文件是否成功,若数据完整说明启动文件成功,则进入后续的基本输入输出系统的第三阶段,在基本输入输出系统启动过程中的第三阶段和第四阶段,根据软件策略检测当前基本输入输出系统闪存是否正常,对于软件策略至少包括计时器策略和校验策略,如果异常的情况下,确定当前基本输入输出系统闪存的文件数据在写入时异常或者当前基本输入输出系统闪存的芯片硬件损坏;如果数据不完整说明启动文件失败,则说明当前基本输入输出系统闪存的硬件可能出现问题,故在上述数据不完整以及在第三阶段至第四阶段的当前基本输入输出系统闪存的异常情况,均需要切换至另一个输入输出系统进行启动。本发明的有益效果在于在4个阶段内,通过硬件策略和软件策略(至少包括计时器策略和校验策略)的设计,进行精准细化判定,相比于当前的双flash芯片下仅通过超时的误判切换情况,本发明在服务器启动之前的不同阶段采用不同的硬软件策略,精准判断以提高flash芯片的切换判定的准确性,保证flash的可靠性和稳定性。
在上述实施例的基础上,在一些实施例中,硬件策略的确定过程,包括:
获取预设时间以及基本输入输出系统对所属硬件电路的预留通用输入输出接口;
在预设时间内控制基本输入输出系统拉起预留通用输入输出接口以确定硬件策略。
具体地,自服务器上电开机,基板管理控制器(Baseboard ManagementController,BMC)会默认指定当前BIOS flash的芯片启动,会默认等待一定的时长(预设时间),通过BIOS所属的硬件电路预留通用输入输出(General-purpose input/output,GPIO)接口,通过在该时长内拉起GPIO接口,则认为启动文件成功,说明当前BIOS flash的只读区完整。
需要说明的是,对于预设时间的具体时间不做限定,可以根据其他GPIO接口的拉起置位时间相同,也可以相对其他GPIO接口的拉起置位时间较多些,较多的时间不能无限加长,根据实际情况设定即可。
在一些实施例中,根据硬件策略确定当前基本输入输出系统闪存的只读区的完整性,包括:
在预设时间内判断基本输入输出系统是否拉起预留通用输入输出接口;
若拉起,则确定预留通用输入输出接口有效,并确定当前基本输入输出系统闪存的只读区完整;
若未拉起,则确定预留通用输入输出接口无效,并确定当前基本输入输出系统闪存的只读区不完整。
具体地,如果在预设时间内拉起该GPIO接口,则说明该GPIO接口有效,确定当前BIOS flash的只读区完整;对应地,在预设时间内未拉起,存在两种情况,一种是拉起的过程没有被拉起,还有一种是在预设时间内,根本没有拉起的动作,两种情况均被认为是未拉起,则说明该GPIO接口无效,确定当前BIOS flash的只读区不完整。
如果该GPIO接口被置起,则BMC可以读到,此时会认为当前BIOS flash的只读区完整。
本实施例中的通过硬件策略的硬件逻辑,结合第一阶段和第二阶段的硬件初始化阶段的特性,将该两个阶段的当前BIOS flash的切换判定过程精准化,提高判定的准确性。
在上述实施例的基础上,在一些实施例中,根据软件策略确定当前基本输入输出系统闪存的工作状态,包括:
根据计时器策略确定当前基本输入输出系统闪存的加载过程是否超时;
如果未超时,则确定当前基本输入输出系统闪存的加载过程正常;
如果超时,则确定当前基本输入输出系统闪存的加载过程异常;
在当前基本输入输出系统闪存的加载过程异常的情况下,获取只读区域数据的获取预定时间;
在获取预定时间内判断是否获取到当前基本输入输出系统闪存内的只读区域数据,其中,只读区域数据包括当前基本输入输出系统闪存在第一阶段、第二阶段内的只读区的数据和第三阶段、第四阶段内除变量区之外的只读区内的数据;
若未获取到,则确定当前基本输入输出系统闪存的工作状态为异常;
若获取到,则根据校验策略确定当前基本输入输出系统闪存的工作状态是否异常;
若校验正确,则确定当前基本输入输出系统闪存的工作状态正常;
若校验错误,则确定当前基本输入输出系统闪存的工作状态异常。
具体地,在上述实施例中提到,软件策略至少包括计时器策略和校验策略,当然也可以在这两个策略的基础上,加入其它的策略判断,对于本实施例中,考虑到软件策略包括计时器策略和校验策略。先根据计时器策略确定当前BIOS flash的加载过程是否超时,如果超时,则确定加载过程异常,如果未超时,则确定加载过程正常。
在当前BIOS flash的加载过程异常的情况下,获取只读区域数据的获取预定时间,如果在获取预定时间内成功获取到只读区域数据,则说明数据传输过程无异常,说明当前BIOS flash的芯片物理没有问题,继续通过校验策略确定当前BIOS flash的工作状态是否异常,如果通过校验策略校验正确的情况下,则确定当前BIOS flash的工作状态正常,如果通过校验策略校验错误的情况下,则确定当前BIOS flash的工作状态异常。
在获取预定时间内未成功获取到只读区域数据,则说明当前BIOS flash的芯片短路或者在运行过程中受到撞击造成芯片损坏。对应地只读区域数据包括上述实施例中的只读区的数据以及在第三阶段和第四阶段内只读区内的数据,在上述实施例中提到,第三阶段和第四阶段内包括只读区和变量区,而该处的只读区数据是包括四个阶段内的只读区的数据。
本实施例中在软件策略包括计时器策略和校验策略的情况下,先通过计时器策略确定加载过程是否超时,如果超时,则通过校验策略进行校验以确定当前BIOS flash的工作状态是否异常。结合第三阶段和第四阶段的特性,通过软件逻辑进行判定,相比于当前的双flash判定通过超时确定,本实施例中在第三阶段和第四阶段内精准判断超时,在超时的情况下根据校验策略进行校验以精准区分,保证服务器安全可靠的运行。
在一些实施例中,计时器策略预先在基本输入输出系统闪存的第二阶段内建立,且由基板管理控制器的智能平台管理接口设定计时器策略的计时初始值,并在基本输入输出系统启动过程的第三阶段和第四阶段运行。
具体地,计时器策略是在PEI阶段进行初始化设定,透过BMC的智能平台管理接口(Intelligent Platform Management Interface,IPMI)设定计时器策略的计时初始值。该计时器策略是在BIOS启动过程的第三阶段和第四阶段运行。对应地,计时器策略可以是简单地定时器设计,也可以是定时器机制的看门狗设置,在此不做限定。本实施例中采用计时器策略在第三阶段和第四阶段判断是否超时初步判断加载过程的超时与否,以便于在加载过程中超时的情况下继续根据校验策略确定最终的当前BIOS flash的工作状态。
在一些实施例中,计时器策略具体为看门狗定时器的定时机制。
看门狗定时器(FRB-2)是一种计时器,由于位数有效计数器能够装的数值是有限的,从开启“看门狗”那刻起,开始不停地数机器周期,数一个机器周期就计数器加1,加到计数器盛不下后,溢出产生一个复位信号,重启系统。在计时器初始值内的时间段内不会装满,重新开始及时,将计数器清零,此时该过程叫做喂狗机制,每隔一段时间喂一次狗,只要程序正常运行就永远计不满,一旦出现死循环的故障或者没有来得及清零计数,则会导致溢出超时。
本实施例提供看门狗定时器的定时机制进行计数以确定是否超时,提高超时确定的精准性。
在一些实施例中,计时器策略具体为看门狗定时器的定时机制,根据计时器策略确定当前基本输入输出系统闪存的加载过程是否超时,包括:
获取当前基本输入输出系统闪存的加载过程对应的外部设备数量;
若在外部设备数据大于计时初始值内正常加载的外部设备数量时,则确定在计时初始值内当前基本输入输出系统闪存的加载过程超时;
若在外部设备数据小于或者等于计时初始值内正常加载的外部设备数量时,则确定在计时初始值内当前基本输入输出系统闪存的加载过程未超时;
或者,在计时初始值内判断当前基本输入输出系统闪存的加载过程中是否存在喂狗机制;
若不存在,则在计时初始值结束时确定当前基本输入输出系统闪存的加载过程超时;
若存在,则确定当前基本输入输出系统闪存的加载过程未超时。
需要说明的是,超时情况分为两种原因,一种是当前BIOS flash加载过程中的外部设备数量较多,原本6分钟的时间其对应外部设备为5个,正常情况下不会出现超时,但是由于外部设备增加到20个后,其对应的计时初始值依旧是6分钟,势必会出现超时的情况。另一种是看门狗定时器的定时机制,没有在当前计时初始值内进行喂狗机制,导致计时初始值计时结束后溢出超时。本实施例中的超时确定可以包括上述情况的任意一种,在此不做限定,可以根据实际情况设定即可。或者任意一种情况出现后,均认定为超时发生。
本实施例中的超时确定过程,通过外部设备的数量比较或者看门狗定时器的喂狗机制确定,提高加载过程超时确定的多样性。
在一些实施例中,校验策略的确定过程,包括:
获取基本输入输出系统的二进制文件;
将二进制文件上传至基板管理控制器内的软件界面以获取基本输入输出系统闪存的只读区域数据;
获取基本输入输出系统所属的服务器型号信息以及加盐数据;
根据只读区域数据、服务器型号信息和加盐数据的关系确定校验函数以建立校验策略。
具体地,获取带外BMC刷新BIOS的二进制文件,将该二进制文件上传至BMC的软件界面(Web页面),此时需要BMC度量BIOS二进制文件的只读区域数据。
获取该BIOS所属的服务器信号信息以及加盐数据,结合上段的只读区域数据确定校验函数,其公式如下:
Decrypt=Alg(Encrypt,BoardID,”@Salt@”);
其中,Decrypt是输出的一个固定长度的值,存放在BMC的可擦写的可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)。Alg是调用的算法函数,其参数Encrypt为输入的BIOS的只读区域数据,BoardID为BMC从CPLD中获取的当前平台的主板身份(Identification,ID),是区分各服务器机型的一个信息,即服务器型号信息。Salt为加盐数据,是由研发或者客户定制得到。
对于加盐数据,可以是固定周期进行更新,也可以根据BIOS版本不同进行更新,在此不做限定。
服务器型号信息与基本输入输出系统对应的只读区域数据存在一个映射关系,根据服务器型号信息的不同,其对应服务器内的基本输入输出系统的只读区域数据也不同,在此不做限定。根据服务器型号信息与只读区域数据的映射关系可以确定基本输入输出系统对应的只读区域数据,再基于只读区域数据和加盐数据两种具体数据确定校验函数以建立校验策略。
在上述实施例的基础上,在一些实施例中,加盐数据的确定过程至少包括以下方式之一:
由时间戳和/或字符串确定的数据;
根据加密规则生成的密文数据;
由随机函数加密生成的随机序列对应的数据。
具体地,加盐数据可以是一个复杂度较高的字符串或者时间戳确定的数据,也可以是根据加密规则生成的密文数据,还可以是根据随机函数生成的随机序列等,在此不做限定,可以由研发人员或者用户自己自行定制即可。
加盐数据的优势是为了增加加密强度,经过加盐处理可以做到,即使采用同样的明文、同样的用户密码每次加密得到的密文都不一样,用随机函数加密需要生成随机序列作为密钥数组,生成密钥数组的函数种子一般是动态的随用户密码变化的,让得到的盐参与种子的运算,也就是盐和用户密码共同决定函数种子的数值。除此之外,还可以参与到其他算法中,例如出现在明文、密文加密的算法中,以提高解密难度,保证检验策略的安全性和稳定性。
在一些实施例中,根据校验策略确定当前基本输入输出系统闪存的工作状态是否异常,包括:
获取预先存储在存储器内的预设校验值;
获取当前基本输入输出系统闪存的只读区域数据;
根据校验函数对当前基本输入输出系统闪存的只读区域数据进行计算得到当前校验值;
判断当前校验值与预设校验值是否相同;
若相同,则确定校验正确,并确定当前基本输入输出系统闪存的工作状态正常;
若不同,则确定校验错误,并确定当前基本输入输出系统闪存的工作状态异常。
需要说明的是,获取存储器内的预设校验值,可以将预设校验值存储在BMC的EEPROM里,也可以存储在其他存储器内,方便后续校验。获取当前BIOS flash的只读区域数据,根据校验函数对该只读区域数据进行计算得到当前校验值。将当前校验值与预设校验值进行比较,若相同的情况下,确定校验正确,其当前BIOS flash的工作状态正常,无需切换下一个BIOS flash。若不同的情况下,确定校验错误,其当前BIOS flash的工作状态异常,可能是数据异常或者物理芯片出现问题,需要切换至下一个BIOS flash。
具体地,在当前校验值与预设校验值比较的过程中,大多数情况下是两个校验值的数据长度相同,若两个序列,逐个数字进行比较,只要有一个存在不同,则确定两个校验值不同,最后输出结论。如果两个校验值的数据长度不同的情况下,则需要将其两个数据长度整合成相同的数据长度后进行后续的比较。在一些实施例中,当前校验值与预设校验值的比较过程,包括:
在当前校验值与预设校验值对应的各自数据长度不同时,将当前校验值的数据长度进行特征处理得到与预设校验值的数据长度相同的第一校验值;
将第一校验值与预设校验值对应拆分为各校验字;
将第一校验值的各校验字与预设校验值的各校验字一一比较确定各第一校验结果;
将各第一校验结果的平方加和得到第二校验结果;
将第二校验结果进行根号处理得到第一校验值与预设校验值的距离值;
在距离值为0时,确定第一校验值与预设校验值的相似度为1,并得到第一校验值与预设校验值相同;
在距离值不为0时,确定第一校验值与预设校验值的相似度小于1,并得到第一校验值与预设校验值不同。具体地,对于数据长度不同的校验值,采用特征处理转化为同维度的数据,可以采用数据压缩的方式进行转换等,在此不做限定,只要能将两个校验值的数据长度转换为相同的数据长度即可。转换为相同的长度过程中,可以以预设校验值的数据长度为基准,将当前校验值的数据长度进行转换与预设校验值的数据长度相同即可,得到第一校验值。将第一校验值与预设校验值进行比较,可以采用普通的逐个数字比较,也可以采用相似度算法比较确定最终的比较结果,即第一校验值与预设校验值相同时,确定校验正确;第一校验值与预设校验值不同时,确定校验错误。
在本实施例中,通过第一校验与预设校验值拆分的各校验字,一一对应比较得到第一校验结果,再将第一校验结果进行平方后加和处理得到第二校验结果,再对第二校验结果进行开根号处理得到第一校验值与预设校验值的距离至,在距离值为0的情况下,说明两个校验值的相似度为1,即两个校验值相同。在距离值不为0,说明相似度小,两个校验值有不同的校验字,故两个校验值不同。本实施例提供的校验比较过程以确定当前BIOSflash的工作状态是否异常,采用校验函数进行比较,提高校验的准确性。
在一些实施例中,根据只读区域数据、服务器型号信息和加盐数据的关系确定校验函数,包括:
将服务器型号信息对应的只读区域数据与加盐数据进行填充处理得到第一预设长度的第一数据;
根据第一预设长度对第一数据进行分割得到多个第二预设长度的第二数据,其中,第一预设长度大于第二预设长度;
将多个第二预设长度的第二数据进行初始化消息摘要缓存的迭代处理,得到最终的校验输出结果以建立校验函数。
具体地,对于校验函数的建立,先输入任意长度的信息,在处理过程中以512位输入数据块为单位,输出为128位的信息。其检验函数具体先进行消息填充,补长到512的倍数,即第一预设长度的第一数据。根据第一预设长度对第一数据进行分割得到多个第二预设长度的第二数据,这里的分割,需要分割为512位的块。同时将多个第二预设长度的第二数据进行初始化消息摘要缓存的迭代处理确定最后一轮的输出结果作为散列结果。
需要说明的是,还可以采用哈希算法进行校验,在此不做限定。
在一些实施例中,对于校验函数除了哈希算法之外,还可以采用具体地算法模型确定。根据只读区域数据、服务器型号信息和加盐数据的关系确定校验函数,包括:
调用初始校验模型,将只读区域数据和服务器型号信息作为输入参数输入至初始校验模型,其中,初始校验模型至少包括深度学习、机器学习的一种或者多种模型;
将服务器型号信息对应的加盐数据预先存储在初始校验模型内以便于与服务器型号信息对应的只读区域数据进行特征提取处理得到特征数据;
将特征数据进行分类处理得到分类结果,并将分类结果作为初始校验模型的当前输出参数;
判断当前输出参数所属的当前迭代次数是否满足预设要求,其中,预设要求由迭代次数确定;
若满足,则得到迭代训练完成的校验模型,并将迭代训练完成的校验模型作为校验函数;
若不满足,则返回至调用初始校验模型的步骤进行训练迭代,直至当前输出参数所属的当前迭代次数满足预设要求为止。
具体地,先调用一个初始校验模型,输入只读区域数据和服务器型号信息初步训练,同时,将加盐数据预先存储在初始校验模型内,结合输入模型的只读区域数据进行特征提取以得到特征数据,对应地特征提取的方式不做限定,可以基于现有的提取方式。需要说明的是,各BIOS flash下的只读区域数据对应的服务器型号可能相同,也可能不同,或者各BIOS flash下的只读区域数据对应的固件版本的服务器信号可能相同,但是为了区分后续的特征数据,在服务器型号信息对应的加盐数据具有唯一性。将得到的特征数据进行分类处理得到分类结果,即当前输出参数。此时的训练迭代仅为一次迭代,对于模型的训练可以限定迭代次数或者具体的输出参数是否处于某一种预设范围,本实施例考虑到校验值的唯一性,故在此限定预设要求为迭代次数,也就是说,当迭代次数达到一定程度时,停止训练模型的迭代更新,以输出得到迭代次数下的检验模型作为校验函数,如果没有达到迭代次数,继续迭代直至满足预设要求为止。
值得注意的是,对于初始校验模型至少包括深度学习、机器学习的一种或者多种模型,可以是一种模型,也可以是多种模型的组合形式,在此不做限定,可以根据实际情况设定即可。
本实施例提供的不同情况下确定的校验函数,以便于得到的当前校验值的准确性。
在上述实施例的基础上,在一些实施例中,在当前校验值与预设校验值相同时,还包括:
在当前校验值与预设校验值相同时,确定当前基本输入输出系统程式异常;
在确定当前基本输入输出系统程式异常之后,还包括:
更新当前基本输入输出系统程式,并返回至获取当前基本输入输出系统闪存的只读区域数据的步骤。
需要说明的是,本实施例中在当前校验值与预设校验值相同时判定是BIOS程式发生异常,说明当前BIOS flash没有损坏,可能是外部设备,也可能是存储或者某个外设部件互连标准(Peripheral Component Interconnect,PCI)设备内部出现错误,在硬件初始化阶段损坏。例如,键盘漏电,可能是某一个键一直触发中断,但是存储的数据没有问题,需要工作人员具体分析,在本实施例中的更新BIOS程式,是方便维修人员的定位维修。
但是对于切换判定过程中,不会更新BIOS程式。硬件没有问题,需要根据更新BIOS程式进行检查定位何种原因出现问题。故在更新BIOS程式后,返回至获取当前基本输入输出系统闪存的只读区域数据的步骤,重新判定。
在一些实施例中,在当前校验值与预设校验值不同时,还包括:
在当前校验值与预设校验值不同时,确定当前基本输入输出系统的数据写入异常,其中,数据写入异常属于工作状态异常;
在确定当前基本输入输出系统的数据写入异常之后,还包括:
更新当前基本输入输出系统程式,并返回至获取当前基本输入输出系统闪存的只读区域数据的步骤。
具体地,在两个校验值不同的情况下,确定数据写入异常,此时可能是固件刷新没有刷好,在切换至下一个BIOS flash后,可以尝试更新当前BIOS程式,这种情况下可能是被黑客攻击,硬件没有问题,但是数据被人改写,故可以更新BIOS,以便于定位维修。在更新BIOS程式后,返回至获取当前基本输入输出系统闪存的只读区域数据的步骤重新判定。
在一些实施例中,对于更新BIOS程式的过程,包括:
获取更新当前基本输入输出系统程式的更新次数;
若在首次更新次数下得到的当前校验值与预设校验值不同,则在首次更新次数的基础上迭代更新,并返回至获取当前基本输入输出系统闪存的只读区域数据的步骤,直至达到更新次数;
在达到更新次数时,获取最后一次更新迭代下的当前校验值;
若最后一次更新迭代下的当前校验值与预设校验值不同,则输出错误信息。
需要说明的是,本实施例中的更新BIOS程式下,其首次更新次数下的加载过程存在超时的情况时,判断当前校验值与预设校验值是否相同,如果相同,则具体分析问题,若可以分析出具体问题后则进行维修,若未分析出,则继续更新BIOS程式。在当前校验值与预设校验值不同时,作为维修人员,则需要继续更新BIOS程式,以进行维修定位。本实施例的更新过程限定程式更新次数,在达到最后一次更新次数后,若还未检查出问题,则需要输出错误信息以便于后续检查。
在一些实施例中,在预定时间内未获取到只读区域数据时,还包括:
输出当前基本输入输出系统闪存的设备错误信息;
记录当前基本输入输出系统闪存的工作状态异常的日志信息;
控制当前基本输入输出系统闪存所属的服务器关机以便于进入至切换至另一个基本输入输出系统闪存的步骤。
具体地,在预定时间内为获取到只读区域数据,需要输出当前BIOS flash的设备错误信息,并且记录工作状态异常的日志信息,控制服务器下电关机切换至另一个BIOSflash启动。
在一些实施例中,在当前校验值与预设校验值不同时,还包括:
输出当前基本输入输出系统闪存的数据异常的错误信息;
记录当前基本输入输出系统闪存的工作状态异常的日志信息;
控制当前基本输入输出系统闪存所属的服务器关机以便于进入至切换至另一个基本输入输出系统闪存的步骤。
需要说明的是,和上一个实施例不同的是,两个错误信息对应的异常情况不同,上述实施例中的异常是基于BIOS flash的芯片设备异常,本实施例中的异常是ROM文件在写入时发生的异常情况导致数据异常,但都属于工作状态异常。记录各种异常的日志信息,并控制服务器下电切换至另一个BIOS flash启动。
在一些实施例中,在当前基本输入输出系统闪存的只读区不完整时,由当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存,包括:
控制复杂可编程逻辑器件对当前基本输入输出系统闪存所属的服务器的主板下电;
记录当前基本输入输出系统闪存的只读区损坏的日志信息;
由当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存启动。
可以理解的是,本实施例中在当前BIOS flash的只读区不完整时切换至另一个BIOS flash,具体的切换过程是控制CPLD对主板下电,记录只读区损坏的日志信息,并切换至另一个BIOS flash进行启动。
本实施例中对应的出现当前BIOS flash工作状态异常的情况下,输出对应的错误信息,记录对应的日志信息,并控制服务器对应下电以切换下一个BIOS flash启动,以便于BMC记录到告警日志和故障诊断,方便维修人员定位维修。
在一些实施例中,在基本输入输出系统启动过程的第四阶段之后,还包括:
关闭看门狗定时器的定时机制;
结束基本输入输出系统启动过程以进行服务器的正常工作。
可以理解的是,在第四阶段结束后,也就意味着进入操作系统,此时关闭看门狗定时器的定时机制(FRB-2),以进入服务器的正常工作。
本实施例中的进入操作系统后,关闭FRB-2程式,节省占用的资源,以便于进行服务器的正常工作其他资源占用。
图3为本发明实施例提供的另一种双基本输入输出系统闪存的切换判定方法的流程图,如图3所示,该方法包括:
S21:登录基板管理控制器的软件界面,上传基本输入输出系统程式文件;
S22:选择当前基本输入输出系统闪存芯片,基板管理控制器是否刷新基本输入输出系统成功,若成功,则进入步骤S23,若失败,则进入步骤S24;
S23:基板管理控制器读出当前基本输入输出系统闪存的只读区域数据以及预设校验值保存在可擦写的可编程只读存储器中;
S24:记录异常日志,并返回步骤S21;
S25:基板管理控制器记录开机时长,在内部设定一个等待时长;
S26:在启动过程中的第一阶段和第二阶段内,判断在等待时长内当前基本输入输出系统闪存是否拉取预留接口;若是,则进入步骤S27,若否,则进入步骤S28;
S27:确定只读区完整,初始化计时器策略;
S28:拉取失败,判定只读区不完整,并进入步骤S29;
S29:基板管理控制器通知主板下电,切换至另一个基本输入输出系统闪存,重新上电开机;
S30:在启动过程中的第三阶段和第四阶段,根据计时器策略判断加载过程是否超时,如果未超时,则进入步骤S31,如果超时,则进入步骤S32;
S31:正常引导进入操作系统,关闭计时器策略;
S32:判断基板管理控制器是否能正常读取到只读区域数据,如果否,则进入步骤S33,如果是,则进入步骤S34;
S33:确定访问不到当前基本输入输出系统闪存,或者返回设备错误信息;并确定当前基本输入输出系统闪存芯片异常损坏,记录异常日志,并进入步骤S29;
S34:根据校验策略确定当前基本输入输出系统闪存的当前校验值,判断当前校验值与预设校验值是否相同,若不相同,则进入步骤S35,若相同,则进入步骤S36;
S35:确定校验值不相同,只读区被破坏,数据刷写异常,需要切换至另一个基本输入输出系统闪存,记录异常日志,并进入步骤S29;
S36:确定校验值相同,只读区域数据正常,基本输入输出系统程式异常,需要具体分析问题;
S37:采用升级基本输入输出系统版本以查看其它异常导致基本输入输出系统宕机情形给出根本原因判定。
上述详细描述了双基本输入输出系统闪存的切换判定方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的双基本输入输出系统闪存的切换判定装置,图4为本发明实施例提供的一种双基本输入输出系统闪存的切换判定装置的结构图。如图4所示,双基本输入输出系统闪存的切换判定装置包括:
第一确定模块11,用于在基本输入输出系统启动过程中的第一阶段和第二阶段,获取当前基本输入输出系统闪存,并根据硬件策略确定当前基本输入输出系统闪存的只读区的完整性;
第二确定模块12,用于在只读区完整的情况下,且在基本输入输出系统启动过程中的第三阶段和第四阶段,根据软件策略确定当前基本输入输出系统闪存的工作状态,其中,软件策略至少包括计时器策略和校验策略;
切换模块13,用于在工作状态为异常或者只读区不完整的情况下,由当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存进行启动。
在一些实施例中,第一确定模块11的硬件策略的确定过程,包括:
第一获取子模块,用于获取预设时间以及基本输入输出系统对所属硬件电路的预留通用输入输出接口;
第一控制子模块,用于在预设时间内控制基本输入输出系统拉起预留通用输入输出接口以确定硬件策略。
在一些实施例中,第二确定模块12包括:
第一确定子模块,用于根据计时器策略确定当前基本输入输出系统闪存的加载过程是否超时;如果未超时,则触发第二确定子模块,如果超时,则触发第三确定子模块;
第二确定子模块,用于确定当前基本输入输出系统闪存的加载过程正常;
第三确定子模块,用于确定当前基本输入输出系统闪存的加载过程异常;
第二获取子模块,用于在当前基本输入输出系统闪存的加载过程异常的情况下,获取只读区域数据的获取预定时间;
第一判断子模块,用于在获取预定时间内判断是否获取到当前基本输入输出系统闪存内的只读区域数据,如果未获取到,则触发第四确定子模块,如果获取到,则触发第五确定子模块;其中,只读区域数据包括当前基本输入输出系统闪存在第一阶段、第二阶段内的只读区的数据和第三阶段、第四阶段内除变量区之外的只读区内的数据;
第四确定子模块,用于确定当前基本输入输出系统闪存的工作状态为异常;
第五确定子模块,用于根据校验策略确定当前基本输入输出系统闪存的工作状态是否异常;如果校验正确,则触发第六确定子模块,如果校验错误,则触发第七确定子模块;
第六确定子模块,用于确定当前基本输入输出系统闪存的工作状态正常;
第七确定子模块,用于确定当前基本输入输出系统闪存的工作状态异常。
在一些实施例中,第二确定模块12内的计时器策略预先在基本输入输出系统闪存的第二阶段内建立,且由基板管理控制器的智能平台管理接口设定计时器策略的计时初始值,并在基本输入输出系统启动过程的第三阶段和第四阶段运行。
在一些实施例中,计时器策略具体为看门狗定时器的定时机制,第一确定子模块,包括:
第三获取子模块,用于获取当前基本输入输出系统闪存的加载过程对应的外部设备数量;
第八确定子模块,用于若在外部设备数据大于计时初始值内正常加载的外部设备数量时,则确定在计时初始值内当前基本输入输出系统闪存的加载过程超时;
第九确定子模块,用于若在外部设备数据小于或者等于计时初始值内正常加载的外部设备数量时,则确定在计时初始值内当前基本输入输出系统闪存的加载过程未超时;
或者,第二判断子模块,用于在计时初始值内判断当前基本输入输出系统闪存的加载过程中是否存在喂狗机制;若不存在,则触发第十确定子模块,若存在,则触发第十一确定子模块;
第十确定子模块,用于在计时初始值结束时确定当前基本输入输出系统闪存的加载过程超时;
第十一确定子模块,用于确定当前基本输入输出系统闪存的加载过程未超时。
在一些实施例中,第二确定模块12内的校验策略的确定过程,包括:
第四获取子模块,用于获取基本输入输出系统的二进制文件;
第五获取子模块,用于将二进制文件上传至基板管理控制器内的软件界面以获取当前基本输入输出系统闪存的只读区域数据;
第六获取子模块,用于获取基本输入输出系统所属的服务器型号信息以及加盐数据;
第十二确定子模块,用于根据只读区域数据、服务器型号信息和加盐数据的关系确定校验函数以建立校验策略。
在一些实施例中,第五确定子模块,包括:
第七获取子模块,用于获取预先存储在存储器内的预设校验值;
第八获取子模块,用于获取当前基本输入输出系统闪存的只读区域数据;
第一计算子模块,用于根据校验函数对当前基本输入输出系统闪存的只读区域数据进行计算得到当前校验值;
第三判断子模块,用于判断当前校验值与预设校验值是否相同;若相同,则触发第十三确定子模块,若不同,则触发第十四确定子模块;
第十三确定子模块,用于确定校验正确,并确定当前基本输入输出系统闪存的工作状态正常;
第十四确定子模块,用于确定校验错误,并确定当前基本输入输出系统闪存的工作状态异常。
在一些实施例中,第十二确定子模块包括:
第一填充子模块,用于将服务器型号信息对应的只读区域数据与加盐数据进行填充处理得到第一预设长度的第一数据;
第一分割子模块,用于根据第一预设长度对第一数据进行分割得到多个第二预设长度的第二数据,其中,第一预设长度大于第二预设长度;
第一迭代处理子模块,用于将多个第二预设长度的第二数据进行初始化消息摘要缓存的迭代处理,得到最终的校验输出结果以建立校验函数。
在一些实施例中,第十二确定子模块包括:
第一调用子模块,用于调用初始校验模型,将只读区域数据和服务器型号信息作为输入参数输入至初始校验模型,其中,初始校验模型至少包括深度学习、机器学习的一种或者多种模型;
特征提取处理子模块,用于将服务器型号信息对应的加盐数据预先存储在初始校验模型内以便于与服务器型号信息对应的只读区域数据进行特征提取处理得到特征数据;
分类处理子模块,用于将特征数据进行分类处理得到分类结果,并将分类结果作为初始校验模型的当前输出参数;
第四判断子模块,用于判断当前输出参数所属的当前迭代次数是否满足预设要求,若满足,则触发第十五确定子模块,若不满足,则触发第一返回子模块,其中,预设要求由迭代次数确定;
第十五确定子模块,用于得到迭代训练完成的校验模型,并将迭代训练完成的校验模型作为校验函数;
第一返回子模块,用于返回至调用初始校验模型的步骤进行训练迭代,直至当前输出参数所属的当前迭代次数满足预设要求为止。
在一些实施例中,第三判断子模块的当前校验值与预设校验值的比较过程,包括:
第二特征处理子模块,用于在当前校验值与预设校验值对应的各自数据长度不同时,将当前校验值的数据长度进行特征处理得到与预设校验值的数据长度相同的第一校验值;
拆分子模块,用于将第一校验值与预设校验值对应拆分为各校验字;
第十六确定子模块,用于将第一校验值的各校验字与预设校验值的各校验字一一比较确定各第一校验结果;
加和处理子模块,用于将各第一校验结果的平方加和得到第二校验结果;
根号处理子模块,用于将第二校验结果进行根号处理得到第一校验值与预设校验值的距离值;
第一得到子模块,用于在距离值为0时,确定第一校验值与预设校验值的相似度为1,并得到第一校验值与预设校验值相同;
第二得到子模块,用于在距离值不为0时,确定第一校验值与预设校验值的相似度小于1,并得到第一校验值与预设校验值不同。
在一些实施例中,在第十三确定子模块之后,还包括:
第十七确定子模块,用于在当前校验值与预设校验值相同时,确定当前基本输入输出系统程式异常;
在第十七确定子模块之后,还包括:
第一更新子模块,用于更新当前基本输入输出系统程式,并返回至获取当前基本输入输出系统闪存的只读区域数据的步骤。
在一些实施例中,在第十四确定子模块之后,还包括:
第十八确定子模块,用于在当前校验值与预设校验值不同时,确定当前基本输入输出系统的数据写入异常,其中,数据写入异常属于工作状态异常;
在第十八确定子模块之后,还包括:
第二更新子模块,用于更新当前基本输入输出系统程式,并返回至获取当前基本输入输出系统闪存的只读区域数据的步骤。
在一些实施例中,第一更新子模块或者第二更新子模块,包括:
第九获取子模块,用于获取更新当前基本输入输出系统程式的更新次数;
第三更新子模块,用于若在首次更新次数下得到的当前校验值与预设校验值不同,则在首次更新次数的基础上迭代更新,并返回至获取当前基本输入输出系统闪存的只读区域数据的步骤,直至达到更新次数;
第十获取子模块,用于在达到更新次数时,获取最后一次更新迭代下的当前校验值;
第一输出子模块,用于若最后一次更新迭代下的当前校验值与预设校验值不同,则输出错误信息。
在一些实施例中,在第四确定子模块或者第十四确定子模块之后,还包括:
第二输出子模块,用于输出当前基本输入输出系统闪存的错误信息;
第一记录子模块,用于记录当前基本输入输出系统闪存的工作状态异常的日志信息;
第二控制子模块,用于控制当前基本输入输出系统闪存所属的服务器关机以便于进入至切换至另一个基本输入输出系统闪存的步骤。
在一些实施例中,第一确定模块11,包括:
第五判断子模块,用于在预设时间内判断当前基本输入输出系统是否拉起预留通用输入输出接口;若拉起,则触发第十九确定子模块,若未拉起,则触发第二十确定子模块;
第十九确定子模块,用于确定预留通用输入输出接口有效,并确定当前基本输入输出系统闪存的只读区完整;
第二十确定子模块,用于确定预留通用输入输出接口无效,并确定当前基本输入输出系统闪存的只读区不完整。
在一些实施例中,切换模块内的在当前基本输入输出系统闪存的只读区不完整时,由当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存,包括:
第三控制子模块,用于控制复杂可编程逻辑器件对当前基本输入输出系统闪存所属的服务器的主板下电;
第二记录子模块,用于记录当前基本输入输出系统闪存的只读区损坏的日志信息;
第一切换子模块,用于由当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存启动。
在一些实施例中,在基本输入输出系统启动过程的第四阶段之后,还包括:
关闭模块,用于关闭看门狗定时器的定时机制;
结束模块,用于结束基本输入输出系统启动过程以进行当前基本输入输出系统闪存所属的服务器的正常工作。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
对于本发明提供的一种双基本输入输出系统闪存的切换判定装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述双基本输入输出系统闪存的切换判定方法相同的有益效果。
图5为本发明实施例提供的一种双基本输入输出系统闪存的切换判定设备的结构图,如图5所示,该设备包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现双基本输入输出系统闪存的切换判定方法的步骤。
本实施例提供的双基本输入输出系统闪存的切换判定设备可以包括但不限于平板电脑、笔记本电脑或者台式电脑等。
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的双基本输入输出系统闪存的切换判定方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括Windows、Unix、Linux等。数据213可以包括但不限于双基本输入输出系统闪存的切换判定方法所涉及到的数据等等。
在一些实施例中,双基本输入输出系统闪存的切换判定设备还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
领域技术人员可以理解,图5中示出的结构并不构成对双基本输入输出系统闪存的切换判定设备的限定,可以包括比图示更多或更少的组件。
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的双基本输入输出系统闪存的切换判定方法。
对于本发明提供的一种双基本输入输出系统闪存的切换判定设备的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述双基本输入输出系统闪存的切换判定方法相同的有益效果。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述双基本输入输出系统闪存的切换判定方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述双基本输入输出系统闪存的切换判定方法相同的有益效果。
以上对本发明所提供的一种双基本输入输出系统闪存的切换判定方法、双基本输入输出系统闪存的切换判定装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (21)
1.一种双基本输入输出系统闪存的切换判定方法,其特征在于,包括:
在基本输入输出系统启动过程中的第一阶段和第二阶段,获取当前基本输入输出系统闪存,并根据硬件策略确定所述当前基本输入输出系统闪存的只读区的完整性;
在所述只读区完整的情况下,且在所述基本输入输出系统启动过程中的第三阶段和第四阶段,根据软件策略确定所述当前基本输入输出系统闪存的工作状态,其中,所述软件策略至少包括计时器策略和校验策略;
在所述工作状态为异常或者所述只读区不完整的情况下,由所述当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存进行启动。
2.根据权利要求1所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述硬件策略的确定过程,包括:
获取预设时间以及所述基本输入输出系统对所属硬件电路的预留通用输入输出接口;
在所述预设时间内控制所述基本输入输出系统拉起所述预留通用输入输出接口以确定所述硬件策略。
3.根据权利要求2所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述根据硬件策略确定所述当前基本输入输出系统闪存的只读区的完整性,包括:
在所述预设时间内判断所述基本输入输出系统是否拉起所述预留通用输入输出接口;
若拉起,则确定所述预留通用输入输出接口有效,并确定所述当前基本输入输出系统闪存的所述只读区完整;
若未拉起,则确定所述预留通用输入输出接口无效,并确定所述当前基本输入输出系统闪存的所述只读区不完整。
4.根据权利要求1所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述根据软件策略确定所述当前基本输入输出系统闪存的工作状态,包括:
根据所述计时器策略确定所述当前基本输入输出系统闪存的加载过程是否超时;
如果未超时,则确定所述当前基本输入输出系统闪存的加载过程正常;
如果超时,则确定所述当前基本输入输出系统闪存的加载过程异常;
在所述当前基本输入输出系统闪存的加载过程异常的情况下,获取只读区域数据的获取预定时间;
在所述获取预定时间内判断是否获取到所述当前基本输入输出系统闪存内的所述只读区域数据,其中,所述只读区域数据包括所述当前基本输入输出系统闪存在所述第一阶段、所述第二阶段内的所述只读区的数据和所述第三阶段、所述第四阶段内除变量区之外的只读区内的数据;
若未获取到,则确定所述当前基本输入输出系统闪存的工作状态为异常;
若获取到,则根据所述校验策略确定所述当前基本输入输出系统闪存的工作状态是否异常;
若校验正确,则确定所述当前基本输入输出系统闪存的工作状态正常;
若校验错误,则确定所述当前基本输入输出系统闪存的工作状态异常。
5.根据权利要求4所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述计时器策略预先在基本输入输出系统闪存的所述第二阶段内建立,且由基板管理控制器的智能平台管理接口设定所述计时器策略的计时初始值,并在所述基本输入输出系统启动过程的所述第三阶段和所述第四阶段运行。
6.根据权利要求5所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述计时器策略具体为看门狗定时器的定时机制,所述根据所述计时器策略确定所述当前基本输入输出系统闪存的加载过程是否超时,包括:
获取所述当前基本输入输出系统闪存的加载过程对应的外部设备数量;
若在所述外部设备数据大于所述计时初始值内正常加载的外部设备数量时,则确定在所述计时初始值内所述当前基本输入输出系统闪存的加载过程超时;
若在所述外部设备数据小于或者等于所述计时初始值内正常加载的外部设备数量时,则确定在所述计时初始值内所述当前基本输入输出系统闪存的加载过程未超时;
或者,在所述计时初始值内判断所述当前基本输入输出系统闪存的加载过程中是否存在喂狗机制;
若不存在,则在所述计时初始值结束时确定所述当前基本输入输出系统闪存的加载过程超时;
若存在,则确定所述当前基本输入输出系统闪存的加载过程未超时。
7.根据权利要求4所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述校验策略的确定过程,包括:
获取所述基本输入输出系统的二进制文件;
将所述二进制文件上传至基板管理控制器内的软件界面以获取所述当前基本输入输出系统闪存的所述只读区域数据;
获取所述基本输入输出系统所属的服务器型号信息以及加盐数据;
根据所述只读区域数据、所述服务器型号信息和所述加盐数据的关系确定校验函数以建立所述校验策略。
8.根据权利要求7所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述加盐数据的确定过程至少包括以下方式之一:
由时间戳和/或字符串确定的数据;
根据加密规则生成的密文数据;
由随机函数加密生成的随机序列对应的数据。
9.根据权利要求7所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述根据所述校验策略确定所述当前基本输入输出系统闪存的工作状态是否异常,包括:
获取预先存储在存储器内的预设校验值;
获取所述当前基本输入输出系统闪存的所述只读区域数据;
根据所述校验函数对所述当前基本输入输出系统闪存的所述只读区域数据进行计算得到当前校验值;
判断所述当前校验值与所述预设校验值是否相同;
若相同,则确定校验正确,并确定所述当前基本输入输出系统闪存的工作状态正常;
若不同,则确定校验错误,并确定所述当前基本输入输出系统闪存的工作状态异常。
10.根据权利要求7所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述根据所述只读区域数据、所述服务器型号信息和所述加盐数据的关系确定校验函数,包括:
将所述服务器型号信息对应的所述只读区域数据与所述加盐数据进行填充处理得到第一预设长度的第一数据;
根据所述第一预设长度对所述第一数据进行分割得到多个第二预设长度的第二数据,其中,所述第一预设长度大于所述第二预设长度;
将多个所述第二预设长度的第二数据进行初始化消息摘要缓存的迭代处理,得到最终的校验输出结果以建立所述校验函数。
11.根据权利要求7所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述根据所述只读区域数据、所述服务器型号信息和所述加盐数据的关系确定校验函数,包括:
调用初始校验模型,将所述只读区域数据和所述服务器型号信息作为输入参数输入至所述初始校验模型,其中,所述初始校验模型至少包括深度学习、机器学习的一种或者多种模型;
将所述服务器型号信息对应的加盐数据预先存储在所述初始校验模型内以便于与所述服务器型号信息对应的只读区域数据进行特征提取处理得到特征数据;
将所述特征数据进行分类处理得到分类结果,并将所述分类结果作为所述初始校验模型的当前输出参数;
判断所述当前输出参数所属的当前迭代次数是否满足预设要求,其中,所述预设要求由迭代次数确定;
若满足,则得到迭代训练完成的校验模型,并将所述迭代训练完成的校验模型作为所述校验函数;
若不满足,则返回至所述调用初始校验模型的步骤进行训练迭代,直至所述当前输出参数所属的当前迭代次数满足所述预设要求为止。
12.根据权利要求9所述的双基本输入输出系统闪存的切换判定方法,其特征在于,所述当前校验值与所述预设校验值的比较过程,包括:
在所述当前校验值与所述预设校验值对应的各自数据长度不同时,将所述当前校验值的数据长度进行特征处理得到与所述预设校验值的数据长度相同的第一校验值;
将所述第一校验值与所述预设校验值对应拆分为各校验字;
将所述第一校验值的各校验字与所述预设校验值的各校验字一一比较确定各第一校验结果;
将各所述第一校验结果的平方加和得到第二校验结果;
将所述第二校验结果进行根号处理得到所述第一校验值与所述预设校验值的距离值;
在所述距离值为0时,确定所述第一校验值与所述预设校验值的相似度为1,并得到所述第一校验值与所述预设校验值相同;
在所述距离值不为0时,确定所述第一校验值与所述预设校验值的相似度小于1,并得到所述第一校验值与所述预设校验值不同。
13.根据权利要求12所述的双基本输入输出系统闪存的切换判定方法,其特征在于,在所述当前校验值与所述预设校验值相同时,还包括:
在所述当前校验值与所述预设校验值相同时,确定当前基本输入输出系统程式异常;
在确定所述当前基本输入输出系统程式异常之后,还包括:
更新所述当前基本输入输出系统程式,并返回至所述获取所述当前基本输入输出系统闪存的所述只读区域数据的步骤。
14.根据权利要求12所述的双基本输入输出系统闪存的切换判定方法,其特征在于,在所述当前校验值与所述预设校验值不同时,还包括:
在所述当前校验值与所述预设校验值不同时,确定所述当前基本输入输出系统的数据写入异常,其中,所述数据写入异常属于所述工作状态异常;
在所述确定所述当前基本输入输出系统的数据写入异常之后,还包括:
更新当前基本输入输出系统程式,并返回至所述获取所述当前基本输入输出系统闪存的所述只读区域数据的步骤。
15.根据权利要求13或14所述的双基本输入输出系统闪存的切换判定方法,其特征在于,更新所述当前基本输入输出系统程式,包括:
获取更新所述当前基本输入输出系统程式的更新次数;
若在首次更新次数下得到的所述当前校验值与所述预设校验值不同,则在首次更新次数的基础上迭代更新,并返回至所述获取所述当前基本输入输出系统闪存的所述只读区域数据的步骤,直至达到所述更新次数;
在达到所述更新次数时,获取最后一次更新迭代下的所述当前校验值;
若最后一次更新迭代下的所述当前校验值与所述预设校验值不同,则输出错误信息。
16.根据权利要求4所述的双基本输入输出系统闪存的切换判定方法,其特征在于,在所述预定时间内未获取到所述只读区域数据或者当前校验值与预设校验值不同时,还包括:
输出所述当前基本输入输出系统闪存的错误信息;
记录所述当前基本输入输出系统闪存的工作状态异常的日志信息;
控制所述当前基本输入输出系统闪存所属的服务器关机以便于进入至所述切换至另一个基本输入输出系统闪存的步骤。
17.根据权利要求3所述的双基本输入输出系统闪存的切换判定方法,其特征在于,在所述当前基本输入输出系统闪存的所述只读区不完整时,由所述当前基本输入输出系统闪存切换至所述另一个基本输入输出系统闪存,包括:
控制复杂可编程逻辑器件对所述当前基本输入输出系统闪存所属的服务器的主板下电;
记录所述当前基本输入输出系统闪存的所述只读区损坏的日志信息;
由所述当前基本输入输出系统闪存切换至所述另一个基本输入输出系统闪存启动。
18.根据权利要求6所述的双基本输入输出系统闪存的切换判定方法,其特征在于,在所述基本输入输出系统启动过程的第四阶段之后,还包括:
关闭所述看门狗定时器的定时机制;
结束所述基本输入输出系统启动过程以进行所述当前基本输入输出系统闪存所属的服务器的正常工作。
19.一种双基本输入输出系统闪存的切换判定装置,其特征在于,包括:
第一确定模块,用于在基本输入输出系统启动过程中的第一阶段和第二阶段,获取当前基本输入输出系统闪存,并根据硬件策略确定所述当前基本输入输出系统闪存的只读区的完整性;
第二确定模块,用于在所述只读区完整的情况下,且在所述基本输入输出系统启动过程中的第三阶段和第四阶段,根据软件策略确定所述当前基本输入输出系统闪存的工作状态,其中,所述软件策略至少包括计时器策略和校验策略;
切换模块,用于在所述工作状态为异常或者所述只读区不完整的情况下,由所述当前基本输入输出系统闪存切换至另一个基本输入输出系统闪存进行启动。
20.一种双基本输入输出系统闪存的切换判定设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至18任一项所述的双基本输入输出系统闪存的切换判定方法的步骤。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至18任一项所述的双基本输入输出系统闪存的切换判定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311301658.1A CN117032813B (zh) | 2023-10-10 | 2023-10-10 | 双基本输入输出系统闪存的切换判定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311301658.1A CN117032813B (zh) | 2023-10-10 | 2023-10-10 | 双基本输入输出系统闪存的切换判定方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117032813A true CN117032813A (zh) | 2023-11-10 |
CN117032813B CN117032813B (zh) | 2024-02-09 |
Family
ID=88628559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311301658.1A Active CN117032813B (zh) | 2023-10-10 | 2023-10-10 | 双基本输入输出系统闪存的切换判定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117032813B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806721A (zh) * | 2024-02-28 | 2024-04-02 | 苏州元脑智能科技有限公司 | 故障诊断驱动加载方法、装置、电子设备及存储介质 |
CN117827294A (zh) * | 2024-02-29 | 2024-04-05 | 苏州元脑智能科技有限公司 | 一种内存启动处理方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002140209A (ja) * | 2000-10-31 | 2002-05-17 | Toshiba Corp | ウオッチドッグタイマ |
JP2003316582A (ja) * | 2002-04-24 | 2003-11-07 | Nec System Technologies Ltd | 2重化biosの制御方法と装置 |
JP2004038529A (ja) * | 2002-07-03 | 2004-02-05 | Nec Corp | 情報処理装置 |
US20040210751A1 (en) * | 2003-04-16 | 2004-10-21 | Winbond Electronics Corp. | Method for booting computer system with basic input-output system memory and structure thereof |
US20120011393A1 (en) * | 2010-07-06 | 2012-01-12 | Roberts Richard B | Bios recovery |
WO2022160756A1 (zh) * | 2021-01-29 | 2022-08-04 | 苏州浪潮智能科技有限公司 | 服务器故障定位方法、装置、系统及计算机可读存储介质 |
CN115048655A (zh) * | 2022-06-23 | 2022-09-13 | 苏州浪潮智能科技有限公司 | 基本输入输出系统镜像校验方法、装置、设备和介质 |
WO2022198972A1 (zh) * | 2021-03-26 | 2022-09-29 | 山东英信计算机技术有限公司 | 一种服务器启动过程中的故障定位方法、系统及装置 |
-
2023
- 2023-10-10 CN CN202311301658.1A patent/CN117032813B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002140209A (ja) * | 2000-10-31 | 2002-05-17 | Toshiba Corp | ウオッチドッグタイマ |
JP2003316582A (ja) * | 2002-04-24 | 2003-11-07 | Nec System Technologies Ltd | 2重化biosの制御方法と装置 |
JP2004038529A (ja) * | 2002-07-03 | 2004-02-05 | Nec Corp | 情報処理装置 |
US20040210751A1 (en) * | 2003-04-16 | 2004-10-21 | Winbond Electronics Corp. | Method for booting computer system with basic input-output system memory and structure thereof |
US20120011393A1 (en) * | 2010-07-06 | 2012-01-12 | Roberts Richard B | Bios recovery |
WO2022160756A1 (zh) * | 2021-01-29 | 2022-08-04 | 苏州浪潮智能科技有限公司 | 服务器故障定位方法、装置、系统及计算机可读存储介质 |
WO2022198972A1 (zh) * | 2021-03-26 | 2022-09-29 | 山东英信计算机技术有限公司 | 一种服务器启动过程中的故障定位方法、系统及装置 |
CN115048655A (zh) * | 2022-06-23 | 2022-09-13 | 苏州浪潮智能科技有限公司 | 基本输入输出系统镜像校验方法、装置、设备和介质 |
Non-Patent Citations (1)
Title |
---|
洪妙婷;: "嵌入式系统的可靠性措施", 甘肃科技, no. 15 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806721A (zh) * | 2024-02-28 | 2024-04-02 | 苏州元脑智能科技有限公司 | 故障诊断驱动加载方法、装置、电子设备及存储介质 |
CN117806721B (zh) * | 2024-02-28 | 2024-04-26 | 苏州元脑智能科技有限公司 | 故障诊断驱动加载方法、装置、电子设备及存储介质 |
CN117827294A (zh) * | 2024-02-29 | 2024-04-05 | 苏州元脑智能科技有限公司 | 一种内存启动处理方法及装置 |
CN117827294B (zh) * | 2024-02-29 | 2024-05-24 | 苏州元脑智能科技有限公司 | 一种内存启动处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117032813B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117032813B (zh) | 双基本输入输出系统闪存的切换判定方法及装置 | |
US20240086269A1 (en) | Method, Apparatus and System for Locating Fault of Server, and Computer-readable Storage Medium | |
US9122501B1 (en) | System and method for managing multiple bios default configurations | |
CN103718165B (zh) | Bios闪存攻击保护和通知 | |
CN113489597B (zh) | 用于网络装置的最佳启动路径的方法和系统 | |
CN110928743B (zh) | 一种计算系统、自动诊断方法及存储有其指令的介质 | |
US20050273588A1 (en) | Bootstrap method and apparatus with plural interchangeable boot code images | |
US8595552B2 (en) | Reset method and monitoring apparatus | |
CN107665308B (zh) | 用于构建和保持可信运行环境的tpcm系统以及相应方法 | |
BR112014014815B1 (pt) | Dispositivo de computação, método e meio de armazenamento para realização de cópia de segurança de firmware | |
US9965288B2 (en) | Preconfiguring hardware and speeding up server discovery prior to bios boot | |
CN111158767A (zh) | 基于bmc的服务器安全启动方法及装置 | |
KR20100050380A (ko) | 자동 펌웨어 복원 | |
US20150154091A1 (en) | Bios maintenance method | |
CN106909848A (zh) | 一种基于bios扩展的计算机安全增强系统及其方法 | |
CN112506745B (zh) | 内存温度读取方法、装置及计算机可读存储介质 | |
CN107015878A (zh) | 用于计算机的系统修复方法及系统 | |
US7219221B2 (en) | System and method for automatic booting based on single flash ROM | |
EP2645239A1 (en) | Electronic apparatus and booting method | |
CN114138527A (zh) | 一种提高服务器性能的方法、装置及介质 | |
US10198270B2 (en) | Dynamic hardware configuration via firmware interface at computing device boot | |
CN108958823B (zh) | 修改基本输入输出系统设定值的方法 | |
JP2020086606A (ja) | 情報処理装置及び制御プログラム | |
WO2023184309A1 (en) | Apparatus, device, method, and computer program for a computer system | |
US11829770B2 (en) | Clustered object storage platform rapid component reboot |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |