CN113849235A - 控制方法、装置及电子设备 - Google Patents

控制方法、装置及电子设备 Download PDF

Info

Publication number
CN113849235A
CN113849235A CN202111123425.8A CN202111123425A CN113849235A CN 113849235 A CN113849235 A CN 113849235A CN 202111123425 A CN202111123425 A CN 202111123425A CN 113849235 A CN113849235 A CN 113849235A
Authority
CN
China
Prior art keywords
boot
file
starting
boot file
state
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.)
Pending
Application number
CN202111123425.8A
Other languages
English (en)
Inventor
徐炀
王鹤来
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202111123425.8A priority Critical patent/CN113849235A/zh
Publication of CN113849235A publication Critical patent/CN113849235A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

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

本申请公开了一种控制方法、装置及电子设备,方法包括:在电子设备中第一系统的启动引导文件被引导所述第一系统启动的第二系统加载之后,所述第二系统监测所述第一系统的启动状态;如果所述启动状态表征所述第一系统启动失败,所述第二系统更新所述启动引导文件,以使得所述电子设备使用更新的启动引导文件重启所述第一系统。

Description

控制方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种控制方法、装置及电子设备。
背景技术
在计算机启动时,先由BIOS启动并加载启动引导文件到内存,之后BIOS将控制权交给启动引导文件,启动引导文件主要负载操作系统的启动引导。
而如果启动引导文件被损坏,则会导致操作系统启动失败。
发明内容
有鉴于此,本申请提供一种控制方法、装置及电子设备,如下:
一种控制方法,包括:
在电子设备中第一系统的启动引导文件被引导所述第一系统启动的第二系统加载之后,所述第二系统监测所述第一系统的启动状态;
如果所述启动状态表征所述第一系统启动失败,所述第二系统更新所述启动引导文件,以使得所述电子设备使用更新的启动引导文件重启所述第一系统。
上述方法,优选的,所述第二系统监测所述第一系统的启动状态,包括:
所述第二系统监测是否接收到所述启动引导文件被执行后所反馈的错误信息,所述错误信息表征所述第一系统启动失败。
上述方法,优选的,所述第二系统监测所述第一系统的启动状态,包括:
所述第二系统监测控制标志是否为失败类型的标志,所述失败类型的标志由所述电子设备中的控制器在第一时长内没有接收到启动成功命令的情况下进行设置。
上述方法,优选的,所述启动成功命令在所述第一系统启动成功的情况下由所述第一系统生成并发送给所述控制器。
上述方法,优选的,所述控制器在第一时长内没有接收到所述第一系统的启动成功命令的情况下还用于触发中断程序;
其中,如果所述启动状态表征所述第一系统启动失败,所述方法还包括:
所述第二系统通过所述中断程序触发所述电子设备恢复到所述启动引导文件被所述第二系统加载之前的运行状态。
上述方法,优选的,所述第二系统通过所述中断程序触发所述电子设备恢复到所述启动引导文件被所述第二系统加载之前的运行状态,包括:
所述第二系统在所述中断程序被运行的过程中,根据预先记录的寄存器历史值更新所述电子设备中的寄存器当前值,所述寄存器历史值在所述启动引导文件被所述第二系统加载之前由所述第二系统记录,以使得所述中断程序被运行完成之后所述电子设备恢复到所述启动引导文件被所述第二系统加载之前的运行状态。
上述方法,优选的,所述第二系统更新所述启动引导文件,包括:
所述第二系统读取所述电子设备中第一区域内存储的备份引导文件;
所述第二系统将所述备份引导文件覆盖第二区域内当前存储的启动引导文件,以使得所述第二系统重新从所述第二区域加载所述启动引导文件。
上述方法,优选的,如果所述启动状态表征所述第一系统启动成功,所述方法还包括:
所述第二系统将所述第二区域内的当前引导文件写入所述第一区域中。
一种控制装置,包括:
状态监测单元,用于在电子设备中的第一系统的启动引导文件被加载后,监测所述第一系统的启动状态;如果所述启动状态表征所述第一系统启动失败,触发文件更新单元;
文件更新单元,用于更新所述启动引导文件,以使得所述电子设备使用更新的启动引导文件重启所述第一系统。
一种电子设备,包括:
存储器,用于存储程序和所述程序运行所产生的数据;
处理器,用于执行所述程序,以实现:在所述电子设备中第一系统的启动引导文件被引导所述第一系统启动的第二系统加载之后,所述第二系统监测所述第一系统的启动状态;如果所述启动状态表征所述第一系统启动失败,所述第二系统更新所述启动引导文件,以使得所述电子设备使用更新的启动引导文件重启所述第一系统。
从上述技术方案可以看出,本申请公开的一种控制方法、装置及电子设备中,在电子设备中第一系统的启动引导文件被加载并启动后,由第二系统监测第一系统的启动状态,如果启动状态表征第一系统启动失败,那么由第二系统通过更新启动引导文件,进而使得电子设备能够使用被更新的启动引导文件重启第一系统。可见,本申请中通过引导第一系统启动的第二系统对第一系统是否启动失败进行监测,从而在失败时更新启动引导文件后重启第一系统,从而避免因为启动引导文件被损坏而导致第一系统启动失败的情况。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种控制方法的流程图;
图2为本申请实施例一提供的一种控制方法的另一流程图;
图3为本申请实施例中备份启动引导文件和恢复启动引导文件的示例图;
图4为本申请实施例二提供的一种控制装置的结构示意图;
图5为本申请实施例二提供的一种控制装置的另一结构示意图;
图6为本申请实施例三提供的一种电子设备的结构示意图;
图7为本申请适用于Windows计算机时实现操作系统启动监测和重启的示例流程图;
图8为本申请适用于Windows计算机时利用中断BIOS获得控制权实现操作系统启动监测和重启的部分示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1所示,为本申请实施例一提供的一种控制方法的实现流程图,该方法可以适用于能够装载第一系统和第二系统的电子设备中,如计算机或服务器等。第一系统为电子设备中能够进行数据处理以实现相应功能的系统,如计算机中的操作系统OS(operatingsystem),第二系统为电子设备中引导第一系统启动的系统,如计算机中的基本输入输出系统BIOS(Basic Input Output System),BIOS至少用于加载操作系统的启动引导文件到内存中并执行启动引导文件,以启动操作系统。
具体的,本实施例中的方法可以包含如下步骤:
步骤101:第二系统加载第一系统的启动引导文件。
具体的,第二系统将第一系统的启动引导文件加载到电子设备的指定区域如内存中,启动引导文件被加载到指定区域之后,自动被执行,以开始启动第一系统。例如,BIOS加载Windows boot loader到计算机内存中,开始执行Windows boot loader,以开始启动操作系统。
步骤102:在第一系统的启动引导文件被加载之后,第二系统监测第一系统的启动状态,如果启动状态表征第一系统启动失败,执行步骤103,如果启动状态表征第一系统启动成功,则结束当前流程。
其中,第二系统可以通过第一系统的反馈信息或其他部件设置的标志信息来监测第一系统的启动状态,启动状态表征第一系统是否启动成功。例如,BIOS在加载Windowsboot loader到计算机内存后,BIOS监测操作系统是否启动失败。
步骤103:第二系统更新启动引导文件,以使得电子设备使用更新的启动引导文件重启第一系统。
具体的,第二系统可以使用备份的文件替换启动引导文件,之后,再重新加载更新的启动引导文件,而更新的启动引导文件被执行后,第一系统实现重启。例如,BIOS在监测到操作系统启动失败时,更新Windows boot loader,再重新加载更新的Windows bootloader到内存,开始执行更新的Windows boot loader,以重启操作系统。
由上述方案可知,本申请实施例一提供的一种控制方法中,在电子设备中第一系统的启动引导文件被加载并启动后,由第二系统监测第一系统的启动状态,如果启动状态表征第一系统启动失败,那么由第二系统通过更新启动引导文件,进而使得电子设备能够使用被更新的启动引导文件重启第一系统。可见,本实施例中通过引导第一系统启动的第二系统对第一系统是否启动失败进行监测,从而在失败时更新启动引导文件后重启第一系统,从而避免因为启动引导文件被损坏而导致第一系统启动失败的情况。
在一种实现方式中,步骤102中第二系统监测第一系统的启动状态可以通过以下方式实现:
第二系统监测是否接收到启动引导文件被执行后所反馈的错误信息,该错误信息表征第一系统启动失败。
也就是说,启动引导文件被执行后,如果相应的第一系统启动成功,那么被执行的启动引导文件可以反馈成功信息,如果第一系统启动失败,那么被执行的启动引导文件可以反馈错误信息,基于此,如果第二系统监测到被执行的启动引导文件所反馈的错误信息,那么可以确定第一系统启动失败,由此,第二系统更新启动引导文件后,使得电子设备使用更新的启动引导文件重启第一系统,从而达到即使启动引导文件被损坏也能够重启第一系统的目的。
例如,BIOS发现Windows boot loader被执行后有反馈error信息,那么可以确定操作系统启动失败,此时,BIOS更新Windows boot loader,再重新加载更新的Windowsboot loader到内存,开始执行更新的Windows boot loader,以重启操作系统。
在另一种实现方式中,第一系统可能不具备反馈信息的功能,在这种情况下,步骤102中第二系统监测第一系统的启动状态时,可以通过以下方式实现:
第二系统监测控制标志是否为失败类型的标志。
其中,这里失败类型的标志由电子设备中的控制器在第一时长内没有接收到启动成功命令的情况下进行设置,控制器可以为区别于电子设备中实现第一系统和第二系统的处理器的控制芯片,如计算机中的嵌入式控制器EC(embeddedcontroller),区别于计算机中的中央处理器CPU(centralprocessing unit)。而启动成功命令则是在第一系统启动成功的情况下由第一系统生成并发送给控制器的,基于此,如果控制器在第一时长内没有接收到第一系统发送的启动成功命令,那么控制器将控制标志设置为失败类型的标志,如果控制器在第一时长内接收到第一系统发送的启动成功命令,那么控制器将控制标志设置为成功类型的标志,基于此,第二系统在监测到控制标志为失败类型的标志时,可以确定第一系统启动失败,由此,第二系统更新启动引导文件后,使得电子设备使用更新的启动引导文件重启第一系统,从而达到即使启动引导文件被损坏也能够重启第一系统的目的。
例如,在Windows boot loader被BIOS加载到内存并开始执行之后,EC在5分钟之内都没有接收到ACPI Enable的命令,即前文中的启动成功命令,此时,EC记录标志为操作系统启动失败的类型,基于此,BIOS读取到EC的标志后,确认该标志被设置为操作系统启动失败的类型,BIOS就可以确定操作系统启动失败,此时,BIOS更新Windows boot loader,再重新加载更新的Windows boot loader到内存,开始执行更新的Windows boot loader,以重启操作系统。
基于以上实现,电子设备中的控制器在第一时间内没有接收到第一系统的启动成功命令的情况下还用于触发中断程序,该中断程序能够使得电子设备的当前运行状态进入暂停,并执行中断程序。
其中,在本实施例中,中断程序主要用于实现电子设备恢复到启动引导文件被第二系统加载之前的运行状态的目的。具体实现中,中断程序可以为时间延迟程序或空程序,由此实现电子设备的当前运行状态暂停并通过寄存器当前值的更新使得电子设备恢复到启动引导文件被第二系统加载之前的运行状态,以便于电子设备从该运行状态重启第一系统。
基于此,如果启动状态表征第一系统启动失败,第二系统除了更新启动引导文件之外,第二系统还通过中断程序触发电子设备恢复到启动引导文件被第二系统加载之前的运行状态,由此,在电子设备恢复到启动引导文件被第二系统加载之前的运行状态后,第二系统就可以重新加载更新的启动引导文件,从而使得电子设备从启动引导文件被第二系统加载之前的运行状态重启第一系统。
具体的,第二系统在中断程序被运行的过程中,根据预先记录的寄存器历史值更新电子设备中的寄存器当前值。这里的寄存器历史值在启动引导文件被第二系统加载之前由第二系统记录,由此,第二系统在中断程序被运行的过程中使用寄存器历史值更新电子设备中的寄存器当前值之后,能够使得中断程序完成后,电子设备可以按照被更新的寄存器当前值恢复到启动引导文件被第二系统加载之前的运行状态,并在此运行状态下重启第一系统。
例如,在Windows boot loader被BIOS加载到内存之前,BIOS先保存CPU的各个寄存器的值,即为前文中的寄存器历史值,在Windows boot loader被BIOS加载到内存并开始执行之后,EC在5分钟之内都没有接收到ACPI Enable的命令,即前文中的启动成功命令,此时,EC记录标志为操作系统启动失败的类型并触发一个系统管理中断SMI(systemmanagement inerupt),BIOS在SMI中将之前记录的CPU的寄存器的值替换CPU当前的寄存器的值,进而当前SMI处理完成之后,此时,BIOS读取到EC的标志后,确认该标志被设置为操作系统启动失败的类型,BIOS就可以确定操作系统启动失败,那么BIOS更新Windowsbootloader,此时,计算机恢复到Windows boot loader被BIOS加载到内存之前的状态,由此,BIOS可以重新加载更新的Windows boot loader到内存,开始执行更新的Windows bootloader,以重启操作系统。
在一种实现方式中,步骤103中第二系统更新启动引导文件时,具体可以通过以下方式实现:
首先,第二系统读取电子设备中第一区域内存储的备份引导文件,第一区域内的备份引导文件可以是在其处于第二区域时被第二系统加载并成功启动第一启动的情况下被写入到第一区域,由此,该备份引导文件为能够成功启动第一系统的引导文件;
之后,第二系统将备份引导文件覆盖第二区域内当前存储的启动引导文件,以使得第二系统重新从第二区域加载启动引导文件。
进一步的,基于以上实现,在步骤102中如果启动状态表征第一系统启动成功,本实施例中的方法还可以包含如下步骤,如图2中所示:
步骤104:第二系统将第二区域内当前存储的启动引导文件写入到第一区域中,由此,通过启动引导文件的备份处理,以便于后续出现第二区域内的启动引导文件被损害导致第一系统启动失败的情况时,第二系统可以从第一区域中读取到备份引导文件进而更新第二区域内的启动引导文件,以实现第一系统的重启。
例如,如图3中所示,第一区域为计算机的磁盘中的恢复分区,即备份分区,第二区域可以为计算机的磁盘中的EFI系统分区,也可以称为Windows启动分区,即ESP(EFISystemPartition)分区,计算机的磁盘中还包含有其他分区,BIOS从EFI系统分区中读取Windows boot loader并加载到内存,如果操作系统启动失败,那么BIOS从恢复分区中读取备份的Windows boot loader并覆盖写入到EFI系统分区中,实现操作系统重启;如果操作系统启动成功,那么BIOS可以将EFI系统分区中的Windows boot loader写入到恢复分区进行备份。
参考图4,为本申请实施例二提供的一种控制装置的结构示意图,该装置可以配置在能够装载第一系统的电子设备中,如计算机或服务器等。第一系统为电子设备中能够进行数据处理以实现相应功能的系统,如计算机中的OS,本实施例中的装置即为装载在电子设备中的第二系统,第二系统为电子设备中引导第一系统启动的系统,如计算机中的BIOS,BIOS至少用于加载操作系统的启动引导文件到内存中并执行启动引导文件,以启动操作系统。
具体的,本实施例中的装置可以包含如下单元:
状态监测单元401,用于在电子设备中的第一系统的启动引导文件被加载后,监测所述第一系统的启动状态;如果所述启动状态表征所述第一系统启动失败,触发文件更新单元402;
文件更新单元402,用于更新所述启动引导文件,以使得所述电子设备使用更新的启动引导文件重启所述第一系统。
其中,本实施例中的装置还可以包含文件加载单元403,用于加载第一系统的启动引导文件。
由上述方案可知,本申请实施例二提供的一种控制装置中,在电子设备中第一系统的启动引导文件被加载并启动后,监测第一系统的启动状态,如果启动状态表征第一系统启动失败,那么通过更新启动引导文件,进而使得电子设备能够使用被更新的启动引导文件重启第一系统。可见,本实施例中通过对第一系统是否启动失败进行监测,从而在失败时更新启动引导文件后重启第一系统,从而避免因为启动引导文件被损坏而导致第一系统启动失败的情况。
在一种实现方式中,状态监测单元401具体用于:监测是否接收到所述启动引导文件被执行后所反馈的错误信息,所述错误信息表征所述第一系统启动失败。
在一种实现方式中,状态监测单元401具体用于:监测控制标志是否为失败类型的标志,所述失败类型的标志由所述电子设备中的控制器在第一时长内没有接收到启动成功命令的情况下进行设置。
可选的,所述启动成功命令在所述第一系统启动成功的情况下由所述第一系统生成并发送给所述控制器。
可选的,所述控制器在第一时长内没有接收到所述第一系统的启动成功命令的情况下还用于触发中断程序;
其中,本实施例中的装置还包含如下单元,如图5中所示:
状态恢复单元404,用于如果所述启动状态表征所述第一系统启动失败,通过所述中断程序触发所述电子设备恢复到所述启动引导文件被加载之前的运行状态。
基于此,状态恢复单元404具体用于:在所述中断程序被运行的过程中,根据预先记录的寄存器历史值更新所述电子设备中的寄存器当前值,所述寄存器历史值在所述启动引导文件被加载之前由状态恢复单元404记录,以使得所述中断程序被运行完成之后所述电子设备恢复到所述启动引导文件被加载之前的运行状态。
在一种实现方式中,文件更新单元402具体用于:读取所述电子设备中第一区域内存储的备份引导文件;将所述备份引导文件覆盖第二区域内当前存储的启动引导文件,以使得文件加载单元403重新从所述第二区域加载所述启动引导文件。
可选的,如果所述启动状态表征所述第一系统启动成功,文件更新单元402还用于:将所述第二区域内的当前引导文件写入所述第一区域中。
需要说明的是,本实施例中各单元的具体实现可以参考前文中第二系统的相关内容,此处不再详述。
参考图6,为本申请实施例三提供的一种电子设备的结构示意图,该电子设备可以为能够装载第一系统和第二系统的电子设备,如计算机或服务器等。第一系统为电子设备中能够进行数据处理以实现相应功能的系统,如计算机中的OS,第二系统为电子设备中引导第一系统启动的系统,如计算机中的BIOS,BIOS至少用于加载操作系统的启动引导文件到内存中并执行启动引导文件,以启动操作系统。
具体的,本实施例中的电子设备可以包含如下结构:
存储器601,用于存储程序和所述程序运行所产生的数据;
处理器602,用于执行所述程序,以实现:在所述电子设备中第一系统的启动引导文件被引导所述第一系统启动的第二系统加载之后,所述第二系统监测所述第一系统的启动状态;如果所述启动状态表征所述第一系统启动失败,所述第二系统更新所述启动引导文件,以使得所述电子设备使用更新的启动引导文件重启所述第一系统。
其中,电子设备中还可以包含其他部件,如控制器、通信模块、输入输出装置等。
由上述方案可知,本申请实施例三提供的一种电子设备中,在电子设备中第一系统的启动引导文件被加载并启动后,由第二系统监测第一系统的启动状态,如果启动状态表征第一系统启动失败,那么由第二系统通过更新启动引导文件,进而使得电子设备能够使用被更新的启动引导文件重启第一系统。可见,本实施例中通过引导第一系统启动的第二系统对第一系统是否启动失败进行监测,从而在失败时更新启动引导文件后重启第一系统,从而避免因为启动引导文件被损坏而导致第一系统启动失败的情况。
以电子设备为Windows计算机为例,Windows启动分区即ESP分区,分区内的启动引导文件负责操作系统的启动引导。如果ESP分区文件损坏,会造成操作系统启动失败,无法进到操作系统桌面。针对该技术缺陷,本申请中提出一种Windows启动分区自动安全检测和恢复的技术方案,当BIOS将控制权交给Windows启动引导文件之后,BIOS/EC继续监测Windows启动状态,当检测到Windows启动失败发生后,BIOS自动使用备份的ESP分区修复引导文件,并尝试重新启动Windows。结合图7所示的BIOS重新获取控制器以重启操作系统的流程图,具体实现方案如下:
1、在BIOS加载Windows boot loader前,BIOS先保存当前CPU的各个寄存器值,如堆栈段寄存器SS(Stack Segment)、扩展栈指针寄存器ESP(Extended StackPointer)、扩展标志寄存器EFLAGS(ExtendedFlags)、代码段寄存器CS(Code Segment)、扩展指令寄存器EIP(Extended Instruction Pointer)等寄存器值,用以记录此时的计算机运行状态,以便恢复到控制权交到Windows boot loader前;
2、启动Windows boot loader之后,EC监测Windows boot loader的启动状态,具体为:EC检查是否有收到ACPI Enable的命令,如果接收到ACPI Enable的命令,则表明操作系统启动成功,如果在5分钟内没有接收到ACPI Enable的命令,那么表明操作系统启动失败。
3、如果Windows boot loader启动失败,有以下几种情况:
(1)Windows boot loader反馈error信息,此时,控制权重新交给BIOS,具体为:BIOS检测到Windows boot loader反馈的error,由此确定Windows boot loader启动失败,之后,BIOS使用备份引导文件做ESP分区恢复,即用备份引导文件替换ESP分区中的启动引导文件;
(2)Windows boot loader没能return任何信息,可能存在陷入死循环中的情况,此时:
EC检测到长时间没有收到ACPI enable的check点后,EC记录标志为失败类型,并触发一个SMI;
而BIOS在SMI中重写CPU的寄存器以恢复成加载Windows boot loader前的状态,当SMI处理完成之后,控制权回到BIOS;
基于此,BIOS读取EC标志,在确认是Windows boot loader启动失败时,然后使用备份引导文件做ESP分区恢复;如果Windows boot loader启动成功,就备份当前的Windowsboot loader到恢复分区,参考图3。
具体实现中,结合图8中所示的利用中断BIOS重新获得控制权的流程,EC触发SMI,使得BIOS在SMI中重写CPU的寄存器,具体如下:
(1)EC通过接口发中断请求信号;
(2)在计算机中的当前指令执行完成后,CPU进行中断回答;
(3)将中断类型号N发送给CPU,中断类型号N表征中断标识,即SMI的代号;
(4)合将当前的标志寄存器PSW(Program Status Word)、CS和中断优先级寄存器IP(InterruptPriority)推入堆栈;
(5)在CPU和总线控制逻辑中,清除IF和TF;
(6)以4*N作为IP,以4*N+2作为CS;
(7)中断子程序开始执行;
(8)开中断,在中断过程中,BIOS将记录的旧寄存器值如IP、CS、PSW等重写CPU的寄存器,写入堆栈;
(9)中断完成后,IRET指令使得IP、CS和PSW弹出堆栈,使得计算机恢复到BIOS记录旧寄存器值即加载Windows boot loader之前的运行状态,在BIOS更新启动引导文件后,使得计算机从加载Windows boot loader之前的运行状态重新启动操作系统。
可见,本申请中不需要用户操作,就可以自动检测操作系统的启动状态,并实现操作系统的启动引导文件的自动修复,让更多的用户使用起来更加方便;而且,本申请中只对启动分区进行修复,能够在最大程度上保护用户数据;另外,针对关键引导文件进行修复,速度快。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种控制方法,包括:
在电子设备中第一系统的启动引导文件被引导所述第一系统启动的第二系统加载之后,所述第二系统监测所述第一系统的启动状态;
如果所述启动状态表征所述第一系统启动失败,所述第二系统更新所述启动引导文件,以使得所述电子设备使用更新的启动引导文件重启所述第一系统。
2.根据权利要求1所述的方法,所述第二系统监测所述第一系统的启动状态,包括:
所述第二系统监测是否接收到所述启动引导文件被执行后所反馈的错误信息,所述错误信息表征所述第一系统启动失败。
3.根据权利要求1所述的方法,所述第二系统监测所述第一系统的启动状态,包括:
所述第二系统监测控制标志是否为失败类型的标志,所述失败类型的标志由所述电子设备中的控制器在第一时长内没有接收到启动成功命令的情况下进行设置。
4.根据权利要求3所述的方法,所述启动成功命令在所述第一系统启动成功的情况下由所述第一系统生成并发送给所述控制器。
5.根据权利要求3所述的方法,所述控制器在第一时长内没有接收到所述第一系统的启动成功命令的情况下还用于触发中断程序;
其中,如果所述启动状态表征所述第一系统启动失败,所述方法还包括:
所述第二系统通过所述中断程序触发所述电子设备恢复到所述启动引导文件被所述第二系统加载之前的运行状态。
6.根据权利要求5所述的方法,所述第二系统通过所述中断程序触发所述电子设备恢复到所述启动引导文件被所述第二系统加载之前的运行状态,包括:
所述第二系统在所述中断程序被运行的过程中,根据预先记录的寄存器历史值更新所述电子设备中的寄存器当前值,所述寄存器历史值在所述启动引导文件被所述第二系统加载之前由所述第二系统记录,以使得所述中断程序被运行完成之后所述电子设备恢复到所述启动引导文件被所述第二系统加载之前的运行状态。
7.根据权利要求1或2所述的方法,所述第二系统更新所述启动引导文件,包括:
所述第二系统读取所述电子设备中第一区域内存储的备份引导文件;
所述第二系统将所述备份引导文件覆盖第二区域内当前存储的启动引导文件,以使得所述第二系统重新从所述第二区域加载所述启动引导文件。
8.根据权利要求7所述的方法,如果所述启动状态表征所述第一系统启动成功,所述方法还包括:
所述第二系统将所述第二区域内的当前引导文件写入所述第一区域中。
9.一种控制装置,包括:
状态监测单元,用于在电子设备中的第一系统的启动引导文件被加载后,监测所述第一系统的启动状态;如果所述启动状态表征所述第一系统启动失败,触发文件更新单元;
文件更新单元,用于更新所述启动引导文件,以使得所述电子设备使用更新的启动引导文件重启所述第一系统。
10.一种电子设备,包括:
存储器,用于存储程序和所述程序运行所产生的数据;
处理器,用于执行所述程序,以实现:在所述电子设备中第一系统的启动引导文件被引导所述第一系统启动的第二系统加载之后,所述第二系统监测所述第一系统的启动状态;如果所述启动状态表征所述第一系统启动失败,所述第二系统更新所述启动引导文件,以使得所述电子设备使用更新的启动引导文件重启所述第一系统。
CN202111123425.8A 2021-09-24 2021-09-24 控制方法、装置及电子设备 Pending CN113849235A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111123425.8A CN113849235A (zh) 2021-09-24 2021-09-24 控制方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111123425.8A CN113849235A (zh) 2021-09-24 2021-09-24 控制方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN113849235A true CN113849235A (zh) 2021-12-28

