TWI764454B - 韌體損壞恢復技術 - Google Patents

韌體損壞恢復技術

Info

Publication number
TWI764454B
TWI764454B TW109145304A TW109145304A TWI764454B TW I764454 B TWI764454 B TW I764454B TW 109145304 A TW109145304 A TW 109145304A TW 109145304 A TW109145304 A TW 109145304A TW I764454 B TWI764454 B TW I764454B
Authority
TW
Taiwan
Prior art keywords
firmware
computing device
location
firmware component
backup image
Prior art date
Application number
TW109145304A
Other languages
English (en)
Other versions
TW202131170A (zh
Inventor
馮康寧
洪明璋
Original Assignee
美商惠普發展公司有限責任合夥企業
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 美商惠普發展公司有限責任合夥企業 filed Critical 美商惠普發展公司有限責任合夥企業
Publication of TW202131170A publication Critical patent/TW202131170A/zh
Application granted granted Critical
Publication of TWI764454B publication Critical patent/TWI764454B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Retry When Errors Occur (AREA)
  • Stored Programmes (AREA)

Abstract

在一些實例中,一種計算裝置包含:一處理資源;以及一記憶體資源,其儲存指令以使該處理資源進行以下操作:藉由該計算裝置之一基本輸入/輸出系統(BIOS)偵測該計算裝置之一韌體組件中的韌體損壞;基於該韌體組件之偵測到之韌體損壞而產生一恢復代理程式;基於所產生之恢復代理程式而判定該韌體組件之一備份映像的一位置;基於該韌體組件之該備份映像之該位置的該判定而判定一恢復序列;以及藉由執行所判定之恢復序列來恢復該韌體組件之韌體。

Description

韌體損壞恢復技術
本發明係有關於韌體損壞恢復技術。
發明背景
韌體可提供對計算裝置之硬體中之一些或全部的低層級控制。計算裝置可包括利用韌體之韌體組件(例如,控制器、處理器、感測器、攝影機及其他者)。韌體組件可在韌體更新、電源浪湧(power surge)、斷電(blackout)、來自計算裝置之電源供應器單元的不當電壓及/或其他電氣事件期間被損壞。
依據本發明之一實施例,係特地提出一種計算裝置,其包含:一處理資源;以及一記憶體資源,其儲存非暫時性機器可讀指令以使該處理資源進行以下操作:藉由該計算裝置之一基本輸入/輸出系統(BIOS)偵測該計算裝置之一韌體組件中的韌體損壞;基於該韌體組件之偵測到之韌體損壞而產生一恢復代理程式;基於所產生之恢復代理程式而判定該韌體組件之一備份映像的一位置;基於該韌體組件之該備份映像之該位置的該判定而判定一恢復序列;以及藉由執行所判定之恢復序列來恢復該韌體組件之韌體。
較佳實施例之詳細說明
計算裝置可利用基本輸入-輸出系統(BIOS)來執行某些動作。如本文中所使用,「BIOS」一詞係指用以在計算裝置之啟動序列期間執行硬體初始化且為作業系統(OS)及/或其他程式提供執行階段服務的非依電性韌體組件。舉例而言,在計算裝置啟動(例如,開機)時,BIOS可初始化計算裝置之硬體。
如本文中所使用,「計算裝置」一詞係指傳輸或修改能量以執行或輔助人類任務之執行的機械或電氣裝置。實例計算裝置包括膝上型電腦、筆記型電腦、桌上型電腦及/或行動裝置(例如,智慧型手機、平板電腦、個人數位助理、智慧型眼鏡、腕戴式裝置等)以及其他類型之計算裝置。如本文中所使用,行動裝置可包括由使用者攜帶及/或穿戴(或可由使用者攜帶及/或穿戴)之計算裝置。舉例而言,行動裝置可為電話(例如,智慧型手機)、平板電腦、個人數位助理(PDA)、智慧型眼鏡及/或腕戴式裝置(例如,智慧型手錶)以及其他類型之行動裝置。如本文中所使用,「作業系統」(OS)一詞係指支援計算裝置之基本功能(諸如,排程任務、執行應用程式及/或控制周邊裝置)的軟體。如本文中所使用,「韌體」一詞係指提供對計算裝置之特定硬體之控制的軟體。如本文中所使用,「韌體組件」一詞係指含有韌體及/或利用韌體(例如,由韌體控制)之裝置。舉例而言,電力遞送控制器、雷靂(thunderbolt)控制器、攝影機、讀卡器、指紋讀取器等可各包括其自身的韌體。可更新韌體組件之韌體。
在一些實例中,韌體及與韌體相關聯之韌體組件可在被更新時具有韌體損壞。如本文中所使用,「韌體損壞」或「已損壞韌體」一詞係指傳輸及/或處理之失敗,其可引入對原始資料之非預期改變且可導致計算裝置當機且被永久損壞。此損壞可導致對韌體組件之永久損壞且導致昂貴替換。在一些實例中,韌體損壞可使計算裝置緩慢運作及/或可使計算裝置不作出回應。已損壞韌體組件可使用OS來進行偵測,及/或客戶服務可偵測及恢復計算裝置之已損壞韌體組件。舉例而言,在一些方法中,終端使用者識別韌體損壞且使得恢復工程師參與以恢復已損壞韌體。此類程序可為耗時且昂貴的。
在其他方法中,可手動地偵測及恢復韌體組件之韌體損壞。舉例而言,使用者可自事件日誌及/或Windows裝置管理器(WDM)接收錯誤通知。基於該通知,使用者可向服務台請求幫助及/或自我診斷韌體被損壞,且下載韌體更新封裝以恢復韌體組件。然而,此類方法可為耗時的,需要昂貴的恢復工程師來偵測及恢復損壞。另外,此類方法可導致對韌體組件之額外損壞。
在一些先前方法中,使用者可手動地使用OS層級韌體更新及恢復(FUR)應用程式來更新、下載及/或恢復韌體組件之韌體。在更新之前,FUR應用程式可將BIOS以及韌體組件之韌體映像備份至計算裝置之儲存裝置中。若BIOS在計算裝置之開機自我測試(POST)序列期間偵測到韌體組件映像,則BIOS可讀出韌體組件映像之備份版本以恢復彼韌體組件。如本文中所使用,「POST序列」一詞係指在計算裝置通電之後由韌體及/或軟體常式執行以判定計算裝置之硬體是否正常工作的程序。若BIOS在POST序列期間未偵測到韌體組件映像,則計算裝置之OS重新開機。然而,在此恢復系統中,儲存裝置中之備份映像無法用以恢復韌體組件之韌體。
在一些其他方法中,冗餘韌體組件之韌體映像可整合於BIOS映像區域中且在BIOS經更新時保存於快閃唯讀記憶體(ROM)中。在韌體組件被損壞之情況下,BIOS可使用整合之冗餘韌體映像來恢復韌體組件。然而,此恢復系統可為昂貴的,此係因為其可包括使用較大快閃ROM。
根據本公開之韌體組件恢復技術可使用BIOS來偵測韌體被損壞之韌體組件,自BIOS本身中之架構偵測恢復代理程式,判定韌體組件之備份映像的位置,基於備份映像之位置而判定恢復序列,且恢復韌體組件。此韌體組件恢復程序可為自動的,此係因為在一些實例中,使用者無法識別哪一韌體組件被損壞。另外,由於恢復代理程式整合於BIOS中,因此韌體組件恢復程序可支援新安裝之全新OS,如本文中進一步所描述。
在一些實例中,計算裝置之韌體損壞恢復程序可藉由計算裝置之BIOS偵測損壞,且基於韌體損壞之偵測到之韌體損壞而產生恢復代理程式。如本文中所使用,「恢復代理程式」一詞係指包含進階組態與電源介面(ACPI)及Windows平台二進位表(WPBT)之表,以藉由BIOS基於偵測到之損壞而產生演算法,如本文中進一步所描述。恢復代理程式可判定韌體組件之備份映像的位置,基於備份映像之位置而判定恢復序列,且恢復韌體組件。如本文中所使用,「備份映像」一詞係指可建立韌體組件之韌體之複本的電腦檔案。統一且自動的損壞偵測及恢復程序在有限使用者介入之情況下可具有成本效益。
圖1說明與本公開一致的用於韌體損壞恢復之計算裝置101的實例。計算裝置101可包括通訊耦接至記憶體資源107之處理資源105,諸如指令102、104、106、108及110之指令可儲存於該記憶體資源上。如本文中所使用,「處理資源」一詞係指中央處理單元(CPU)、微處理器及/或適合於擷取及執行儲存於記憶體資源中之指令的其他硬體裝置。處理資源105可為CPU、微處理器及/或適合於擷取及執行儲存於記憶體資源107中之指令的其他硬體裝置。處理資源105可偵測、產生、判定及恢復所儲存指令,以執行動作相關韌體損壞恢復。
如本文中所使用,「通訊耦接」可包括經由裝置之間的各種有線及/或無線連接進行耦接,使得資料可在裝置之間在各種方向上傳送。儘管以下描述參考處理資源及記憶體資源,但描述亦可應用於具有多個處理資源及多個記憶體資源之系統及/或計算裝置。在此等實例中,可跨越多個非暫時性機器可讀儲存媒體來分散(例如,儲存)指令,且可跨越多個處理資源來分散指令(例如,由多個處理資源執行)。
記憶體資源107可為儲存可執行指令102、104、106、108及110之任何電子、磁性、光學或其他實體儲存裝置。因此,記憶體資源107可為例如隨機存取記憶體(RAM)、電氣可抹除可規劃唯讀記憶體(EEPROM)、儲存磁碟機、光碟及其類似者。記憶體資源105可安置於計算裝置101內,如圖1中所展示。另外,記憶體資源107可為例如使計算裝置101自可攜式/外部/遠端儲存媒體下載指令102、104、106、108及110之可攜式、外部或遠端儲存媒體。
指令102在由諸如處理資源105之處理資源執行時可使計算裝置101藉由計算裝置之BIOS偵測計算裝置之韌體組件中的韌體損壞。計算裝置101之BIOS可為可在計算裝置101之啟動期間執行硬體初始化的非依電性韌體組件。在一些實例中,若計算裝置101未初始化,則計算裝置之BIOS可偵測到韌體組件(例如,電力遞送控制器、感測器、攝影機等)之韌體被損壞。在一些實例中,使用BIOS,韌體組件之韌體損壞可經由OS介面恢復,如本文中進一步所描述。
在一些實例中,當計算裝置101在啟動序列期間被初始化時,BIOS可控制計算裝置101。BIOS可包括預EFI初始化(PEI)階段。在PEI階段期間,BIOS可偵測韌體、儲存空間之損壞,且提供重新啟動計算裝置101之原因。在一些實例中,BIOS可移動至驅動程式執行環境(DXE)階段。在此階段中,計算裝置101之BIOS可探索及以正確次序執行DXE驅動程式。DXE驅動程式可負責初始化韌體組件以及計算裝置101之其他部分。在一些實例中,在DXE階段,若計算裝置101之BIOS未偵測到韌體組件之韌體損壞,則計算裝置101可藉由開機裝置選擇(BDS)將計算裝置101之OS開機。在一些實例中,若BIOS偵測到韌體損壞,則BIOS可鍵入關於計算裝置101記憶體系統中之偵測到之韌體損壞的資訊。
指令104在由諸如處理資源105之處理資源執行時可使計算裝置101基於韌體組件之偵測到之韌體損壞而產生恢復代理程式。在一些實例中,恢復代理程式可整合於BIOS中。在一些實例中,計算裝置101可包括恢復代理程式,其可為包含ACPI及WPBT之表。如本文中所使用,「表」一詞係指恢復代理程式之資料的配置。
計算裝置101可在POST序列期間藉由BIOS產生表。POST序列可在計算裝置101通電之後執行韌體常式,以判定計算裝置之硬體是否正常工作。舉例而言,計算裝置101可在通電時運行POST序列,以判定計算裝置101之某一硬體(例如,隨機存取記憶體(RAM)、韌體組件及/或其他硬體)正常工作抑或已被損壞。回應於判定韌體組件之韌體損壞,計算裝置101可產生恢復代理程式。
在一些實例中,基於計算裝置101之韌體損壞的原因,恢復代理程式之資料配置可不同。舉例而言,恢復代理程式可包括用於由電源浪湧、斷電及/或其他電氣事件所引起之韌體損壞的第一資料配置,且可具有用於由在韌體更新期間之關機所引起之韌體損壞的第二資料配置。
計算裝置101之恢復代理程式可包括ACPI及WPBT表。ACPI可使計算裝置101之功率管理處於OS之控制下。在一些實例中,ACPI可使用經由韌體提供之指令清單向OS通告可用韌體組件及其功能。在一些實例中,ACPI可指定計算裝置101之BIOS、OS及韌體組件可如何就功率使用彼此通訊。在一些實例中,可在ACPI OS下將ACPI介面提供至計算裝置101。換言之,計算裝置101可經由ACPI介面自BIOS接收恢復代理程式。
恢復代理程式之WPBT可使韌體能夠向OS提供OS可執行之平台二進位檔案。二進位交遞媒體可為實體記憶體,從而允許韌體提供平台二進位檔案而不修改本端儲存器及/或伺服器中之韌體映像。在一些實例中,WPBT可包括指向已複製至本端記憶體之平面可攜式可執行(PE)韌體映像的實體位址指標。
在一些實例中,計算裝置101之BIOS可公佈包含ACPI及WPBT之恢復代理程式,如本文中進一步所論述。如本文中所使用,「公佈」一詞可指BIOS完成資料準備以建置ACPI及WPBT表。
指令106在由諸如處理資源105之處理資源執行時可使計算裝置101基於所產生之恢復代理程式而判定韌體組件之備份映像的位置。如本文中所描述,備份映像可為韌體組件之韌體的複本。在一些實例中,韌體組件之備份映像的位置可在計算裝置之第一位置中。在一些實例中,第一位置可為計算裝置101之本端記憶體。
在一些實例中,基於所產生之恢復代理程式,韌體組件之韌體的備份映像之位置可不同。舉例而言,與BIOS整合之恢復代理程式可建置定製ACPI表。如本文中所使用,「定製ACPI」一詞係指已修改以指示哪一韌體組件被損壞的ACPI資料。可在UEFI/BIOS POST時間期間建立定製ACPI表。在一些實例中,定製ACPI表可包括ACPI表標頭,該標頭具有基於自恢復代理程式接收到之提示的定製資訊。
基於定製ACPI表之存在,指令106在由處理資源105執行時可使計算裝置101判定損壞韌體組件之備份映像的位置在計算裝置101之第一位置中。
在一些實例中,韌體組件之備份映像的位置可在與計算裝置相關聯之伺服器中。回應於不存在定製ACPI表,指令106在由處理資源105執行時可使計算裝置101判定備份映像之位置在第二位置中。在一些實例中,第二位置可為計算裝置101之伺服器。如本文中所使用,「伺服器」一詞係指提供用於其他程式或裝置(被稱作用戶端)之功能性的電腦程式或及/或裝置。在一些實例中,第二位置可為除計算裝置101以外之計算裝置的伺服器。
在一些實例中,計算裝置101可判定韌體組件之備份映像在本端儲存器中及/或在計算裝置101之伺服器中。若判定備份映像不存在,則可產生警示以通知韌體組件之韌體損壞。在一些實例中,該警示可由使用者接收。在一些實例中,該警示可由電腦介面接收。
指令108在由諸如處理資源105之處理資源執行時可使計算裝置101基於韌體組件之備份映像的位置之判定而判定恢復序列。如本文中所論述,「恢復序列」一詞係指所採取以恢復韌體組件之已損壞韌體的一系列選擇性動作。韌體組件之韌體的恢復序列可基於備份映像之位置、定製ACPI是否存在之判定、WPBT命令列參數等,如本文中進一步所論述。
在一些實例中,恢復序列可包括恢復已損壞韌體組件(例如,立即恢復)及將OS重新開機。在一些實例中,恢復序列可包括通知使用者聯繫恢復工程師。在一些實例中,恢復序列可包括觸發事件日誌以藉由BIOS初始化韌體恢復。
指令110在由諸如處理資源105之處理資源執行時可使計算裝置101藉由執行所判定之恢復序列來恢復韌體組件之韌體。當韌體損壞之恢復完成時,可產生通知。
根據本公開,韌體損壞恢復技術可允許BIOS恢復計算裝置中之韌體組件且簡化恢復程序。BIOS可支援組件韌體恢復,且可避免在使用者正升級系統時包括冗餘韌體映像。恢復代理程式可判定已損壞韌體組件之備份映像的位置,且基於備份映像之位置而判定恢復序列。此可有助於消除用以儲存各組件之冗餘韌體映像的額外ROM,且有助於減少成本。
圖2說明與本公開一致的適合於韌體損壞恢復之計算裝置221的方塊圖。計算裝置221可包括通訊耦接至非暫時性機器可讀儲存媒體207之處理資源205,諸如指令222、224、226、228、232及234之指令可儲存於該非暫時性機器可讀儲存媒體上。處理資源205可類似於關於圖1所描述之處理資源105。非暫時性機器可讀儲存媒體207可類似於關於圖1所描述之記憶體資源107。機器可讀儲存媒體207可為例如允許計算裝置221自可攜式/外部/遠端儲存媒體下載指令之可攜式、外部或遠端儲存媒體。在此情形下,可執行體指令可為「安裝封裝」之部分。如本文中所描述,機器可讀儲存媒體207可編碼有與韌體損壞恢復相關聯之可執行體指令。
指令222在由諸如處理資源205之處理資源執行時可使計算裝置221基於計算裝置221之韌體組件的偵測到之韌體損壞而產生包括ACPI及WPBT介面之恢復代理程式。在一些情況下,恢復代理程式可經由BIOS置放於諸如非暫時性機器可讀儲存媒體207之記憶體資源中。在此實例中,WPBT可就恢復代理程式之位置而發指令給OS,且就如何運行恢復代理程式而發指令給OS。在一些實例中,定製ACPI可提供關於韌體組件之已損壞韌體的資訊,包括關於是否保證韌體組件之恢復的指示。在一些情況下,當OS識別WPBT時,OS可使用WPBT中之資訊來搜尋記憶體資源及/或恢復代理程式之系統記憶體位址且接著運行恢復代理程式。一旦恢復代理程式正在運行,恢復代理程式可試圖定位定製ACPI表以判定應修復哪一韌體組件。回應於彼判定,可起始恢復程序。
換言之,在一些實例中,計算裝置221可偵測韌體損壞且恢復損壞。計算裝置221之韌體損壞恢復程序可藉由計算裝置221之BIOS偵測韌體損壞,且基於韌體損壞之偵測到之韌體損壞而產生恢復代理程式。恢復代理程式可整合於計算裝置221之BIOS中。
在一些實例中,計算裝置221可包括恢復代理程式,其可為包含ACPI及WPBT之表。ACPI可使計算裝置201之功率管理處於OS之控制下。在一些實例中,ACPI可使用經由韌體提供之指令清單向OS通告可用韌體組件及其功能。在一些實例中,ACPI可指定計算裝置201之BIOS、OS及韌體組件可如何就功率使用彼此通訊。
恢復代理程式之WPBT可使韌體能夠向OS提供OS可執行之平台二進位檔案。二進位交遞媒體可為實體記憶體,從而允許韌體提供平台二進位檔案而不修改本端儲存器及/或伺服器中之韌體映像。在一些實例中,WPBT可包括指向已複製至本端記憶體之平面PE韌體映像的實體位址指標。
在一些實例中,計算裝置221之BIOS可公佈包含ACPI及WPBT之恢復代理程式。如本文中所使用,「公佈」一詞可指BIOS完成資料準備以建置ACPI及WPBT表。舉例而言,BIOS可完成相關資料以在本端記憶體中建置WPBT表。在一些實例中,BIOS可完成相關資料以在本端記憶體中建置定製ACPI表。定製ACPI可指示韌體組件之哪一韌體損壞。在一些實例中,指令222可包括可由處理資源205執行以判定用於待使用恢復代理程式恢復之韌體組件之參數的指令。舉例而言,用於韌體組件之參數可包括計算裝置之記憶體及/或伺服器的實體位置。
指令224在由諸如處理資源205之處理資源執行時可使計算裝置221基於所產生之恢復代理程式而判定韌體組件之備份映像的第一位置。計算裝置221可基於所產生之恢復代理程式而判定韌體組件之備份映像的第一位置。
在一些實例中,韌體組件之備份映像的第一位置可在計算裝置221之第一位置中。舉例而言,與BIOS整合之恢復代理程式可建置定製ACPI表。基於定製ACPI表之存在,指令224在由處理資源205執行時可使計算裝置221判定損壞韌體組件之備份映像的第一位置在計算裝置221之第一位置中。在一些實例中,第一位置可為計算裝置221之本端記憶體。
指令226在由諸如處理資源205之處理資源執行時可使計算裝置221基於韌體組件之備份映像在第一位置中而執行第一恢復序列。基於備份映像位於第一位置中之判定,計算裝置221可執行第一恢復序列。
第一恢復序列可包括待採取以恢復韌體組件之已損壞韌體的第一及第二選擇性動作。在一些實例中,第一恢復序列可基於第一位置中之定製ACPI的存在而判定。在一些實例中,若判定定製ACPI存在,則第一恢復序列可包括第一選擇性動作及第二選擇性動作。舉例而言,第一選擇性動作可為經由統一可延伸韌體介面(UEFI)封囊更新來準備恢復韌體組件。舉例而言,第二選擇性動作可為將通知發送至使用者以接收立即抑或稍後繼續進行重新開機及恢復韌體組件的同意。
指令228在由諸如處理資源205之處理資源執行時可使計算裝置221回應於韌體組件之備份映像不存在於第一位置中的判定而判定韌體組件之備份映像的第二位置。若藉由恢復代理程式判定定製ACPI表不存在,則指令228可使計算裝置221判定備份映像之位置。
在一些實例中,備份映像可判定為在第二位置中。在一些實例中,第二位置可為計算裝置221之伺服器。在一些實例中,第二位置可為除計算裝置221以外之計算裝置的伺服器。
指令232在由諸如處理資源205之處理資源執行時可使計算裝置221基於韌體組件之備份映像在第二位置中而執行第二恢復序列。除第一及第二選擇動作以外,第二恢復序列可包括第三選擇性動作,如本文中所論述。舉例而言,第三選擇動作可包括將備份映像自第二位置複製至第一位置。
在一些實例中,第二恢復序列可包括觸發事件日誌。如本文中所使用,「事件日誌」一詞係指記錄系統之事件。在一些實例中,第二恢復序列可觸發記錄韌體損壞事件。事件日誌可提供稽核線索,其可用以理解損壞背後的原因,與韌體組件之先前韌體損壞事件進行比較,等等。在一些實例中,第二恢復序列可包括BIOS以控制計算裝置221。
指令234在由諸如處理資源205之處理資源執行時可使計算裝置221基於韌體組件之備份韌體映像不存在於第二位置中而產生警示,以通知韌體組件之韌體損壞。在一些實例中,計算裝置221可判定韌體組件之備份映像不存在於第一位置及第二位置中。在備份映像不存在之此判定中,則可產生警示以通知韌體組件之韌體損壞。在一些實例中,該警示可由使用者接收。在一些實例中,該警示可由電腦介面接收。舉例而言,實例警示包括在計算裝置上彈出通知,接收電子訊息,在行動裝置上接收警示訊息,等等。
圖3說明與本公開一致的用於韌體損壞恢復之方法330的實例。舉例而言,方法330可由計算裝置(例如,如先前分別結合圖1及圖2所描述之計算裝置101、221)執行。
在331處,方法330包括藉由計算裝置之BIOS偵測計算裝置之韌體組件中的韌體損壞。在一些實例中,使用BIOS,韌體組件之韌體損壞可經由OS介面恢復。若計算裝置未初始化,則計算裝置之BIOS可偵測到韌體組件之韌體被損壞。在一些實例中,使用BIOS,韌體組件之韌體損壞可經由OS介面恢復。
方法330包括在333處,基於韌體組件之偵測到之韌體損壞而產生恢復代理程式。在一些實例中,恢復代理程式可整合於BIOS中。在一些實例中,計算裝置可包括恢復代理程式,其可為包含ACPI及WPBT之表。
ACPI可使計算裝置之功率管理處於OS之控制下。在一些實例中,ACPI可指定計算裝置之BIOS、OS及韌體組件可如何就功率使用彼此通訊。恢復代理程式之WPBT可使韌體能夠向OS提供OS可執行之平台二進位檔案。
方法330包括在335處,基於所產生之恢復代理程式而判定韌體組件之備份映像的第一位置。舉例而言,在335處,該方法可判定韌體組件之韌體的複本在第一位置中。在一些實例中,第一位置可為計算裝置之本端記憶體。
在一些實例中,與計算裝置之BIOS整合的恢復代理程式可建置定製ACPI表。基於定製ACPI之存在,計算裝置可判定已損壞韌體之備份映像在本端記憶體/第一位置中。
方法330包括在337處,基於韌體組件之備份映像在第一位置中而執行第一恢復序列。基於備份映像位於第一位置中之判定,方法330可執行可包括一組選擇性動作之第一恢復序列。舉例而言,該組選擇性動作可包括經由UEFI封囊更新準備恢復韌體組件,自使用者接收關於使用者將計算裝置重新開機之同意,等等。
方法330包括在339處,回應於判定韌體組件之備份映像不存在於第一位置中而判定韌體組件之備份映像的第二位置。舉例而言,若計算裝置判定備份映像不存在於第一位置中,則計算裝置可搜尋第二位置(例如,伺服器)以判定備份映像是否存在於第二位置中。
在一些實例中,第二位置之判定係基於定製ACPI表不存在於第一位置中且存在於第二位置中的判定。若備份映像位於第二位置中,則可產生第二恢復序列。
方法330包括在341處,基於韌體組件之備份映像在第二位置中而執行第二恢復序列,及自介面接收同意。舉例而言,恢復代理程式可基於備份映像在第二位置中之判定而判定第二恢復序列。在一些實例中,第二恢復序列可包括將備份映像自第二位置複製至第一位置,及在完成備份映像之複製後自動地將OS開機。在一些實例中,第二恢復序列可包括請求使用者同意在第一時間段抑或在第二時間段將OS開機。第一時間段可為在備份映像之複製已完成時的時間段。在一些實例中,第二時間段可為晚於第一時間段之時間段。
方法330包括在343處,回應於執行第一及第二恢復序列而將計算裝置重新開機以恢復韌體組件。在一些實例中,可基於所判定之恢復序列而將OS重新開機。在一些實例中,重新開機可為正常BIOS序列。
方法330包括在345處,基於韌體組件之備份韌體映像不存在於第二位置中而產生警示。在一些實例中,韌體之備份映像可不存在於第一位置及第二位置中。若備份映像不存在於第一位置及第二位置中,則該方法可產生警示以通知介面。
舉例而言,可經由備份映像不存在且無法產生恢復序列之通知來警示使用者。基於通知,使用者可判定必須採取以恢復韌體組件之韌體的下一步驟。舉例而言,使用者可決定呼叫恢復管理器及/或強制開機以恢復韌體組件之韌體。
在本公開之前述詳細描述中,參看隨附圖式,該等隨附圖式形成本公開之一部分且作為說明,展示可如何實踐本公開之實例。足夠詳細地描述此等實施例,以使得一般熟習此項技術者能夠實踐本公開之實例,且應理解可利用其他實施例,且可作出程序、電氣及/或結構改變而不脫離本公開之範圍。另外,如本文中所使用,「一」可指一或多個此類事物。
本文中之諸圖遵照第一數位對應於圖式圖號且剩餘數位識別圖式中之元件或組件的編號慣例。舉例而言,參考編號105可指圖1中之元件105,且在圖2中,類似元件可藉由參考編號205識別。可添加、交換及/或消除本文中展示於各個圖中的元件以提供本公開之額外實例。此外,提供於諸圖中之元件的比例及相對比例意欲說明本公開之實例且不應被視為具有限制性意義。
應理解,當將一元件被稱作「在」另一元件「上」、「連接至」、「耦接至」另一元件或「與」另一元件「耦接」時,該元件可直接在另一元件上、與另一元件連接或耦接,或可存在介入元件。相比之下,當物件「直接耦接至」另一元件或「與」另一元件「直接耦接」時,應理解,無介入元件(黏著劑、螺桿、其他元件)等。
以上說明書、實例及資料提供對本公開的方法及應用程式之描述以及系統及方法之使用。由於可在不脫離本公開之系統及方法的精神及範圍之情況下進行許多實例,因此本說明書僅闡述許多可能的實例組態及實施方案中之一些。
101,221:計算裝置 102,104,106,108,110,222,224,226,228,232,234:指令 105,205:處理資源 107:記憶體資源 207:非暫時性機器可讀儲存媒體 330:用於韌體損壞恢復之方法 331,333,335,337,339,341,343,345:步驟
圖1說明與本公開一致的用於韌體損壞恢復之計算裝置的實例。
圖2說明與本公開一致的適合於韌體損壞恢復之計算裝置的方塊圖。
圖3說明與本公開一致的用於韌體損壞恢復之方法的實例。
101:計算裝置
102,104,106,108,110:指令
105:處理資源
107:記憶體資源

Claims (15)

  1. 一種計算裝置,其包含:一處理資源;以及一記憶體資源,其儲存非暫時性機器可讀指令以使該處理資源進行以下操作:藉由該計算裝置之一基本輸入/輸出系統(BIOS)偵測該計算裝置之一韌體組件中的韌體損壞;基於該韌體組件之偵測到之韌體損壞而產生一恢復代理程式;基於所產生之該恢復代理程式而判定該韌體組件之一備份映像的一位置;基於該韌體組件之該備份映像之該位置的該判定而判定一恢復序列;以及藉由執行所判定之該恢復序列來恢復該韌體組件之韌體。
  2. 如請求項1之計算裝置,其中該恢復代理程式為包含一進階組態與電源介面(ACPI)及一Windows平台二進位表(WPBT)之一表。
  3. 如請求項1之計算裝置,其中該韌體組件之該備份映像的該位置在該計算裝置之一本端儲存器中。
  4. 如請求項3之計算裝置,其進一步包含指令,該等指令使該處理資源回應於該韌體組件之該備份映像不存在於該本端儲存器中的一判定且使用該恢復代理程式而搜尋一伺服器以判定該韌體組件之該備份映像的該位置。
  5. 如請求項1之計算裝置,其中該韌體組件之該備份映像的該位置在與該計算裝置相關聯之一伺服器中。
  6. 如請求項1之計算裝置,其進一步包含指令,該等指令使該處理資源回應於該韌體組件之該備份映像不存在於一本端儲存器及一伺服器中的一判定而產生一警示。
  7. 如請求項1之計算裝置,其中該恢復代理程式整合於該BIOS中。
  8. 一種非暫時性機器可讀媒體,其儲存可由一處理資源執行以使該處理資源進行以下操作之指令:基於一計算裝置之一韌體組件的一偵測到之韌體損壞而產生包括一進階組態與電源介面(ACPI)及一Windows平台二進位表(WPBT)的一恢復代理程式;基於所產生之該恢復代理程式而判定該韌體組件之一備份映像的一第一位置;基於該韌體組件之該備份映像在該第一位置中而執行一第一恢復序列;回應於該韌體組件之該備份映像不存在於該第一位置中的一判定而判定該韌體組件之該備份映像的一第二位置;基於該韌體組件之該備份映像在該第二位置中而執行一第二恢復序列;以及基於該韌體組件之備份韌體映像不存在於該第二位置中而產生一警示以通知該韌體組件之該韌體損壞。
  9. 如請求項8之媒體,其包含可執行以經由該計算裝置之一基本輸入/輸出系統(BIOS)偵測該韌體組件中之該韌體損壞的指令。
  10. 如請求項8之媒體,其包含可執行以回應於偵測到該第二位置中之該備份映像而將該韌體組件之該備份映像自該第二位置複製至該第一位置的指令。
  11. 如請求項8之媒體,其包含可執行以判定用於待使用該恢復 代理程式恢復之該韌體組件之參數的指令。
  12. 如請求項8之媒體,其包含可執行以使用該計算裝置之BIOS公佈該恢復代理程式的指令。
  13. 一種用於韌體損壞恢復之方法,該方法包含:藉由一計算裝置之一基本輸入/輸出系統(BIOS)偵測該計算裝置之一韌體組件中的一韌體損壞;基於該韌體組件之偵測到之該韌體損壞而產生一恢復代理程式;基於所產生之該恢復代理程式而判定該韌體組件之一備份映像的一第一位置;基於該韌體組件之該備份映像在該第一位置中而執行一第一恢復序列;回應於判定該韌體組件之該備份映像不存在於該第一位置中而判定該韌體組件之該備份映像的一第二位置;基於該韌體組件之該備份映像在該第二位置中而執行一第二恢復序列,及自一介面接收同意;回應於執行該第一恢復序列及該第二恢復序列而將該計算裝置重新開機以恢復該韌體組件;以及基於該韌體組件之備份韌體映像不存在於該第二位置中而產生一警示。
  14. 如請求項13之方法,其進一步包含使用該BIOS偵測待經由一作業系統(OS)介面恢復的該韌體組件。
  15. 如請求項13之方法,其進一步包含回應於該警示正被產生而產生一事件日誌。
TW109145304A 2020-01-27 2020-12-21 韌體損壞恢復技術 TWI764454B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
WOPCT/US20/15140 2020-01-27
PCT/US2020/015140 WO2021154200A1 (en) 2020-01-27 2020-01-27 Firmware corruption recovery

Publications (2)

Publication Number Publication Date
TW202131170A TW202131170A (zh) 2021-08-16
TWI764454B true TWI764454B (zh) 2022-05-11

Family

ID=77079228

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109145304A TWI764454B (zh) 2020-01-27 2020-12-21 韌體損壞恢復技術

Country Status (5)

Country Link
US (1) US12099612B2 (zh)
EP (1) EP4097593A4 (zh)
CN (1) CN115176232A (zh)
TW (1) TWI764454B (zh)
WO (1) WO2021154200A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230078692A1 (en) * 2020-02-17 2023-03-16 Arris Enterprises Llc Systems and methods for narrowing the scope of a problem when a modem is bricked
WO2021262160A1 (en) * 2020-06-24 2021-12-30 Hewlett-Packard Development Company, L.P. Bios backup
KR20220079221A (ko) * 2020-12-04 2022-06-13 에스케이하이닉스 주식회사 저장 장치 및 컴퓨팅 시스템

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070169088A1 (en) * 2006-01-13 2007-07-19 Dell Products, L.P. Automatic firmware corruption recovery and update
TW201523277A (zh) * 2013-12-06 2015-06-16 Inventec Corp 伺服器系統與節點偵測方法
TW201523447A (zh) * 2013-12-11 2015-06-16 Inventec Corp 伺服器系統與韌體更新方法
RU2583714C2 (ru) * 2013-12-27 2016-05-10 Закрытое акционерное общество "Лаборатория Касперского" Агент безопасности, функционирующий на уровне встроенного программного обеспечения, с поддержкой безопасности уровня операционной системы
TW201715387A (zh) * 2015-10-30 2017-05-01 廣達電腦股份有限公司 基本輸入輸出系統回復管理系統、電腦程式產品 以及基本輸入輸出系統回復方法
TW201715395A (zh) * 2015-10-16 2017-05-01 廣達電腦股份有限公司 基板管理控制器的回復方法及基板管理控制器
US20180322012A1 (en) * 2017-05-05 2018-11-08 Dell Products L.P. Systems and methods for detection of firmware image corruption and initiation of recovery
TW202004496A (zh) * 2018-05-22 2020-01-16 廣達電腦股份有限公司 透過遠端工具程式更新靭體的方法、電腦系統以及非暫態電腦可讀取媒體

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934873B2 (en) 2002-02-28 2005-08-23 Dell Products L.P. Automatic BIOS recovery in a multi-node computer system
US20040030877A1 (en) 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware
US7673301B1 (en) * 2003-02-26 2010-03-02 American Megatrends, Inc. Methods and systems for updating and recovering firmware within a computing device over a distributed network
US7809836B2 (en) 2004-04-07 2010-10-05 Intel Corporation System and method for automating bios firmware image recovery using a non-host processor and platform policy to select a donor system
FR2913295B1 (fr) * 2007-03-02 2010-09-10 Sagem Comm Procede de telechargement dans un boitier recepteur/ decodeur de television.
US7865775B2 (en) * 2008-03-27 2011-01-04 Intel Corporation Remote firmware recovery
US8566571B2 (en) 2008-12-12 2013-10-22 Novell, Inc. Pre-boot securing of operating system (OS) for endpoint evaluation
US8776233B2 (en) * 2010-10-01 2014-07-08 Mcafee, Inc. System, method, and computer program product for removing malware from a system while the system is offline
CN103946806B (zh) * 2011-09-29 2017-06-16 英特尔公司 用于提供存储器访问控制的装置、系统和方法
CN102439565B (zh) 2011-10-28 2013-04-24 华为技术有限公司 启动恢复的方法和装置
US9256744B2 (en) * 2012-04-10 2016-02-09 Asmedia Technology Inc. System-on-chip and booting method thereof
US8972973B2 (en) 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
EP3028141B1 (en) * 2013-07-31 2020-01-08 Hewlett-Packard Development Company, L.P. Generating a second code from a first code
JP6073854B2 (ja) * 2014-12-26 2017-02-01 京セラドキュメントソリューションズ株式会社 電子機器及びファームウェア復旧プログラム
US9742568B2 (en) 2015-09-23 2017-08-22 Dell Products, L.P. Trusted support processor authentication of host BIOS/UEFI
US10740109B2 (en) * 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
US10395038B2 (en) * 2018-02-01 2019-08-27 Quanta Computer Inc. System and method for automatic recovery of firmware image
US11182148B2 (en) 2018-03-13 2021-11-23 Dell Products L.P. System and method for automated BIOS recovery after BIOS corruption
US10599419B2 (en) 2018-05-03 2020-03-24 Dell Products L.P. Secure firmware updates using virtual machines to validate firmware packages
US10747526B2 (en) 2018-06-21 2020-08-18 Dell Products, L.P. Apparatus and method to execute prerequisite code before delivering UEFI firmware capsule
US10776488B2 (en) * 2018-09-24 2020-09-15 Dell Products L.P. Extend root of trust to include firmware of individual components of a device
US10853179B2 (en) * 2018-12-21 2020-12-01 Dell Products L.P. Information handling system and method for restoring firmware in one or more regions of a flash memory device
US11947675B2 (en) * 2019-02-11 2024-04-02 Hewlett-Packard Development Company, L.P. Restoration of firmware subsystems based on manufacturing states
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
JP7425797B2 (ja) * 2019-06-10 2024-01-31 グーグル エルエルシー ファームウェアのセキュアな検証
US11314866B2 (en) * 2019-11-25 2022-04-26 Dell Products L.P. System and method for runtime firmware verification, recovery, and repair in an information handling system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070169088A1 (en) * 2006-01-13 2007-07-19 Dell Products, L.P. Automatic firmware corruption recovery and update
TW201523277A (zh) * 2013-12-06 2015-06-16 Inventec Corp 伺服器系統與節點偵測方法
TW201523447A (zh) * 2013-12-11 2015-06-16 Inventec Corp 伺服器系統與韌體更新方法
RU2583714C2 (ru) * 2013-12-27 2016-05-10 Закрытое акционерное общество "Лаборатория Касперского" Агент безопасности, функционирующий на уровне встроенного программного обеспечения, с поддержкой безопасности уровня операционной системы
TW201715395A (zh) * 2015-10-16 2017-05-01 廣達電腦股份有限公司 基板管理控制器的回復方法及基板管理控制器
TW201715387A (zh) * 2015-10-30 2017-05-01 廣達電腦股份有限公司 基本輸入輸出系統回復管理系統、電腦程式產品 以及基本輸入輸出系統回復方法
US20180322012A1 (en) * 2017-05-05 2018-11-08 Dell Products L.P. Systems and methods for detection of firmware image corruption and initiation of recovery
TW202004496A (zh) * 2018-05-22 2020-01-16 廣達電腦股份有限公司 透過遠端工具程式更新靭體的方法、電腦系統以及非暫態電腦可讀取媒體

Also Published As

Publication number Publication date
EP4097593A4 (en) 2023-10-04
WO2021154200A1 (en) 2021-08-05
EP4097593A1 (en) 2022-12-07
TW202131170A (zh) 2021-08-16
CN115176232A (zh) 2022-10-11
US12099612B2 (en) 2024-09-24
US20230087221A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
US10353779B2 (en) Systems and methods for detection of firmware image corruption and initiation of recovery
TWI764454B (zh) 韌體損壞恢復技術
TWI584196B (zh) 基本輸入輸出系統回復管理系統、電腦程式產品 以及基本輸入輸出系統回復方法
US10853179B2 (en) Information handling system and method for restoring firmware in one or more regions of a flash memory device
US10866623B2 (en) Information handling system and method to detect and recover from no power/no post failures
US8601255B2 (en) Approaches for updating bios
EP2831722B1 (en) Method and system for verifying proper operation of a computing device after a system change
US9846616B2 (en) Boot recovery system
US9910664B2 (en) System and method of online firmware update for baseboard management controller (BMC) devices
CN105917306B (zh) 用于配置系统固件配置数据的系统和方法
US11144328B2 (en) System method to update failover process by running basic input/output (BIOS) system boot code from non-volatile memory express device (NVME)
US20040172578A1 (en) Method and system of operating system recovery
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
US11704197B2 (en) Basic input/output system (BIOS) device management
US11030047B2 (en) Information handling system and method to restore system firmware to a selected restore point
US10824517B2 (en) Backup and recovery of configuration files in management device
US20210248038A1 (en) Time keeping system and method therefor
US11704198B2 (en) Method and apparatus for providing recovery from a computing device boot up error
JP2010224847A (ja) 計算機システム及び設定管理方法
CN104572354A (zh) 基于恢复服务的操作系统备份和恢复的方法及其设备
JP2015060411A (ja) 情報処理装置のファームウェア更新方法
TWI777664B (zh) 嵌入式系統的開機方法
US11354109B1 (en) Firmware updates using updated firmware files in a dedicated firmware volume
WO2022050938A1 (en) Firmware event recovery
US20240338194A1 (en) Computer network and method of automatic updating firmware to peripheral device using unified extensible firmware interface