基于UEFI固件的恢复出厂设置方法及***
技术领域
本发明涉及计算机技术领域,是一种基于UEFI固件的恢复出厂设置方法及***。
背景技术
固件是计算机***中的重要基础软件,固化存储于主板硬件的芯片中。目前符合UEFI规范的计算机固件(即UEFI固件)广泛的应用于主流的X86商用计算机***。通过UEFI固件的交互界面实现对主板上所有硬件的控制,比如时间日期、语言、登录验证、硬盘安全设置等等。如果主板的启动设置经过用户修改以后达不到想要的配置效果,而用户无法准确记住都修改了哪些选项时,则需要将UEFI固件恢复原始设置。
目前,UEFI固件恢复出厂设置的方式主要有以下几种:第一种是通过将配置数据储存在CMOS芯片中,UEFI固件通过在关机前通过给CMOS芯片掉电清除CMOS芯片中的配置数据,下次开机时,UEFI固件程序执行时在CMOS芯片中获取不到配置数据,会前往UEFI固件芯片中获取默认的配置数据,实现恢复出厂设置的功能。该方式不进入配置界面,从安全性层面上看,其对用户的一些重要的数据的保护机制不健全,无法在恢复出厂设置的过程中进行选择性恢复,重要的登录数据完全消失。第二种方法是在主板上设置两块相同的UEFI固件芯片,一片做主用芯片,一片做备用芯片,当主用芯片故障或需要恢复出厂设置时,硬件电路选择通过备用芯片启动,并尝试将备用芯片中的UEFI固件向主用芯片中擦写一份,从而完成恢复出厂设置,该方式增加了UEFI固件的开发成本,并且他人可以通过调换主从芯片,实现免密登录,这直接影响到了主板的安全性。
发明内容
本发明提供了一种基于UEFI固件的恢复出厂设置方法及***,克服了上述现有技术之不足,其能有效解决现有UEFI固件的恢复出厂设置方法存在的安全系数低、成本高的问题。
本发明的技术方案之一是通过以下措施来实现的:一种基于UEFI固件的恢复出厂设置方法,包括:
在选择是否进入UEFI固件配置界面前,获取UEFI固件的恢复出厂设置指令;
将UEFI固件的历史配置值与其出厂配置值保持一致;
获取UEFI固件的历史配置值,根据历史配置值在选择是否进入UEFI固件配置界面前进行UEFI固件配置,完成恢复出厂设置。
下面是对上述发明技术方案的进一步优化或/和改进:
上述将UEFI固件的历史配置值与其出厂配置值保持一致,包括:
判断UEFI固件的历史配置值与其出厂配置值是否一致;
响应于否,则调用该UEFI固件存储的出厂配置值,将该出厂配置值擦写至历史配置值中;
响应于是,则该UEFI固件的历史配置值保持不变。
上述在选择是否进入UEFI固件配置界面前,获取UEFI固件的恢复出厂设置指令,包括:
在选择是否进入UEFI固件配置界面前,获得UEFI固件的恢复出厂设置标志位;
判断恢复出厂设置标志位是否为真;
响应于是,则执行UEFI固件的恢复出厂设置;
响应于否,则无需恢复出厂设置,直接根据历史配置值在选择是否进入UEFI固件配置界面前进行UEFI固件配置。
上述获取UEFI固件的历史配置值,根据历史配置值在选择是否进入UEFI固件配置界面前完成UEFI固件配置,进入UEFI固件配置界面后,判断是否产生配置修改,响应于是,则在退出配置界面时对配置值进行保存,包括:
退出配置界面时,判断是否在配置界面修改过配置值;
响应于是,则保存修改后的配置值,并启动操作***;
响应于否,则无需保存配置值,并启动操作***。
本发明的技术方案之二是通过以下措施来实现的:一种基于UEFI固件的恢复出厂设置***,包括:
包括固件恢复出厂设置识别模块、固件历史配置值存取模块、固件出厂配置值备份模块;
固件恢复出厂设置识别模块,用于在选择是否进入UEFI固件配置界面前,获取UEFI固件的恢复出厂设置指令;
固件出厂配置值备份模块,用于存储UEFI固件的出厂配置值,并只提供只读操作;
固件历史配置值存取模块,用于存取UEFI固件的历史配置值,将UEFI固件的历史配置值与其出厂配置值保持一致,获取UEFI固件的历史配置值,根据历史配置值在选择是否进入UEFI固件配置界面前进行UEFI固件配置,完成恢复出厂设置。
下面是对上述发明技术方案的进一步优化或/和改进:
上述还包括固件配置数据检测模块,所述固件配置数据检测模块用于判断UEFI固件的历史配置值与其出厂配置值是否一致,并发送判断结果至固件历史配置值存取模块;所述固件历史配置值存取模块接收判断结果,若判断结果为否,则调用该UEFI固件存储的出厂配置值,将该出厂配置值擦写至历史配置值中,若判断结果为是,则该UEFI固件的历史配置值保持不变。
上述还包括UEFI驱动、UEFI固件架构性基础功能模块;
UEFI驱动,用于支撑UEFI固件和操作***的正常运行;
UEFI固件架构性基础功能模块,用于为UEFI驱动构建符合UEFI规范的运行环境。
本发明在选择是否进入UEFI固件配置界面前完成UEFI固件恢复出厂设置的全过程,保证使用已经完善的历史配置值去加载展示UEFI固件配置界面或不进入UEFI固件配置界面时加载操作***。相较于使得CMOS芯片掉电后数据丢失实现恢复出厂设置的方法,提高了UEFI固件的安全系数,适用于信息安全要求较高的主机。相较于硬件双芯片的恢复出厂设置的方法,降低了硬件成本,降低了双芯片的芯片间互相维护互相保护的成本。
附图说明
附图1为本发明实施例的流程图。
附图2为本发明实施例中将UEFI固件的历史配置值与其出厂配置值保持一致的流程图。
附图3为本发明实施例中获取UEFI固件的恢复出厂设置指令的流程图。
附图4为本发明实施例中退出UEFI固件配置界面时对配置值进行保存的流程图。
附图5为本发明实施例的***结构图。
具体实施方式
本发明不受下述实施例的限制,可根据本发明的技术方案与实际情况来确定具体的实施方式。
下面结合实施例及附图对本发明作进一步描述:
如附图1所示,本发明实施例公开了基于UEFI固件的恢复出厂设置方法,包括:
S1,在选择是否进入UEFI固件配置界面前,获取UEFI固件的恢复出厂设置指令;
S2,将UEFI固件的历史配置值与其出厂配置值保持一致;
S3,获取UEFI固件的历史配置值,根据历史配置值在选择是否进入UEFI固件配置界面前进行UEFI固件配置,完成恢复出厂设置。
本发明在选择是否进入UEFI固件配置界面前完成UEFI固件恢复出厂设置的全过程,保证使用已经完善的历史配置值去加载展示UEFI固件配置界面或不进入UEFI固件配置界面时加载操作***。相较于使得CMOS芯片掉电后数据丢失实现恢复出厂设置的方法,提高了UEFI固件的安全系数,适用于信息安全要求较高的主机。相较于硬件双芯片的恢复出厂设置的方法,降低了硬件成本,降低了双芯片的芯片间互相维护互相保护的成本。
上述技术方案中在,UEFI固件的历史配置值和出厂配置值均保存在UEFI固件芯片中(例如分别存储在UEFI固件芯片的变量区中),能有效实现恢复出厂设置功能和日常的配置修改功能,使得各个功能都稳定运行。
上述技术方案中,在实现UEFI固件恢复出厂设置的过程中,主机上电开机启动,运行UEFI固件程序,在选择是否进入UEFI固件配置界面前,获取UEFI固件的恢复出厂设置指令,其中恢复出厂设置指令可以是但不限于固件恢复出厂标志位的形式;获取UEFI固件的恢复出厂设置指令后,在进入UEFI固件配置界面前执行恢复出厂设置过程,即将UEFI固件的历史配置值与其出厂配置值保持一致,其中保持一致可通过将UEFI固件的历史配置值替换为该UEFI固件的出厂配置值的方式实现,从而将UEFI固件的历史配置值与其出厂配置值保持一致,并根据历史配置值在选择是否进入UEFI固件配置界面前进行UEFI固件配置,完成恢复出厂设置。
可根据实际需要,对上述本发明实施例的技术方案作进一步优化或/和改进:
如附图2所示,在上一实施例中将UEFI固件的历史配置值与其出厂配置值保持一致,本实施中的基于UEFI固件的恢复出厂设置方法,将UEFI固件的历史配置值与其出厂配置值保持一致还可以进一步包括:
S21,获取UEFI固件的历史配置值与出厂配置值;
S22,判断UEFI固件的历史配置值与其出厂配置值是否一致;
S23,响应于否,则调用该UEFI固件存储的出厂配置值,将该出厂配置值擦写至历史配置值中;
S24,响应于是,则该UEFI固件的历史配置值保持不变。
本发明中UEFI固件的历史配置值和出厂配置值均保存在UEFI固件芯片中(例如分别存储在UEFI固件芯片的变量区中),因此上述技术方案中,能将UEFI固件的历史配置值与其出厂配置值进行比对,判断二者是否一致,若不一致则调用UEFI固件的出厂配置值,将其擦写至历史配置值中,使得UEFI固件的历史配置值与其出厂配置值保持一致,从而便于后续根据历史配置值完成恢复出厂设置。
如附图3所示,在上一实施例中在选择是否进入UEFI固件配置界面前,获取UEFI固件的恢复出厂设置指令,本实施中基于UEFI固件的恢复出厂设置方法,获取UEFI固件的恢复出厂设置指令还可以进一步包括:
S11,在选择是否进入UEFI固件配置界面前,获得UEFI固件的恢复出厂设置标志位;
S12,判断恢复出厂设置标志位是否为真;
S13,响应于是,则执行UEFI固件的恢复出厂设置;
S14,响应于否,则无需恢复出厂设置,直接根据历史配置值在选择是否进入UEFI固件配置界面前进行UEFI固件配置。
上述技术方案中,通过识别恢复出厂设置标志位是否为真,确定对应的UEFI固件是否需要启动恢复出厂设置,若不为真,则该UEFI固件无需恢复出厂设置,无需将UEFI固件的历史配置值与其出厂配置值保持一致,直接调用该UEFI固件的历史配置值在选择是否进入UEFI固件配置界面前进行UEFI固件的日常配置即可,其中选择是否进入UEFI固件配置界面包括进入UEFI固件配置界面、不进入UEFI固件配置界面,直接启动进入操作***。
如附图4所示,在上一实施例中获取UEFI固件的历史配置值,根据历史配置值在选择是否进入UEFI固件配置界面前完成UEFI固件配置,恢复出厂设置,本实施中的基于UEFI固件的恢复出厂设置方法,在完成UEFI固件配置,进入UEFI固件配置界面后,还可以进一步判断是否产生配置修改,包括:
S41,退出配置界面时,判断是否在配置界面修改过配置值;
S42,响应于是,则保存修改后的配置值,并启动操作***;
S43,响应于否,则无需保存配置值,并启动操作***。
通过上述技术方案,在配置界面实现设置恢复出厂设置功能和日常的配置修改功能后,退出配置界面时根据判断是否在配置界面修改过配置值,对配置值进行保存,成为UEFI固件的历史配置值,便于主机下一次正常启动时,UEFI固件调用进行配置,启动操作***。
如附图5所示,相应的,本发明实施例还公开了基于UEFI固件的恢复出厂设置***,包括固件恢复出厂设置识别模块、固件历史配置值存取模块、固件出厂配置值备份模块;
所述固件恢复出厂设置识别模块,用于在选择是否进入UEFI固件配置界面前,获取UEFI固件的恢复出厂设置指令;
所述固件出厂配置值备份模块,用于存储UEFI固件的出厂配置值,并只提供只读操作;
所述固件历史配置值存取模块,用于存取UEFI固件的历史配置值,将UEFI固件的历史配置值与其出厂配置值保持一致,获取UEFI固件的历史配置值,根据历史配置值在选择是否进入UEFI固件配置界面前进行UEFI固件配置,完成恢复出厂设置。
上述***结构中,固件恢复出厂设置识别模块可通过识别固件恢复出厂设置标志位,判断是否进行恢复出厂设置操作,若进行恢复出厂设置操作,则视为获取到UEFI固件的恢复出厂设置指令,本发明不限于只通过识别固件恢复出厂设置标志位的方式获取到UEFI固件的恢复出厂设置指令。
上述固件恢复出厂设置识别模块获取UEFI固件的恢复出厂设置指令,具体包括:在选择是否进入UEFI固件配置界面,获得UEFI固件的恢复出厂设置标志位;判断恢复出厂设置标志位是否为真;响应于是,则获取UEFI固件的恢复出厂设置指令;响应于否,则无需恢复出厂设置,固件历史配置值存取模块直接根据历史配置值在选择是否进入UEFI固件配置界面前进行UEFI固件配置。
上述***结构中,固件出厂配置值备份模块不提供写操作,保证其存放的出厂配置值是干净的出厂配置值。
上述***结构中,固件历史配置值存取模块用于存储、读取和写入历史配置值;其中存储的历史配置数据为开机后在UEFI固件配置界面修改配置后,修改的配置数据;在实现UEFI固件恢复出厂设置时,获取固件历史配置值存取模块中的历史配置值,将其与出厂配置值进行比较,若不相同,则将出厂配置值擦写至历史配置值中,之后根据历史配置值在选择进入UEFI固件配置界面前进行UEFI固件配置,完成恢复出厂设置;当整个开机过程中既没有修改配置数据也不需要恢复出厂设置,则该模块仅提供读取历史配置值用与开机过程中的配置工作。
可根据实际需要,对上述本发明实施例的技术方案作进一步优化或/和改进:
如附图5所示,在上一实施例中基于UEFI固件的恢复出厂设置***包括固件恢复出厂设置识别模块、固件历史配置值存取模块、固件出厂配置值备份模块,本实施中的基于UEFI固件的恢复出厂设置***,还可以进行一步包括固件配置数据检测模块,所述固件配置数据检测模块用于判断UEFI固件的历史配置值与其出厂配置值是否一致,并发送判断结果至固件历史配置值存取模块;所述固件历史配置值存取模块接收判断结果,若判断结果为否,则调用该UEFI固件存储的出厂配置值,将该出厂配置值擦写至历史配置值中,若判断结果为是,则该UEFI固件的历史配置值保持不变。
如附图5所示,本实施中的基于UEFI固件的恢复出厂设置***,还可以进行一步还包括UEFI驱动、UEFI固件架构性基础功能模块;
所述UEFI驱动,用于支撑UEFI固件和操作***的正常运行;
所述UEFI固件架构性基础功能模块,用于为UEFI驱动构建符合UEFI规范的运行环境。
上述技术方案中UEFI固件架构性基础功能模块指的是从处理器上电后运行的第一行代码到准备好UEFI驱动运行环境这个阶段所执行的代码。主要用于包括对CPU运行状态进行配置,对Cache进行配置,对内存进行配置,对中断进行配置,并且按照UEFI规范提供架构***,最终准备好一个符合UEFI规范的UEFI驱动运行环境。
上述技术方案中UEFI驱动包括硬盘驱动、显卡驱动、键盘驱动等。其中,显卡和键盘驱动用于支持UEFI固件下的输入输出,硬盘驱动用于加载操作***。
以上技术特征构成了本发明的最佳实施例,其具有较强的适应性和最佳实施效果,可根据实际需要增减非必要的技术特征,来满足不同情况的需求。