CN113010217B - 一种bios参数设置方法、装置、电子设备及存储介质 - Google Patents
一种bios参数设置方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113010217B CN113010217B CN202110290966.3A CN202110290966A CN113010217B CN 113010217 B CN113010217 B CN 113010217B CN 202110290966 A CN202110290966 A CN 202110290966A CN 113010217 B CN113010217 B CN 113010217B
- Authority
- CN
- China
- Prior art keywords
- bios
- band
- parameter
- parameters
- historical
- 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.)
- Active
Links
Images
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
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种BIOS参数设置方法,包括:当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数;获取历史BIOS启动参数,并利用带外BIOS启动参数对历史BIOS启动参数进行更新;利用更新后的历史BIOS启动参数进行PEI阶段的BIOS启动参数初始化。本方法中的BIOS可在BIOS初始化启动参数的PEI阶段便向基板管理控制器获取带外BIOS启动参数并设置生效,能够确保带外BIOS启动参数在PEI阶段便生效,可有效避免相关技术在BIOS参数设置环节的重启问题。本发明还提供一种BIOS参数设置装置、电子设备及计算机可读存储介质,具有上述有益效果。
Description
技术领域
本发明涉及服务器领域,特别涉及一种BIOS参数设置方法、装置、电子设备及计算机可读存储介质。
背景技术
BIOS(基本输入输出***)是服务器***中的重要组成部分,存储有服务器运行的核心参数及程序并可引导服务器启动。为了提升管理服务器BIOS的效率,众多厂商都在服务器中引入了基板管理控制器(BMC,Baseboard Manager Controller)。基板管理控制器可对BIOS进行远程管理,可提升服务器管理人员内的工作效率。
相关技术中,BIOS在启动过程中会从基板管理控制器(BMC,Baseboard ManagerController)获取带外BIOS启动参数并更新内存,但为了让内存中的带外BIOS启动参数生效,BIOS需要执行额外的重启操作,而这额外的重启操作将会降低BIOS启动参数的设置效率,同时由于存在重启,也会降低服务器管理人员的工作效率。
发明内容
本发明的目的是提供一种BIOS参数设置方法、装置、电子设备及计算机可读存储介质,可让BIOS在BIOS初始化启动参数的PEI阶段,便向基板管理控制器获取带外BIOS启动参数并设置生效,能够确保带外BIOS启动参数在PEI阶段便生效,可有效避免相关技术在BIOS参数设置环节的重启问题。
为解决上述技术问题,本发明提供一种BIOS参数设置方法,包括:
当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数;
获取历史BIOS启动参数,并利用所述带外BIOS启动参数对所述历史BIOS启动参数进行更新;
利用更新后的历史BIOS启动参数进行所述PEI阶段的BIOS启动参数初始化。
可选地,在利用更新后的历史BIOS启动参数进行所述PEI阶段的BIOS启动参数初始化之后,还包括:
当所述BIOS处于BDS阶段时,利用所述带外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启动参数的IPMI命令;
接收所述基板管理控制器发送的所述带外BIOS启动参数。
本发明还提供一种BIOS参数设置装置,包括:
参数获取模块,用于当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数;
更新模块,用于获取历史BIOS启动参数,并利用所述带外BIOS启动参数对所述历史BIOS启动参数进行更新;
初始化模块,用于利用更新后的历史BIOS启动参数进行所述PEI阶段的BIOS启动参数初始化。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的BIOS参数设置方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述所述的BIOS参数设置方法。
本发明提供一种BIOS参数设置方法,包括:当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数;获取历史BIOS启动参数,并利用所述带外BIOS启动参数对所述历史BIOS启动参数进行更新;利用更新后的历史BIOS启动参数进行所述PEI阶段的BIOS启动参数初始化。
可见,本方法中的BIOS在PEI阶段(Pre-EFI Initialization,唤醒CPU及记忆体初始化阶段)便向基板管理控制器获取带外BIOS启动参数,由于PEI阶段正是BIOS初始化启动参数的阶段,因此本发明的BIOS可直接在BIOS启动参数初始化阶段,利用从基板管理控制器获取到的带外BIOS启动参数,对历史BIOS启动参数进行更新,并利用更新后的BIOS启动参数完成PEI阶段的BIOS启动参数初始化,可确保带外BIOS启动参数在BIOS的PEI阶段便生效,无需重新读取内存,进而可有效避免相关技术在BIOS参数设置环节的重启问题,并可有效提升BIOS启动参数的设置效率,最终提升服务器管理人员的工作效率。本发明还提供一种BIOS参数设置装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种BIOS参数设置方法的流程图;
图2为本发明实施例所提供的另一种BIOS参数设置方法的流程图;
图3为本发明实施例所提供的一种BIOS参数设置装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
BIOS(基本输入输出***)是服务器***中的重要组成部分,存储有服务器运行的核心参数及程序并可引导服务器启动。为了提升管理服务器BIOS的效率,众多厂商都在服务器中引入了基板管理控制器(BMC,Baseboard Manager Controller)。基板管理控制器可对BIOS进行远程管理,可提升服务器管理人员内的工作效率。
相关技术中,BIOS在启动过程中会从基板管理控制器(BMC,Baseboard ManagerController)获取带外BIOS启动参数并更新内存,但为了让内存中的带外BIOS启动参数生效,BIOS需要执行额外的重启操作,而这额外的重启操作将会降低BIOS启动参数的设置效率,同时由于存在重启,也会降低服务器管理人员的工作效率。有鉴于此,本发明提供一种BIOS参数设置方法,可让BIOS在BIOS初始化启动参数的PEI(Pre-EFI Initialization,唤醒CPU及记忆体初始化)阶段,便向基板管理控制器获取带外BIOS启动参数并设置生效,能够确保带外BIOS启动参数在PEI阶段便生效,可有效避免相关技术在BIOS参数设置环节的重启问题。请参考图1,图1为本发明实施例所提供的一种BIOS参数设置方法,该方法可以包括:
S101、当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数。
相关技术中,BIOS启动时会首先使用其内存中存有的历史BIOS启动参数进行BIOS启动参数初始化,当初始化结束后才向基板管理控制器获取带外BIOS启动参数,并利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新。其中,历史BIOS启动参数为BIOS启动所需的变量及对应变量值,而带外BIOS启动参数为基板管理控制器中储存的、由服务器管理人员更新设置的BIOS启动变量及对应变量值。由于BIOS已完成启动参数初始化,若需要让内存中更新后的历史BIOS启动参数生效,则需要对BIOS进行重新启动,以重新读取并利用内存中更新后的历史BIOS启动参数进行初始化,因此在相关技术中,对BIOS启动参数的设置存在额外的重启操作,该重启操作不仅降低了BIOS启动参数的设置效率,同时也降低了服务器管理人员的工作效率,为管理人员的工作带来不便。
而在本发明实施例中,BIOS会启动环节的PEI(Pre-EFI Initialization,唤醒CPU及记忆体初始化)阶段,就向基板管理控制器获取带外BIOS启动参数,而PEI正是BIOS启动环节中的BIOS启动参数初始化环节。也正是说,本发明的BIOS能够在BIOS启动参数初始化环节,就向基板管理控制器获取带外BIOS启动参数并进行设置,以确保带外BIOS启动参数在BIOS启动参数初始化环节就生效,无需重新读取内存,进而可避免相关技术对BIOS启动参数的设置存在的额外重启问题,可有效提升BIOS启动参数设置的效率,并最终提升服务器管理人员的工作效率。
需要说明的是,本发明实施例并不限定具体的历史BIOS启动参数及带外BIOS启动参数,用户可参考BIOS启动参数的相关技术。可以理解的是,为了利用历史BIOS启动参数准确地进行初始化,历史BIOS启动参数中可带有唯一标识变量的MapID;同样,为了利用带外BIOS启动参数对历史BIOS启动参数进行准确地更新,带外BIOS启动参数中也可带有唯一标识变量的MapID,这样便可对历史BIOS启动参数进行精准查找及更新。需要说明的是,本发明并不限定带外BIOS启动参数是否需要包含所有历史BIOS启动参数,还是仅需要包含部分历史BIOS启动参数,当需要对每一历史BIOS启动参数都进行更新时,带外BIOS启动参数可以包含所有历史BIOS启动参数;当仅需对部分历史BIOS启动参数进行更新时,带外BIOS启动参数也可以仅包含部分历史BIOS启动参数。在本发明实施例中,考虑到历史BIOS启动参数的数量众多,对所有历史BIOS启动参数都进行更新将会耗费大量时间,因此带外BIOS启动参数仅需包含部分历史BIOS启动参数即可。需要说明的是,本发明实施例也不限定具体存储历史BIOS启动参数的内存,用户可根据实际应用需求进行设定。在一种情况中,该内存可以为NVRAM,NVRAM(Non-Volatile Random Access Memory,非易失性随机访问存储器)一种断电后仍能保持数据的内存。
进一步,本发明实施例并不限定BIOS向基板管理控制器获取带外BIOS启动参数的具体过程,用户可参考IPMI的相关技术,其中IPMI(Intelligent Platform ManagementInterface,智能平台管理接口)是一种可用于监视服务器物理健康特征的工业标准。在一种可能的情况中,由于基板管理控制器无法与BIOS进行主动通信,需由BIOS向基板管理控制器发送IPMI命令,再由基板管理控制器进行响应,因此从基板管理控制器中获取带外BIOS启动参数的过程,可以包括:
步骤11:向基板管理管理器发送表示请求带外BIOS启动参数的IPMI命令;
步骤12:接收基板管理控制器发送的带外BIOS启动参数。
需要说明的是,本发明实施例并不限定具体的表示请求带外BIOS启动参数的IPMI命令,只要该命令采用了IPMI命令的数据形式,可能够准确携带对带外BIOS启动参数的请求即可,用户可结合相关技术进行设置。本发明实施例也不限定基板管理器发送带外BIOS启动参数的方式,用户同样可参考IPMI技术。本发明实施例也不限定基板管理控制器以何种形式发送带外BIOS启动参数,例如基板管理控制器可以一条一条地发送带外BIOS启动参数,也可以将所需发送的BIOS启动参数封装至JSON文件中统一发送,其中JSON(JavaScriptObject Notation)是一种轻量级的数据交换格式。考虑到一条一条地发送带外BIOS启动参数不仅传输效率低,同时由于发送次数多,相较于统一发送更容易出现发送失败的情况,因此在本发明实施例中,基板管理控制器可将所需发送的带外BIOS启动参数封装至JSON文件中进行统一发送。
进一步,需要说明的是,本发明实施例并不限定是否需要创建移交数据区块列表,并将带外BIOS启动参数存储至移交数据区块列表中,启动移交数据区块(HOB,Hand-offBlocks),用于将BIOS需要的数据信息从PEI阶段转移到DXE(Driver ExecutionEnvironment,驱动程序执行环境)阶段,可临时存放带外BIOS启动参数;当带外BIOS启动参数在被BIOS接收到时便可用于更新历史BIOS启动参数时,可无需将带外BIOS启动参数存放于移交数据区块列表中;当带外BIOS启动参数需要被解析提取后,才可用于更新历史BIOS启动参数时,也可以将带外BIOS启动参数存储至移交数据区块列表中。由于本发明实施例的基板管理控制器采用JSON格式统一发送带外BIOS启动参数,进而存在对JSON文件的解析,因此可将带外BIOS启动参数存储至移交数据区块列表中。
在一种可能的情况中,从基板管理控制器中获取带外BIOS启动参数的过程,可以包括:
步骤21:从基板管理控制器中获取带外BIOS启动参数;
步骤22:创建移交数据区块列表,并将带外BIOS启动参数保存至移交数据区块列表中。
需要说明的是,本发明实施例并不限定创建移交数据区块列表的具体方式,用户可参考移交数据区块HOB的相关技术。
S102、获取历史BIOS启动参数,并利用带外BIOS启动参数对历史BIOS启动参数进行更新。
可以理解的是,此步骤获取的历史BIOS启动参数为BIOS启动参数初始化所需的所有BIOS启动参数,而历史BIOS启动参数由BIOS从内存中获取得到。需要说明的是,由于BIOS在PEI阶段仅能执行读取内存的操作,无法对内存进行写操作,因此在本步骤中,利用带外BIOS启动参数对历史BIOS启动参数进行更新为:利用带外BIOS启动参数对从内存中获取得到的历史BIOS启动参数进行更新。即在本步骤中,并未对内存中存储的历史BIOS启动参数进行更新修改。
需要说明的是,本发明实施例并不限定利用带外BIOS启动参数对历史BIOS启动参数进行更新的具体方式及过程,例如可将获取历史BIOS启动参数的获取BIOS启动参数的函数GetVariable()进行重新封装,在重新封装的获取函数内,利用查找与带外BIOS启动参数对应的历史BIOS启动参数,并将带外BIOS启动参数对应的历史BIOS启动参数进行数值对比,若两者相同则保留历史BIOS启动参数,若两者不同则利用带外BIOS启动参数替换对应的历史BIOS启动参数;当然也可以自定义更新函数,利用自定义更新函数提取获取函数返回的历史BIOS启动参数,并利用带外BIOS启动参数为对应的历史BIOS启动参数进行上述更新过程,用户可根据实际应用需求进行设定。考虑到获取BIOS启动参数的函数GetVariable()为BIOS***的原生函数,对该函数进行重新封装,并利用重新封装后的函数及带外BIOS启动参数对历史BIOS启动参数进行更新,不会扰乱BIOS原有功能,同时也可以更加高效地进行更新,因此在本发明实施例中,可对获取BIOS启动参数的函数进行重新封装,并利用封装后的该函数及带外BIOS启动参数,对历史BIOS启动参数进行更新。
S103、利用更新后的历史BIOS启动参数进行PEI阶段的BIOS启动参数初始化。
在完成更新后,带外BIOS启动参数的变量值便写入了更新后的历史BIOS启动参数中,而此时利用更新后的历史BIOS启动参数进行PEI阶段的BIOS启动参数初始,便可确保带外BIOS启动参数在PEI阶段即生效,无需重新读取内存,可有效避免相关技术需要额外重启才能够使带外BIOS启动参数生效的问题,进而有效提升了BIOS启动参数的设置效率,并可提升服务器管理人员的工作效率。需要说明的是,本发明实施例并不限定PEI阶段的BIOS启动参数初始化的具体过程,用户可参考PEI的相关技术。
进一步,本发明实施例并不限定是否需要在BIOS启动环节的其他阶段利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新,当BIOS不存储最新的BIOS启动参数,而是每次都向基板管理控制器获取最新的带外BIOS启动参数,同时在此种情况下BIOS也能够确保较高的启动效率时,可不对内存中的历史BIOS启动参数进行更新;当带外BIOS启动参数的更新频率较低,又或是需要提升BIOS的启动效率时,又或是需要确保用于初始化的BIOS启动参数与内存中的历史BIOS启动参数一致时,也可在BIOS启动环节的BDS阶段利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新。考虑到需要确保用于初始化的BIOS启动参数与内存中的历史BIOS启动参数一致,同时带外BIOS启动参数的更新频率较低,BIOS将带外BIOS启动参数更新至内存中,也可避免每次BIOS启动需要利用带外BIOS启动参数更新历史BIOS启动参数,因此在本发明实施例中,可在BIOS启动环节的BDS阶段利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新。本发明也不限定对内存中的历史BIOS启动参数进行更新这一操作处于BIOS启动环节中的哪一其他阶段,例如PEI阶段之后的DXE阶段及BDS阶段,其中DXE(Driver Execution Environment)阶段为服务器上的硬件驱动初始化阶段,而BDS(Boot Device Selection)为启动设备的选择阶段,在BDS阶段已完成所有BIOS启动参数及硬件驱动的初始化。考虑到BDS阶段已完成所有BIOS启动参数及硬件驱动的初始化,即带外BIOS启动参数能够完全生效,因此本发明实施例可以在BDS阶段利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新。
基于上述实施例,本方法中的BIOS在PEI阶段(Pre-EFI Initialization,唤醒CPU及记忆体初始化阶段)便向基板管理控制器获取带外BIOS启动参数,由于PEI阶段正是BIOS初始化启动参数的阶段,因此本发明的BIOS可直接在BIOS启动参数初始化阶段,利用从基板管理控制器获取到的带外BIOS启动参数,对历史BIOS启动参数进行更新,并利用更新后的BIOS启动参数完成PEI阶段的BIOS启动参数初始化,可确保带外BIOS启动参数在BIOS的PEI阶段便生效,无需重新读取内存,进而可有效避免相关技术在BIOS参数设置环节的重启问题,并可有效提升BIOS启动参数的设置效率,最终提升服务器管理人员的工作效率。
基于上述实施例,下面对本发明实施例所提供的另一种BIOS参数设置方法进行介绍。请参考图2,图2为本发明实施例所提供的另一BIOS参数设置方法的流程图,该方法可以包括:
S201、当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数。
S202、获取历史BIOS启动参数,并利用带外BIOS启动参数对历史BIOS启动参数进行更新。
S203、利用更新后的历史BIOS启动参数进行PEI阶段的BIOS启动参数初始化。
步骤S201至S203的限定描述与上述实施例相同,此处不再赘述。
S204、当BIOS处于BDS阶段时,利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新。
由于BDS阶段已完成所有BIOS启动参数及硬件驱动的初始化,即带外BIOS启动参数能够完全生效,因此本发明实施例可以在BDS阶段利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新,以确保内存中的历史BIOS启动参数与实际完成初始化的BIOS启动参数一致。
需要说明的是,本发明实施例并不限定步骤204中的带外BIOS启动参数的获取位置,例如可以再次从基板管理控制器中获取,当BIOS在PEI阶段将带外BIOS启动参数存储至移交数据区块列表时,也可从移交数据区块列表中提取。由于移交数据区块列表中的带外BIOS启动参数为直接参与了BIOS启动参数初始化,为了确保初始化的BIOS启动参数与内存中的历史BIOS启动参数一致,在本发明实施例中将会从移交数据区块列表中提取带外启动参数。
在一种可能的情况中,利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新的过程,可以包括:
步骤31:从移交数据区块列表中提取带外BIOS启动参数;
步骤32:利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新。
需要说明的是,本发明实施例并不限定从移交数据区块列表中提取带外BIOS启动参数,并利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新的具体方法及过程,例如可以注册一个在BDS阶段设置变量值的回调函数,利用该回调函数读取移交数据区块列表中的带外BIOS启动参数,并通过BIOS原生的历史BIOS启动参数设置函数SetVariable()对内存中的历史BIOS启动参数进行更新,当然也可以对历史BIOS启动参数设置函数SetVariable()进行重新封装,并利用重新封装后的历史BIOS启动参数设置函数提取移交数据区块列表中的带外BIOS启动参数,最后利用带外BIOS启动参数完成对内存中的历史BIOS启动参数的更新。
S205、将内存中更新后的历史BIOS启动参数发送至基板管理控制器。
本步骤旨在将BIOS中已完成初始化及内存更新的历史BIOS启动参数同步至基板管理控制器,以确保内存中的历史BIOS启动参数与基板管理控制器中的记录一致。
需要说明的是,本发明实施例并不限定将内存中更新后的历史BIOS启动参数发送至基板管理控制器的具体发送方式,例如可通过IPMI命令的形式将内存中更新后的历史BIOS启动参数发送至基板管理控制器,也可利用Redfish的USB LAN有线网卡将内存中更新后的历史BIOS启动参数发送至基板管理控制器,其中,Redfish是一种基于HTTPs服务的管理标准,可进行快速文件传输。由于Redfish的文件传输速率较快,因此可利用通过Redfish的USB LAN将内存中更新后的历史BIOS启动参数发送至基板管理控制器。
进一步,考虑到在利用带外BIOS启动参数对内存中的历史BIOS启动参数的更新过程中可能出现更新错误,此时带外BIOS启动参数并未写入内存,进而会产生内存中的历史BIOS启动参数与实际初始化的BIOS启动参数不一致。为了提示服务器管理人员重新进行BIOS参数设置,在利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新的过程中,还可对发生更新错误的带外BIOS启动参数进行记录,以为服务器管理人员提供失败记录信息。
在一种可能的情况中,利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新的过程,可以包括:
步骤41:利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新;
步骤42:当带外BIOS启动参数发生更新错误时,将更新错误的带外BIOS启动参数保存至失败日志数据中;
步骤43:将失败日志数据发送至基板管理控制器。
需要说明的是,本发明实施例并不限定失败日志数据具体包含的数据内容,例如可以包含更新错误的带外BIOS启动参数及对应数值,也可以包含更新错误的带外BIOS启动参数对应的唯一变量标识MapID,也可以包含更新错误的带外BIOS启动参数的失败标识,用户可根据实际应用需求进行设置。需要说明的是,将对失败日志数据发送至基板管理控制器的发送方式的限定描述,与将内存中更新后的历史BIOS启动参数发送至基板管理控制器的发送方式的限定描述一致,此处不再赘述。
当然,当带外BIOS启动参数出现更新错误时,也可利用该带外BIOS启动参数重新执行内存更新操作,以便排除偶然情况对内存更新操作的干扰。而当同一带外BIOS启动参数反复出现更新错误的情况时,由于该带外BIOS启动参数确实存在异常情况,为了不影响其他带外BIOS启动参数的更新,可在同一带外BIOS启动参数的失败次数达到预设次数时,停止对该带外BIOS启动参数的内存更新操作,并将该带外BIOS启动参数记录至失败日志数据中。
在一种可能的情况中,在将更新错误的带外BIOS启动参数保存至失败日志数据中之前,还可以包括:
步骤51:对更新错误的带外BIOS启动参数重新执行利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新的操作,直至更新错误的带外BIOS启动参数的错误次数达到预设次数时,执行将更新错误的带外BIOS启动参数记录至失败日志数据中的操作。
需要说明的是,本发明实施例并不限定预设次数的具体数值,用户可根据实际应用需求进行设定。
基于上述实施例,本方法的BIOS在PEI阶段完成BIOS启动参数初始化之后,还在BDS阶段利用带外BIOS启动参数更新了内存中的历史BIOS启动参数,该内存更新操作可确保内存中的历史BIOS启动参数与实际初始化的BIOS启动参数保持一致,以确保BIOS所使用的BIOS启动参数均一致;同时,本方法在完成更新之后,还将内存中更新后的历史BIOS启动参数发送至基板管理控制器,可确保内存中的历史BIOS启动参数与基板管理控制器中的记录一致。
下面结合一个具体的例子解释上述BIOS参数设置的过程。在一种可能的情况中,BIOS参数设置的过程可以包括:
1、BIOS在启动环节的PEI阶段,向基板管理控制器BMC发送请求带外BIOS启动参数的IPMI命令,并接收BMC发送的带外BIOS启动参数Bios_future_settings.json文件;
2、解析Bios_future_settings.json文件,并创建移交数据区块列表HOB保存解析后的带外BIOS启动参数;
3、将BIOS原生函数的历史BIOS启动参数获取函数GetVariable()重新封装,利用重新封装的GetVariable()获取历史BIOS启动参数及HOB中的带外BIOS启动参数,并利用带外BIOS启动参数对历史BIOS启动参数进行更新;
4、利用更新后的历史BIOS启动参数完成PEI阶段的BIOS启动参数初始化;
5、在BDS利用预设置的变量设定回调函数,获取HOB中存放的带外BIOS启动参数,并通过BIOS原生函数的历史BIOS启动参数设置函数SetVariable()函数,利用带外BIOS启动参数更新NVRAM内存中的历史BIOS启动参数;
6、当带外BIOS启动参数发生更新错误时,将更新错误的带外BIOS启动参数保存至失败日志数据Setting_Result.json中,并在完成更新后将Setting_Result.json发送至基板管理控制器;
7、在完成更新后,将内存中更新后的历史BIOS启动参数CurrentSetting.json发送至基板管理控制器。
下面对本发明实施例提供的一种BIOS参数设置装置、电子设备及计算机可读存储介质进行介绍,下文描述的BIOS参数设置装置、电子设备及计算机可读存储介质与上文描述的BIOS参数设置方法可相互对应参照。
请参考图3,图3为本发明实施例所提供的一种BIOS参数设置装置的结构框图,该装置可以包括:
参数获取模块301,用于当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数;
更新模块302,用于获取历史BIOS启动参数,并利用带外BIOS启动参数对历史BIOS启动参数进行更新;
初始化模块303,用于利用更新后的历史BIOS启动参数进行PEI阶段的BIOS启动参数初始化。
可选地,该装置还可以包括:
内存更新模块,用于当BIOS处于BDS阶段时,利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新;
发送模块,用于将内存中更新后的历史BIOS启动参数发送至基板管理控制器。
可选地,参数获取模块301,可以包括:
参数获取子模块,用于从基板管理控制器中获取带外BIOS启动参数;
存储子模块,用于创建移交数据区块列表,并将带外BIOS启动参数保存至移交数据区块列表中。
可选地,更新模块302,可以包括:
提取子模块,用于从移交数据区块列表中提取带外BIOS启动参数;
更新子模块,用于利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新。
可选地,更新子模块,可以包括:
更新单元,用于利用带外BIOS启动参数对内存中的历史BIOS启动参数进行更新;
错误记录单元,用于当带外BIOS启动参数发生更新错误时,将更新错误的带外BIOS启动参数保存至失败日志数据中;
发送单元,用于将失败日志数据发送至基板管理控制器。
可选地,更新子模块,还可以包括:
重复更新子模块,用于对更新错误的带外BIOS启动参数重新执行内存更新操作,直至更新错误的带外BIOS启动参数的错误次数达到预设次数时,执行将更新错误的带外BIOS启动参数记录至失败日志数据中的操作。
可选地,参数获取模块301,包括:
命令发送子模块,用于向基板管理管理器发送表示请求带外BIOS启动参数的IPMI命令;
接收模块,用于接收基板管理控制器发送的带外BIOS启动参数。
本发明实施例还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的BIOS参数设置方法的步骤。
由于电子设备部分的实施例与BIOS参数设置方法部分的实施例相互对应,因此电子设备部分的实施例请参见BIOS参数设置方法部分的实施例的描述,这里暂不赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例所述的BIOS参数设置方法的步骤。如计算机程序被处理器执行时实现当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数;获取历史BIOS启动参数,并利用所述带外BIOS启动参数对所述历史BIOS启动参数进行更新;利用更新后的历史BIOS启动参数进行所述PEI阶段的BIOS启动参数初始化。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种BIOS参数设置方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (7)
1.一种BIOS参数设置方法,其特征在于,包括:
当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数;
获取历史BIOS启动参数,并利用所述带外BIOS启动参数对所述历史BIOS启动参数进行更新;
利用更新后的历史BIOS启动参数进行所述PEI阶段的BIOS启动参数初始化;
其中,在利用更新后的历史BIOS启动参数进行所述PEI阶段的BIOS启动参数初始化之后,还包括:
当所述BIOS处于BDS阶段时,利用所述带外BIOS启动参数对内存中的所述历史BIOS启动参数进行更新;
将所述内存中更新后的历史BIOS启动参数发送至所述基板管理控制器;
其中,所述从基板管理控制器中获取带外BIOS启动参数,包括:
从所述基板管理控制器中获取所述带外BIOS启动参数;
创建移交数据区块列表,并将所述带外BIOS启动参数保存至所述移交数据区块列表中;
其中,所述利用所述带外BIOS启动参数对内存中的所述历史BIOS启动参数进行更新,包括:
从所述移交数据区块列表中提取所述带外BIOS启动参数;
利用所述带外BIOS启动参数对所述内存中的所述历史BIOS启动参数进行更新。
2.根据权利要求1所述的BIOS参数设置方法,其特征在于,所述利用所述带外BIOS启动参数对内存中的所述历史BIOS启动参数进行更新,包括:
利用所述带外BIOS启动参数对所述内存中的所述历史BIOS启动参数进行更新;
当所述带外BIOS启动参数发生更新错误时,将所述更新错误的带外BIOS启动参数保存至失败日志数据中;
将所述失败日志数据发送至所述基板管理控制器。
3.根据权利要求2所述的BIOS参数设置方法,其特征在于,在将所述更新错误的带外BIOS启动参数保存至失败日志数据中之前,还包括:
对所述更新错误的带外BIOS启动参数重新执行所述利用所述带外BIOS启动参数对所述内存中的所述历史BIOS启动参数进行更新的操作,直至所述更新错误的带外BIOS启动参数的错误次数达到预设次数时,执行所述将所述更新错误的带外BIOS启动参数记录至失败日志数据中的操作。
4.根据权利要求1至3任一项所述的BIOS参数设置方法,其特征在于,所述从基板管理控制器中获取带外BIOS启动参数,包括:
向所述基板管理管理器发送表示请求所述带外BIOS启动参数的IPMI命令;
接收所述基板管理控制器发送的所述带外BIOS启动参数。
5.一种BIOS参数设置装置,其特征在于,包括:
参数获取模块,用于当BIOS处于PEI阶段时,从基板管理控制器中获取带外BIOS启动参数;
更新模块,用于获取历史BIOS启动参数,并利用所述带外BIOS启动参数对所述历史BIOS启动参数进行更新;
初始化模块,用于利用更新后的历史BIOS启动参数进行所述PEI阶段的BIOS启动参数初始化;
其中,该装置还包括:
内存更新模块,用于当所述BIOS处于BDS阶段时,利用所述带外BIOS启动参数对内存中的所述历史BIOS启动参数进行更新;
发送模块,用于将所述内存中更新后的历史BIOS启动参数发送至所述基板管理控制器;
其中,所述参数获取模块,包括:
参数获取子模块,用于从所述基板管理控制器中获取所述带外BIOS启动参数;
存储子模块,用于创建移交数据区块列表,并将所述带外BIOS启动参数保存至所述移交数据区块列表中;
其中,所述更新模块,包括:
提取子模块,用于从所述移交数据区块列表中提取所述带外BIOS启动参数;
更新子模块,用于利用所述带外BIOS启动参数对所述内存中的所述历史BIOS启动参数进行更新。
6.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的BIOS参数设置方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至4任一项所述的BIOS参数设置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110290966.3A CN113010217B (zh) | 2021-03-18 | 2021-03-18 | 一种bios参数设置方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110290966.3A CN113010217B (zh) | 2021-03-18 | 2021-03-18 | 一种bios参数设置方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010217A CN113010217A (zh) | 2021-06-22 |
CN113010217B true CN113010217B (zh) | 2023-04-07 |
Family
ID=76409686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110290966.3A Active CN113010217B (zh) | 2021-03-18 | 2021-03-18 | 一种bios参数设置方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010217B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672263B (zh) * | 2021-08-23 | 2024-04-23 | 联想(北京)有限公司 | 固件参数更新控制方法、装置及电子设备 |
CN114003295B (zh) * | 2021-10-15 | 2023-08-25 | 苏州浪潮智能科技有限公司 | 一种内存参数的设置方法、***及装置 |
CN113986361B (zh) * | 2021-10-21 | 2024-02-09 | 山东云海国创云计算装备产业创新中心有限公司 | 一种bios选项的带外设置方法、***及相关装置 |
CN114116031A (zh) * | 2021-11-22 | 2022-03-01 | 曙光信息产业股份有限公司 | 选项参数同步方法、装置、计算机设备和存储介质 |
CN114327650B (zh) * | 2021-12-17 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 一种SetVariable服务实现方法、装置及介质 |
US11934838B2 (en) | 2022-02-09 | 2024-03-19 | Quanta Computer Inc. | Storing EFI variables in a BMC using an API |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002330A (zh) * | 2018-07-27 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种识别uefi os启动项的方法、装置及设备 |
CN109117195A (zh) * | 2018-07-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种uefi模式调整启动顺序的方法、装置及设备 |
CN110032399A (zh) * | 2019-04-15 | 2019-07-19 | 苏州浪潮智能科技有限公司 | 一种tpm初始化方法及相关装置 |
CN111338698A (zh) * | 2020-02-23 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种bios准确引导服务器启动的方法及*** |
CN112306581A (zh) * | 2020-11-13 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种基板管理控制器管理bios配置的方法及介质 |
CN112463222A (zh) * | 2020-11-11 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种服务器bios与bmc之间的数据交互方法、装置及设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412769B (zh) * | 2013-07-25 | 2017-11-21 | 华为技术有限公司 | 外接卡参数配置方法、设备以及*** |
CN103473141A (zh) * | 2013-09-13 | 2013-12-25 | 浪潮电子信息产业股份有限公司 | 一种带外查看及修改bios设置选项的方法 |
JP6404708B2 (ja) * | 2014-12-24 | 2018-10-10 | Necプラットフォームズ株式会社 | 情報処理装置、bios設定情報変更方法、並びにコンピュータ・プログラム |
CN104601373A (zh) * | 2015-01-05 | 2015-05-06 | 浪潮电子信息产业股份有限公司 | 一种通过带外方式设置和同步bios配置参数的方法 |
CN106557340B (zh) * | 2015-09-29 | 2022-11-15 | 中兴通讯股份有限公司 | 一种配置方法及装置 |
CN110187922B (zh) * | 2019-04-24 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 设置并验证bios参数的方法、装置、设备及存储介质 |
-
2021
- 2021-03-18 CN CN202110290966.3A patent/CN113010217B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002330A (zh) * | 2018-07-27 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种识别uefi os启动项的方法、装置及设备 |
CN109117195A (zh) * | 2018-07-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种uefi模式调整启动顺序的方法、装置及设备 |
CN110032399A (zh) * | 2019-04-15 | 2019-07-19 | 苏州浪潮智能科技有限公司 | 一种tpm初始化方法及相关装置 |
CN111338698A (zh) * | 2020-02-23 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种bios准确引导服务器启动的方法及*** |
CN112463222A (zh) * | 2020-11-11 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种服务器bios与bmc之间的数据交互方法、装置及设备 |
CN112306581A (zh) * | 2020-11-13 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种基板管理控制器管理bios配置的方法及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113010217A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113010217B (zh) | 一种bios参数设置方法、装置、电子设备及存储介质 | |
US10002054B2 (en) | Method and system for performing automatic system recovery | |
WO2017166446A1 (zh) | 漏洞修复方法和装置 | |
CN107066300B (zh) | 一种存储设备的固件升级方法和存储设备 | |
CN110333876A (zh) | 一种数据清除方法及控制设备 | |
CN112953983A (zh) | Sftp传输方法及装置 | |
CN110597545A (zh) | 一种基于ota组件的热补丁智能升级方法及*** | |
CN106547645B (zh) | 自动修复映像档的方法及服务器*** | |
CN115658113A (zh) | 服务器自启动方法、装置、可读存储介质及电子设备 | |
CN114205208A (zh) | 一种基于远端的服务器批量启动方法、装置、设备及介质 | |
CN114327536A (zh) | 一种服务器运维方法、装置、设备及存储介质 | |
CN113254045A (zh) | 软件初始化方法、***及计算机可读存储介质 | |
CN115495161B (zh) | Bios选项修改的生效方法和装置、存储介质 | |
CN112559155A (zh) | 批量作业处理方法、***、计算机设备及可读存储介质 | |
CN108595292B (zh) | 一种***的优化方法、移动终端及计算机存储介质 | |
CN113553110A (zh) | 一种服务器的硬件基线自动化修正方法、装置及*** | |
CN114553859A (zh) | 一种bmc配置管理方法、装置、电子设备及存储介质 | |
CN109684134B (zh) | 用于在多个设备间快速部署固件设定的方法及服务器 | |
CN112667444A (zh) | 一种***升级方法、存储介质及终端设备 | |
CN112241141A (zh) | Plc控制***的硬件配置方法、***、设备及介质 | |
CN113886218B (zh) | 一种验证bios刷新的方法、装置、设备及可读介质 | |
CN116107603B (zh) | 一种固件升级方法、装置、存储介质和电子设备 | |
CN113992739B (zh) | 一种局域网ota固件升级装置、方法及*** | |
CN116048572A (zh) | 终端设备的固件升级方法、装置、终端设备及存储介质 | |
CN118051240A (zh) | 计算机操作***的安装方法、装置、设备、介质及产品 |
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 |