CN103999041A - 在设备初始化期间备份固件 - Google Patents

在设备初始化期间备份固件 Download PDF

Info

Publication number
CN103999041A
CN103999041A CN201280063935.3A CN201280063935A CN103999041A CN 103999041 A CN103999041 A CN 103999041A CN 201280063935 A CN201280063935 A CN 201280063935A CN 103999041 A CN103999041 A CN 103999041A
Authority
CN
China
Prior art keywords
firmware
backup
computing equipment
initialization
nonvolatile memory
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
Application number
CN201280063935.3A
Other languages
English (en)
Other versions
CN103999041B (zh
Inventor
约翰·D·洛希
巴拉尼德哈兰·安巴扎甘
杰恩·E·斯克特
迪普·V·恩吉耶
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN103999041A publication Critical patent/CN103999041A/zh
Application granted granted Critical
Publication of CN103999041B publication Critical patent/CN103999041B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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

Abstract

本文公开的示例实施例涉及对固件进行备份。可以初始化操作系统。在初始化过程期间可以设置储存器。可以基于所设置的存储器将固件备份至储存器。

Description

在设备初始化期间备份固件
背景技术
诸如便携式计算机和台式计算机之类的计算设备被全世界的消费者使用。这些计算设备中的一些作为包括制造者的软件包的系统出售。例如,便携式设备可以与捆绑有附加软件的操作系统镜像一起供给。当设备首次运行时,基本输入/输出系统可以用来启动系统,以开始执行该操作系统镜像的指令。
附图说明
下面的详细描述参照附图,其中:
图1A和1B是根据各示例的计算设备的框图,如果在初始化期间标志已被设置,则这些计算设备能够在启动过程期间将固件备份至储存器;
图2是根据一个示例的用于基于在初始化过程期间设置的请求对固件进行备份的方法的流程图;
图3是根据一个示例的用于使用解捆绑过程对基本输入/输出系统进行备份的方法的流程图;
图4是根据一个示例的能够在操作系统初始化期间基于非易失性存储器的设置创建计算设备的固件备份的计算设备的框图。
具体实施方式
如今的消费者拥有许多设备,如便携式计算机、台式计算机、一体化个人计算机等。用户可以购买这些设备,制造者可以制造这些设备。制造者可以列入诸如固件接口、操作系统、其它捆绑软件、处理器或多个处理器、存储器(memory)等之类的组件来实现该设备。
在制造期间,各个设备的各组件可包括不同的构建或代码级别。例如,像基本输入/输出系统(BIOS)这样的固件接口可以位于一个代码级别,而硬驱上的软件镜像位于另一代码级别。因此,可以独立地进行升级。当设置了关于每个组件的特定构建级别时,该设备可以被认为准备运送给用户。
对设备可以增加备份和/或恢复特征。备份和/或恢复特征的示例包括固件备份、待被存储在像硬驱这样的储存器(storage)上的系统恢复镜像等。在一个示例中,BIOS的备份可以被存储在硬驱上。因此,如果以后出现与BIOS有关的问题,则该备份可以用来恢复BIOS和/或启动设备。可能有益处的是,将设备与硬驱上的备份BIOS一起运送给消费者,使得如果BIOS的未来升级失败、如果BIOS被损坏等,则可使用已知的好的备份。
但是,将BIOS的复本放在也与包括例如操作系统在内的软件镜像一起运送的产品的硬驱上,对于开发者和制造者来说可能是一种挑战。可能出现的挑战是,所镜像的硬驱会需要等候被镜像,直至开发并验证最终的BIOS以后。BIOS变化对于纠正多种问题和/或做出多种改进可能是有用的。因此,可能有益的是,等待直至比软件镜像更晚的时间来完成BIOS。
因此,本文公开的各实施例涉及将备份固件存储在像硬驱这样的储存单元(storageunit)上。该储存器可以是例如具有像所安装的操作系统镜像这样的软件镜像的硬驱。当像消费者这样的用户运行镜像上的软件时,操作系统可以被初始化。在操作系统初始化期间,可以设置存储器,如标志(flag)。该存储器可以是与BIOS关联的非易失性存储器、与BIOS关联的存储器位置等等。进一步,该存储器可以被用来表示在下一次启动时BIOS应被备份至储存单元。
在启动过程期间,BIOS可以检查存储器位置,以确定存储器是否已被设置。如果已被设置,则BIOS导致该设备将BIOS备份至位置,例如储存单元的存储器位置。在特定示例中,该位置可以基于规范和/或标准。例如,该位置和/或储存单元可以对应于或关联于统一可扩展固件接口(UEFI)规范、EFI规范、专有规范等等。在特定示例中,硬驱或储存单元上的单个位置可以被预期可用来存储BIOS。在其它示例中,备份后,备份的位置可以是可变的且被存储在与BIOS关联的非易失性存储器中。用上述方法,制造者可以在已经设置关于设备的硬驱镜像以后更新该设备的BIOS,并且还有能力与在硬驱上存储的系统一起运送BIOS的备份。
图1A和图1B是根据各示例的计算设备的框图,如果在初始化期间标志已被设置,则这些计算设备能够在启动过程期间将固件备份至储存器。计算设备100a、100b包括可以被用来将固件备份至储存单元的组件。各个计算设备100a、100b可以是笔记本计算机、台式计算机、平板计算设备、无线设备、服务器、工作站或使用固件来启动并将计算设备的操作转移到另一操作系统的任何其它计算设备。在特定示例中,计算设备100a可以包括固件110、初始化模块112、启动模块114、备份模块116以及非易失性存储器118。计算设备100b可以进一步包括储存单元120、处理器130、存储器132、输入/输出接口134、一个或多个输入设备140、一个或多个输出设备142等等。
计算设备100可以包括固件110。固件110可以被存储在计算设备100a的非易失性存储器118上。非易失性存储器118可以是电子的、磁性的、光学的或使用别的物理存储技术。进一步,非易失性存储器118可以被实现为电可擦写可编程只读存储器(EEPROM)、闪存、可编程只读存储器(PROM)、非易失性随机存取存储器(NVRAM)等等。此外,固件110可以遵照标准或规范,如EFI或UEFI、专有规范等。进一步,固件110(例如,BIOS)可以包括能够由处理器130执行的指令。在特定场景中,非易失性存储器118的特定部分可以被用于BIOS固件指令,而其它关联的非易失性存储器118被用于存储能与固件110关联使用的变量和/或标志。这些指令可以被用来初始化计算设备100以及将计算设备100的执行移交给操作系统。
在特定示例中,在计算设备100的初始化运行(例如,首次运行)期间,固件110可以将计算设备100的执行移交给初始化模块120。初始化模块112可以包括在由处理器130执行时对计算设备100上的操作系统和/或其它应用程序进行初始化的指令。因此,初始化模块112可以是计算设备100的制造者或另一用户安装到计算设备100上的首次运行机制的一部分。进一步,操作系统的初始化可以包括为用户定制一个或多个程序和/或驱动。例如,初始化可以被用来设置初始用户名和/或密码、计算设备100的注册等等。进一步,初始化可以包括其它应用程序的解捆绑、注册和/或设置。
初始化模块112可以被增加至计算设备100,作为例如在计算设备100的储存单元120上放置的软件镜像。在计算设备100初始化期间,初始化模块112可以在计算设备100的非易失性存储器118中设置标志或其它存储器来备份固件110。初始化模块112可以使用管理规范(management instrumentation),如视窗管理规范(WMI)、专有管理规范等等,来设置非易失性存储器118。在特定示例中,设备规范是可以用来将像在操作系统上运行的应用程序这样的较高层程序与被规范的组件(如与固件110关联的非易失性存储器)接合的程序。在特定场景下,在初始化过程期间和/或在初始化过程已经完成以后,可以重启动计算设备100。
当启动计算设备100时,启动模块114可以发起在处理器130上执行的启动过程。该启动过程初始化计算设备100的接口,如输入/输出接口134、储存器接口等等。例如,计算设备100的输入接口可以连接至输入设备140,如键盘、鼠标、遥控器、键区、触摸界面、麦克风等等。进一步,输出接口可以连接至输出设备142,如显示器、扬声器、扩音器、投影仪、打印机、消息收发设备等等。在启动过程期间,启动模块114可以确定表示应当备份固件的存储器或标志是否已被设置。如果存储器或标志已被设置,则启动过程可以导致备份模块116对固件110进行备份。
因此,如果标志或存储器已被设置,则在启动过程期间备份模块116将固件110备份至储存单元120。在特定示例中,固件110包括计算设备100的BIOS或其它启动固件或计算设备100的组件的二进制信息。该二进制信息可以包括由BIOS使用的指令和/或默认设置信息。在特定场景中,其它设置信息可以被存储在另一位置和/或不被备份。备份模块116可以创建要在储存单元120上存储的基于固件的备份固件,并且导致备份固件的存储。在特定场景中,备份固件的位置可以基于标准或规范的,如UEFI、专有规范等。备份模块116可以在生成备份固件时进一步修改固件110。这可以被操作,以例如清除与固件110关联的还可以被备份的一个或多个存储器变量。在特定场景中,修改可以被用来用默认设置信息设置备份固件,默认设置信息可以在前面的启动期间已经对于固件110存储和/或更新。
在特定示例中,储存单元120是像硬驱这样的固定储存单元、像通用串行总线(USB)存储驱动器这样的可移除单元或像网络设备上的储存器这样的外部储存器。在特定示例中,固定存储系统是希望被用作永久存储器解决方案的存储器。固定存储系统可以包括针对这种永久存储器解决方案组合的单个或多个存储设备。例如,固定储存器可以包括不可移除储存器。术语“固定的”和“不可移除的”可以反映用于存储解决方案的预期用途。因此,“固定的”和“不可移除的”存储解决方案都可以被移除以进行修理、维护、升级等等。这样的固定存储设备的示例包括硬驱、固态驱动器、包括驱动器或磁盘中至少之一的存储阵列或盒(enclosure)等等。进一步,在一些示例中,可以基于移除、替换或维修这些存储设备的难度来将这些存储设备确定为固定的。此外,术语“固定的”和“不可移除的”可以被用来区分这样的设备和诸如磁带、软盘、光盘、可移除的USB驱动器等之类的“可移除的”存储介质。
在特定实施例中,固定的或不可移除的存储设备,如内部硬驱、内部固态驱动器、内部或外部的盒等,可以包括一组软件或软件镜像,该组软件或软件镜像包括初始化模块112的指令。进一步,在启动过程期间,备份固件可以被存储在同样的存储设备中。例如,计算设备100的初始化可以包括在储存单元120上创建分区。备份固件可以存储在该分区上。
像中央处理单元(CPU)或适用于获取及执行指令的微处理器这样的处理器130和/或电路,可以被配置为执行本文描述的模块112、114、116中任一个的功能。在特定场景中。指令和/或像二进制固件信息这样的其它信息可以在备份过程期间被存储在存储器132或其它存储器中。此外,在特定实施例中,一些组件可以被用来实现本文描述的其它组件的功能。
模块112、114、116中的每个可以包括例如包括用于实现本文描述的功能的电路的硬件设备。此外或作为替代,每个模块112、114、116可以被实现为在计算设备100的机器可读存储介质上编码的并可由处理器130执行的一系列指令。应注意到,在一些实施例中,一些模块被实现为硬件设备,而其它模块被实现为可执行指令。
图2是根据一个示例的用于基于在初始化过程期间设置的请求备份固件的方法的流程图。方法200的执行可以由计算设备实现,例如计算设备100或另一计算设备(如计算设备400)。方法200可以以在机器可读存储介质上存储的可执行指令的形式和/或以电路的形式实现。
方法200可以在202处开始并继续至204,在这里计算设备初始化要在计算设备上执行的操作系统。在特定示例中,计算设备是便携式计算机、台式计算机、工作站、服务器或包括用来启动计算设备的固件以及分离的操作系统的其它计算机。操作系统的初始化可以用来准备要在计算机上运行的操作系统。进一步,初始化可以用来为新用户定制该计算机。在个人计算机的示例中,新用户可以从制造者或零售商店购买该计算机。个人计算机可以包括包含操作系统和/或其它程序的软件镜像。当用户打开计算机时,例如首次打开计算机时,该计算机可以开始执行软件镜像上的指令,以准备该计算机供用户使用。准备可以包括例如个人计算机的注册、个人计算机的操作系统、其它程序的注册等等。进一步,准备可以包括该用户的用户名和/或密码的创建。
在206处,在初始化过程期间,计算机可以设置存储器(如非易失性存储器)来指示该计算机的固件的备份请求。固件可以包括例如BIOS、UEFI等等。因此,固件可以被用来在208处启动计算机。计算机可以被重启动或另外被复位。重启动命令可以是在初始化过程期间使用的软件热重启动。此外或可替代地,可以关闭和起动计算机。在特定示例中,该存储器可以被设置在不在热重启动期间复位的易失性存储器中。
在启动过程期间,在210处,计算机可以检查非易失性存储器,以确定是否存在备份请求。如果不存在备份请求,则计算机可以继续启动。在特定场景中,如果不存在备份请求,则计算机可以继续启动。
如果存在备份请求,则在212处计算机将与请求关联的固件备份至储存单元。在特定示例中,与请求关联的固件可以被认为可用固件。在特定实施例中,可用固件是位于计算机的存储器(如NVRAM)处的固件,在这里可以执行该可用固件以执行其预期功能。在一些示例中,可用固件可以是包括存储在第一存储器位置的、由处理器执行的信息的BIOS。如上面所述的,储存单元可以是固定的或可移除的存储设备。进一步,储存单元可以是包括软件镜像(例如可以被用来开始初始化过程的关于操作系统的信息)的固定盘,如硬驱。固件的备份可以包括创建备份固件镜像。固件镜像可以是在固件中包括的信息的二进制镜像。此外或可替代地,可以包括可变数据的固件镜像的部分可以被清除或被设置为默认状态。在特定场景中,固件的一部分可以包括默认和/或清除状态和/或可能需要被清除的存储器位置。然后,备份固件镜像可以存储在储存单元上。在特定示例中,储存单元是固定盘,备份固件被存储在分区上。分区可以是专门针对备份固件保留的。此外,在特定场景中,备份固件可以基于诸如UEFI规范、专有规范等等之类的标准或规范被保存在位置上。
计算机可以继续执行其它功能,如继续启动操作系统。此外,计算机可以清除备份请求。利用此方法,当初次初始化操作系统或系统软件时,备份被执行一次。进一步,在特定场景中,在固件被备份一次以后,在固件中可以禁用替换备份固件的选项。
图3是根据一个示例的用于使用解捆绑过程备份基本输入/输出系统的方法的流程图。方法300的执行可以由计算机实现,例如计算设备100或别的计算设备(如计算设备400)。方法300可以以存储在机器可读存储介质上的可执行指令的形式和/或以电路的形式实现。
方法300始于302,在这里计算机处于其准备被设置的状态。在特定场景中,计算机可以处于其具有所安装的但非针对用户定制的操作系统的状态。例如,计算机可以处于用户从制造者或零售商店购买该计算机,但该计算机还未被该用户初始化的状态。计算机可以预装载有软件镜像,例如包括操作系统和/或其它可能需要被设置或被初始化的捆绑软件的镜像。如上所述,制造者可能希望具有在储存器(如与计算机关联的硬驱)上存储的固件镜像,如备份BIOS镜像。然而,有效地将BIOS或固件镜像放到预装载的储存器上,同时保持改变BIOS或固件的灵活性,可能是有挑战性的。
当消费者购买计算机时,消费者可以打开计算机。在304处,计算机从系统镜像开始解捆绑过程。系统镜像可以包括操作系统和/或可由计算机的处理器执行的其它软件。解捆绑过程可以包括操作系统和/或一个或多个软件包的初始化。解捆绑过程还可以用来注册计算机、操作系统、软件包等等。进一步,解捆绑过程可以用来定制用户名、密码等。
软件可以被捆绑在一起以用于计算机的销售。将软件捆绑在一起对制造者而言的益处是,制造者可以将包括给计算机的操作系统和软件包在内的软件镜像预装载到与该计算机一起供给的储存器上。此过程允许更流畅的制造过程。在解捆绑期间,在306处,像WMI或专有规范这样的管理规范可以用来设置非易失性存储器标志。在特定示例中,标志是被用来存储具有所分配的含义的二进制值或代码的一个或多个位。在此场景中,当标志被设置时,所分配的含义是:如果在启动过程期间标志被设置,则计算机备份固件,例如计算机的BIOS。
在308处,计算机可以创建和/或验证为存储像BIOS这样的备份固件而提供的分区。创建/验证过程可以在解捆绑过程期间发生,例如在标志被设置时发生。此外或可替代地,创建/验证过程可以在由计算机的固件控制的启动过程期间发生。
在310处,重启动计算机。重启动可以是使用软重启动的解捆绑过程的一部分,和/或可以被认为是计算机的下一关闭、启动循环。当启动计算机时,可以使用固件或BIOS执行启动过程。计算机可以检查被设置的存储器位置,以确定该存储器位置是否被设置。
如果标志被设置,则在312处,计算机生成备份BIOS或固件,并且将备份BIOS或固件存储至分区。在特定实施例中,备份包括创建固件和/或BIOS的固件镜像。然后,将固件镜像存储在分区上。在特定实施例中,固件镜像可以是当前BIOS或固件的二进制复本。在其它实施例中,固件镜像可以是当前BIOS或固件的有改变的复本。改变可以包括例如将一个或多个存储器位置清除或设置为默认状态。此信息可以包括在用于备份的一个或多个固件指令中。进一步,在特定场景中,计算机可以清除在进行备份时设置的存储器位置。此外或可替代地,为了增加安全性,存储器位置可以被设置为另一状态,在该状态中新的BIOS不能替代在分区上存储的备份BIOS。
计算机可以继续其它处理。例如,计算机可以继续启动至操作系统。利用此方法,备份BIOS或固件可以被存储在与计算机关联的储存器上,而不需要用户干预且不需要制造者在制造期间将备份置于储存器上。
图4是根据一个示例的能够在操作系统初始化期间基于非易失性存储器的设置创建计算设备的固件备份的计算设备的框图。计算设备400包括例如处理器410、机器可读存储介质420和第二机器可读存储介质440,机器可读存储介质420包括用于为了使用而初始化计算设备400的指令422、424,第二机器可读存储介质440包括用于启动计算设备400并备份固件的指令442、444。在特定场景中,第二机器可读存储介质440包括用于启动计算设备400、将固件备份至储存器、将计算设备400的控制移交给操作系统和/或执行其它计算过程的固件,如BIOS。计算设备400可以是例如笔记本计算机、台式计算机、服务器、工作站、平板计算设备或具有与操作系统分离的启动固件的任何其它计算设备。在特定实施例中,像BIOS这样的启动固件可以被认为是由计算设备运行的第一代码,其随后将计算设备的执行移交给其它软件,如操作系统。启动固件还可以被用来初始化和识别系统设备。
处理器410可以是至少一个中央处理单元(CPU)、至少一个基于半导体的微处理器、至少一个图形处理单元(GPU)、其它适用于获取及执行在机器可读存储介质420或440中存储的指令的硬件设备、或它们的组合。例如,处理器410可以包括芯片上的多个核,包括跨多个芯片的多个核、跨多个设备的多个核(例如如果计算设备400包括多个节点设备)或它们的组合。处理器410可以提取、解码并执行指令422、424、442、444,以实现执行各任务,例如方法200和300。作为获取并执行指令的替代或除获取并执行指令以外,处理器410可以包括:至少一个集成电路(IC),其它控制逻辑,其它电路,或它们的包括用于执行指令422、424、442、444的功能的多个电子部件的组合。
机器可读存储介质420、440可以是任何电子的、磁性的、光学的、或其它包含或存储可执行指令的物理存储设备。机器可读存储介质的示例包括随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘只读存储器(CD-ROM)等等。因此,机器可读存储介质可以是非瞬态的。如本文详细描述的,机器可读存储介质420、440可以被编码有用于启动计算设备400、初始化计算设备400上的软件以及自动备份计算设备400的固件的一系列可执行指令。
在一个示例中,机器可读存储介质440可以包括关于用于计算设备400的启动固件的指令。进一步,可以执行启动指令442以将计算设备400启动至可用状态。在启动指令442执行期间,处理器可以查看备份标志在计算设备400的非易失性存储器中是否被设置。如果备份标志未被设置,则计算设备400的执行可以转移至在机器可读存储介质420上存储的软件。在特定示例中,机器可读存储介质420可以装载有操作系统和/或其它软件。
在一个示例中,软件可以包括初始化指令422。在特定示例中,执行初始化指令422以对像用户这样的新实体定制计算设备400。初始化指令422可以被用来初始化计算设备400的操作系统。这样的初始化的示例包括:确定用户的用户名和/或密码,注册计算设备400和/或操作系统,注册其它软件包,加载驱动,等等。作为计算设备400的初始化的一部分,处理器410可以在非易失性存储器中设置备份标志。设置备份标志导致计算设备在下一次启动时将固件的备份创建给储存单元。在特定示例中,固件可以包括在机器可读存储介质440中包含的信息。进一步,在特定场景中,初始化指令422可以导致计算设备400复位。在其它场景中,操作系统(OS)指令424可以导致复位,或计算设备400可以被关闭和被通电。
在随后启动时,执行启动指令442以执行启动过程。这一次,当处理器410查看标志是否已被设置时,确定标志已被设置。标志已被设置的确定导致执行备份指令444。备份指令可以用来创建固件的备份。如上所述,备份可以包括固件的二进制信息。进一步,所备份的固件可以被认为是可用固件。备份指令444还可以用来将备份存储到储存单元上。在特定场景中,储存单元可以是机器可读存储介质420。例如,机器可读存储介质420可以是允许这样存储的固定盘。在一些示例中,初始化指令422和/或备份指令444可以被用来创建和/或验证储存单元上可存储备份的分区。分区的创建和/或验证可以基于标准或规范,例如EFI、UEFI、专有规范等等。因此,备份可以用来恢复固件镜像和/或用于启动计算设备400。

Claims (15)

1.一种计算设备,包括:
第一非易失性存储器,包括固件;
初始化模块,用于初始化操作系统,其中在初始化过程期间,所述初始化模块设置用于备份所述固件的标志;
启动模块,用于基于所述第一非易失性存储器中的所述固件通过启动过程启动所述计算设备;以及
备份模块,用于如果所述标志已被设置,则在所述启动过程期间将所述固件备份至第二非易失性存储器。
2.根据权利要求1所述的计算设备,
其中所述固件包括基本输入/输出系统的二进制信息,并且所述第一非易失性存储器与所述基本输入/输出系统关联。
3.根据权利要求2所述的计算设备,
其中所述备份模块在备份期间创建要在所述第二非易失性存储器上存储的备份固件。
4.根据权利要求3所述的计算设备,
其中所述备份模块将所述备份固件修改为包括默认设置信息。
5.根据权利要求3所述的计算设备,
其中所述初始化进一步包括在所述第二非易失性存储器上创建分区,
其中所述第二非易失性存储器是固定盘,并且
其中所述备份固件被存储在所述分区上。
6.根据权利要求1所述的计算设备,
其中管理规范用来在所述操作系统的初始化期间设置所述标志。
7.根据权利要求1所述的计算设备,其中所述初始化进一步包括一个或多个应用程序的解捆绑。
8.一种方法,包括:
初始化计算设备的操作系统;
在初始化过程期间,设置存储器来指示备份请求;
启动所述计算设备,包括检查所述存储器以确定是否存在所述备份请求;以及
如果存在所述备份请求,将所述计算设备的可用固件备份至储存单元。
9.根据权利要求8所述的方法,进一步包括:
在备份期间创建备份固件镜像,
其中所述储存单元是固定盘,且
其中所述备份固件镜像被存储在所述固定盘的分区上。
10.根据权利要求9所述的方法,其中通过包括所述操作系统的软件镜像开始所述初始化过程。
11.根据权利要求10所述的方法,其中所述软件镜像包括在所述固定盘上。
12.至少一种非瞬态机器可读存储介质,存储指令,该指令如果由设备的至少一个处理器执行则引起所述设备:
初始化所述设备的操作系统;以及
在初始化过程期间,设置所述设备的非易失性存储器,
其中所述非易失性存储器的设置引起所述设备在下一次启动时将所述设备的可用固件的备份创建至储存单元。
13.根据权利要求12所述的至少一种非瞬态机器可读存储介质,进一步包括指令,该指令如果由所述至少一个处理器执行则引起所述设备:
通过启动过程启动所述设备;以及
在所述启动过程期间,检查所述非易失性存储器以确定所述非易失性存储器是否已被设置,
其中所述备份的创建基于所述非易失性存储器是否已被设置。
14.根据权利要求13所述的至少一种非瞬态机器可读存储介质,
其中所述初始化过程包括所述储存单元的分区的创建,
且其中所述备份被存储在所述分区上。
15.根据权利要求14所述的至少一种非瞬态机器可读存储介质,
其中所述储存单元是硬驱,并且其中所述操作系统被存储在所述硬驱上。
CN201280063935.3A 2012-01-03 2012-01-03 在设备初始化期间备份固件 Expired - Fee Related CN103999041B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/020061 WO2013103335A1 (en) 2012-01-03 2012-01-03 Backing up firmware during initialization of device

Publications (2)

Publication Number Publication Date
CN103999041A true CN103999041A (zh) 2014-08-20
CN103999041B CN103999041B (zh) 2018-03-27

Family

ID=48745330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280063935.3A Expired - Fee Related CN103999041B (zh) 2012-01-03 2012-01-03 在设备初始化期间备份固件

Country Status (9)

Country Link
US (2) US9672112B2 (zh)
KR (1) KR101856284B1 (zh)
CN (1) CN103999041B (zh)
BR (1) BR112014014815B1 (zh)
DE (1) DE112012005118T5 (zh)
GB (1) GB2511998B (zh)
IN (1) IN2014CN03796A (zh)
TW (1) TWI482015B (zh)
WO (1) WO2013103335A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598334A (zh) * 2015-01-13 2015-05-06 联想(北京)有限公司 一种信息处理方法及电子设备
WO2016112633A1 (zh) * 2015-01-12 2016-07-21 芋头科技(杭州)有限公司 一种提高系统固件烧写速度的方法
CN107273241A (zh) * 2016-04-06 2017-10-20 北京航天发射技术研究所 一种重要参数的冗余备份和自动恢复方法
CN108762785A (zh) * 2018-05-29 2018-11-06 四川斐讯信息技术有限公司 一种固件升级过程中恢复出厂的方法和系统

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563497B2 (en) * 2012-12-19 2017-02-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Correcting a failure associated with a current firmware image
EP2989583B1 (en) * 2013-04-23 2018-10-10 Hewlett-Packard Development Company, L.P. Configuring a system
US10733288B2 (en) 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
EP2989547B1 (en) 2013-04-23 2018-03-14 Hewlett-Packard Development Company, L.P. Repairing compromised system data in a non-volatile memory
CN104142838A (zh) * 2014-07-02 2014-11-12 青岛海信移动通信技术股份有限公司 一种移动通信终端开机启动的方法和设备
US20160188414A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Fault tolerant automatic dual in-line memory module refresh
JP6600240B2 (ja) * 2015-12-08 2019-10-30 キヤノン株式会社 情報処理装置、ファームウェア更新方法、およびプログラム
CN107797642B (zh) * 2016-09-07 2019-12-06 华为技术有限公司 一种备电方法及装置
US10725792B2 (en) * 2016-12-15 2020-07-28 Western Digital Technologies, Inc. Non-volatile storage device with multiple boot partitions
WO2018190846A1 (en) 2017-04-13 2018-10-18 Hewlett-Packard Development Company, L.P. Boot data validity
US10061933B1 (en) 2018-01-09 2018-08-28 Booz Allen Hamilton Inc. System and method for controlling the power states of a mobile computing device
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
US10726133B1 (en) * 2019-02-04 2020-07-28 Dell Products L.P. Securely loading UEFI images at runtime
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11169819B2 (en) * 2019-05-01 2021-11-09 Dell Products L.P. Information handling system (IHS) and method to proactively restore firmware components to a computer readable storage device of an IHS
US11347856B2 (en) * 2019-05-24 2022-05-31 Dell Products L.P. Bios method to block compromised preboot features
US20230195898A1 (en) * 2020-06-24 2023-06-22 Hewlett-Packard Development Company, L.P. Bios backup
CN113190256B (zh) * 2021-05-27 2023-03-28 新华三技术有限公司 一种升级方法、装置及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5269022A (en) * 1990-03-28 1993-12-07 Kabushiki Kaisha Toshiba Method and apparatus for booting a computer system by restoring the main memory from a backup memory
US20040123086A1 (en) * 2002-12-18 2004-06-24 Rothman Michael A. Technique for reconstituting a pre-boot firmware environment after launch of an operating system
US7136994B2 (en) * 2003-05-13 2006-11-14 Intel Corporation Recovery images in an operational firmware environment
CN1983204A (zh) * 2005-12-15 2007-06-20 英业达股份有限公司 使用lpc接口且能修复bios功能之除错装置及其除错方法
CN101071392A (zh) * 2006-05-12 2007-11-14 国际商业机器公司 用于维护固件的备份副本的方法和系统
US20090007089A1 (en) * 2007-06-26 2009-01-01 Rothman Michael A Method and Apparatus to Enable Dynamically Activated Firmware Updates

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1293904A1 (en) * 2001-09-14 2003-03-19 Hewlett-Packard Company Method of initiating a backup procedure
TWI251771B (en) * 2001-12-28 2006-03-21 Asustek Comp Inc Module and method for automatic restoring BIOS device, and the computer-readable recording media of storing the program codes thereof
KR20040008007A (ko) 2002-07-15 2004-01-28 에임텍 주식회사 무선단말기 펌웨어 업그레이드 방법
US7143275B2 (en) 2002-08-01 2006-11-28 Hewlett-Packard Development Company, L.P. System firmware back-up using a BIOS-accessible pre-boot partition
TWM241755U (en) 2003-07-01 2004-08-21 Key Technology Corp Small storage device with built-in BIOS
US7313685B2 (en) 2004-07-23 2007-12-25 Hewlett-Packard Development Company, L.P. Unattended BIOS recovery
TW200713037A (en) 2005-09-06 2007-04-01 Benq Corp System and method for updating firmware
TW200805083A (en) * 2006-07-12 2008-01-16 Inventec Corp Method of reading OpROM image from storage device
US20080270652A1 (en) * 2007-04-30 2008-10-30 Jeffrey Kevin Jeansonne System and method of tamper-resistant control
TW200847021A (en) * 2007-05-17 2008-12-01 Asustek Comp Inc Automatic backup, restore and update BIOS computer system
US7987353B2 (en) 2008-01-09 2011-07-26 International Business Machines Corporation Remote BIOS for servers and blades
KR20090124073A (ko) * 2008-05-29 2009-12-03 (주)이노튜브 사용자 설정 장비의 펌웨어 업그레이드와 초기화 방법 및시스템
TWI359378B (en) 2008-07-03 2012-03-01 Asustek Comp Inc Booting method of computer system
TWI460658B (zh) * 2008-09-26 2014-11-11 Insyde Software Corp In the BIOS stage to perform a quick boot and general boot method
US8880207B2 (en) * 2008-12-10 2014-11-04 The University Of Queensland Multi-parametric analysis of snore sounds for the community screening of sleep apnea with non-gaussianity index
US8983870B2 (en) * 2010-08-18 2015-03-17 Snap-On Incorporated Apparatus and method for managing software applications using partitioned data storage devices
KR20120050062A (ko) * 2010-11-10 2012-05-18 주식회사 히타치엘지 데이터 스토리지 코리아 솔리드 스테이트 드라이브의 펌웨어 구동 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5269022A (en) * 1990-03-28 1993-12-07 Kabushiki Kaisha Toshiba Method and apparatus for booting a computer system by restoring the main memory from a backup memory
US20040123086A1 (en) * 2002-12-18 2004-06-24 Rothman Michael A. Technique for reconstituting a pre-boot firmware environment after launch of an operating system
US7136994B2 (en) * 2003-05-13 2006-11-14 Intel Corporation Recovery images in an operational firmware environment
CN1983204A (zh) * 2005-12-15 2007-06-20 英业达股份有限公司 使用lpc接口且能修复bios功能之除错装置及其除错方法
CN101071392A (zh) * 2006-05-12 2007-11-14 国际商业机器公司 用于维护固件的备份副本的方法和系统
US20090007089A1 (en) * 2007-06-26 2009-01-01 Rothman Michael A Method and Apparatus to Enable Dynamically Activated Firmware Updates

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016112633A1 (zh) * 2015-01-12 2016-07-21 芋头科技(杭州)有限公司 一种提高系统固件烧写速度的方法
CN105843631A (zh) * 2015-01-12 2016-08-10 芋头科技(杭州)有限公司 一种提高系统固件烧写速度的方法
CN105843631B (zh) * 2015-01-12 2019-02-15 芋头科技(杭州)有限公司 一种提高系统固件烧写速度的方法
CN104598334A (zh) * 2015-01-13 2015-05-06 联想(北京)有限公司 一种信息处理方法及电子设备
CN104598334B (zh) * 2015-01-13 2018-02-27 联想(北京)有限公司 一种信息处理方法及电子设备
CN107273241A (zh) * 2016-04-06 2017-10-20 北京航天发射技术研究所 一种重要参数的冗余备份和自动恢复方法
CN107273241B (zh) * 2016-04-06 2021-02-26 北京航天发射技术研究所 一种重要参数的冗余备份和自动恢复方法
CN108762785A (zh) * 2018-05-29 2018-11-06 四川斐讯信息技术有限公司 一种固件升级过程中恢复出厂的方法和系统

Also Published As

Publication number Publication date
US9672112B2 (en) 2017-06-06
WO2013103335A1 (en) 2013-07-11
US10613773B2 (en) 2020-04-07
GB2511998A (en) 2014-09-17
US20170220278A1 (en) 2017-08-03
US20140325203A1 (en) 2014-10-30
TW201333684A (zh) 2013-08-16
KR101856284B1 (ko) 2018-06-25
CN103999041B (zh) 2018-03-27
GB201411931D0 (en) 2014-08-20
TWI482015B (zh) 2015-04-21
DE112012005118T5 (de) 2014-10-16
BR112014014815A2 (pt) 2017-06-13
IN2014CN03796A (zh) 2015-10-16
GB2511998B (en) 2020-10-21
BR112014014815B1 (pt) 2021-11-03
KR20140109401A (ko) 2014-09-15

Similar Documents

Publication Publication Date Title
CN103999041A (zh) 在设备初始化期间备份固件
CN105745617B (zh) 用于预启动固件更新的选择性功率管理
EP3494471B1 (en) Systems and methods for secure recovery of host system code
CN100353320C (zh) 引导过程
CN105144074A (zh) 使用混合存储器设备的块存储
CN101213518A (zh) 通过指令组设陷来优化os上下文切换的系统和方法
WO2013147915A1 (en) Method and system for verifying proper operation of a computing device after a system change
CN102135893A (zh) 将操作系统集成到bios芯片及启动服务器上操作系统的方法
EP1631905B1 (en) Dynamic bios execution and concurrent update for a blade server
US11494495B2 (en) System and method for firmware image integrity verification
CN113626822B (zh) 集成LinuxBoot的UEFI固件启动方法及装置
CN105607972A (zh) 一种异常修复的方法及装置
CN110119623A (zh) 一种利用tpcm实现固件主动度量的可信主板实现方法
EP3314416B1 (en) Firmware block dispatch based on fuses
US20140181490A1 (en) Boot from modified image
CN113656049A (zh) 一种操作系统部署方法、装置及电子设备和存储介质
CN110908722B (zh) 应用于操作系统启动的方法、装置、电子设备及存储介质
CN115827069A (zh) 服务器主板的启动控制方法、系统及装置
CN116700801A (zh) 配置信息的管理方法、装置及服务器
CN100489768C (zh) 用于引导计算机系统的方法和装置
CN108897561B (zh) 一种数据存储方法及存储系统
TWI796904B (zh) 還原方法及系統
CN113645046A (zh) 一种网卡驱动安装方法、主服务器及介质
CN117421156A (zh) 一种固件管理方法、装置、设备及机器可读存储介质
CN117908969A (zh) 基于eFuse的SoC系统的启动方法、装置、系统、SoC芯片及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180327