Family

ID=78979361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111123425.8A Pending CN113849235A (zh) 2021-09-24 2021-09-24 控制方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113849235A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292140A (zh) * 2022-09-01 2022-11-04 摩尔线程智能科技(北京)有限责任公司 监控系统启动的方法、装置和计算机可读介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292140A (zh) * 2022-09-01 2022-11-04 摩尔线程智能科技(北京)有限责任公司 监控系统启动的方法、装置和计算机可读介质
CN115292140B (zh) * 2022-09-01 2023-08-15 摩尔线程智能科技(北京)有限责任公司 监控系统启动的方法、装置和计算机可读介质

Similar Documents

Publication Publication Date Title
KR101473029B1 (ko) 자체 관리 처리 장치
US7734945B1 (en) Automated recovery of unbootable systems
US9146839B2 (en) Method for pre-testing software compatibility and system thereof
US6230285B1 (en) Boot failure recovery
KR100758292B1 (ko) 컴퓨터 오퍼레이팅 시스템의 복구방법
US20160132420A1 (en) Backup method, pre-testing method for environment updating and system thereof
JP2004520651A (ja) コンピュータオペレーティングシステム保護方法及び装置
KR101696490B1 (ko) 부분 리부팅 복구 장치 및 방법
US7308547B2 (en) Apparatus and method for control of write filter
CN108345464A (zh) 一种安卓系统的启动方法及安卓车机
US20100217751A1 (en) Method and system for safely deleting information from a computer
CN115113905A (zh) 固件升级方法和固件升级装置
CN113849235A (zh) 控制方法、装置及电子设备
CN111581021A (zh) 应用程序启动异常的修复方法、装置、设备及存储介质
WO2023103755A1 (zh) 终端的启动方法、电子设备和计算机可读存储介质
CN115794153A (zh) 一种固件升级方法及相关设备
US20160004607A1 (en) Information processing apparatus and information processing method
CN112882757A (zh) 一种嵌入式系统双分区安全启动方法
CN111078452A (zh) 一种bmc固件镜像恢复方法与装置
CN104516791A (zh) 数据处理方法、装置及电子设备
CN111400076B (zh) 一种宕机修复方法、装置、设备及存储介质
WO2011001305A1 (en) A method, apparatus and computer program for loading files during a boot- up process
CN112527400A (zh) 系统启动方法、装置、电子设备和存储介质
CN112328426A (zh) 系统uboot损坏检测及恢复方法
CN117130673A (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