專利名稱:可擴展固件接口下硬盤測試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種硬盤測試方法,特別涉及一種可擴展固件接口 (EFI) 系統(tǒng)運行環(huán)境下的硬盤測試方法。
背景技術(shù):
硬盤裝置為計算機的主要部件,是計算機儲存系統(tǒng)中最為重要的裝置, 不僅具有記錄數(shù)據(jù)信息的作用,其性能還對整個計算機系統(tǒng)的性能有直接的 影響。硬盤作為儲存設(shè)備,其是否存在損壞區(qū)域就是顯示其性能的重要指標。 因此,能否全面測試整個磁盤的儲存空間則為目前技術(shù)的一個亟待解決的問 題。
在可擴展固件接口 (EFI, Extensible Firmware Interface)外殼的測試環(huán) 境下,對硬盤的儲存區(qū)域進行讀寫時,當讀到某些可擴展固件接口系統(tǒng)占據(jù) 的扇區(qū)時,如果安裝普通文件的處理方式進行直接讀寫,則由于可擴展固件 接口沒有對這些系統(tǒng)文件進行保護,因此結(jié)果會導致整個系統(tǒng)的崩潰。因此 需要對系統(tǒng)文件區(qū)域進行保護,如此則需要因為系統(tǒng)本身原因而在硬盤上儲 存相關(guān)的系統(tǒng)文件,儲存的系統(tǒng)文件會占據(jù)一定硬盤空間,因此在測試這些 系統(tǒng)文件及其它文件占據(jù)的儲存空間時,很難實現(xiàn)儲存空間的全面測試。
發(fā)明內(nèi)容
為了解決上述公知技術(shù)中的問題與缺陷,本發(fā)明的目的在于提供一種可 擴展固件接口下硬盤測試方法,以能夠既保護計算機系統(tǒng)的安全,又能實現(xiàn) 整個硬盤的全面測試。
為此,本發(fā)明所提供的可擴展固件接口下硬盤測試方法,其應(yīng)用于可擴 展固件界面環(huán)境中,并包含以下步驟備份一硬盤的可擴展固件接口 (EFI)
的系統(tǒng)文件至一存儲器中一存放區(qū)域中;映像系統(tǒng)文件的備份區(qū)域為一具體
硬盤;于此存儲器中建立一非系統(tǒng)文件的存放區(qū)域,用于存放硬盤測試的文
件區(qū)域中的非系統(tǒng)文件;獲取系統(tǒng)文件與硬盤測試的非系統(tǒng)文件的信息,分 別生成一系統(tǒng)文件鏈表及一非系統(tǒng)文件鏈表;執(zhí)行硬盤測試時,備份硬盤測 試的非系統(tǒng)文件至非系統(tǒng)文件存放區(qū)域中;以及訪問系統(tǒng)文件鏈表及/或非系 統(tǒng)文件鏈表,以直接自存儲器的存放區(qū)域中加載該系統(tǒng)文件及/或硬盤測試的非系統(tǒng)文件。
所述的可擴展固件接口下硬盤測試方法中,所述備份該可擴展固件接口 系統(tǒng)文件的步驟還包含如下步驟獲取該系統(tǒng)文件的大小及儲存路徑;計算 該系統(tǒng)文件的占據(jù)空間大小,以分配相應(yīng)的存儲器存放區(qū)域;以及存放該系 統(tǒng)文件至該存儲器的存放區(qū)域中。
所述的可擴展固件接口下硬盤測試方法中,當重新加載新的硬盤測試的非系統(tǒng)文件至該存儲器的非系統(tǒng)文件存放區(qū)域中時,包含依照該新的非系統(tǒng) 文件的信息更新該非系統(tǒng)文件鏈表的步驟。
所述的可擴展固件接口下硬盤測試方法中,還包含依照該硬盤測試的文件區(qū)域大小擴充該非系統(tǒng)文件存放區(qū)域的步驟。
所述的可擴展固件接口下硬盤測試方法中,還包含在該硬盤測試完畢后恢復該存儲器中該備份系統(tǒng)文件及/或該備份非系統(tǒng)文件至該硬盤中的步驟。
所述的可擴展固件接口下硬盤測試方法中,還包含在該非系統(tǒng)文件存放區(qū)域中預先設(shè)置一預留存儲器的步驟。
本發(fā)明通過備份可擴展固件接口系統(tǒng)運行時所需的系統(tǒng)配置文件及測 試硬盤區(qū)塊對應(yīng)的非系統(tǒng)文件至存儲器區(qū)域中,以及建立系統(tǒng)文件與非系統(tǒng) 文件的鏈表,測試時則能夠直接從存儲器中加載對應(yīng)測試文件,避免對硬盤 的讀寫操作。因此,本發(fā)明不僅可加快測試的速度,還保護系統(tǒng)不受到破壞, 同時又能夠?qū)崿F(xiàn)硬盤的全面測試。
圖1為本發(fā)明的可擴展固件接口下硬盤測試方法中硬盤儲存示意圖;以及
圖2、圖3及圖4為本發(fā)明的可擴展固件接口下硬盤測試方法的方法流程圖。
其中,附圖標記說明如下10 存儲器
12 系統(tǒng)文件存放區(qū)域
14 非系統(tǒng)文件存放區(qū)域
16 非系統(tǒng)文件
18 預留存儲器
20 硬盤
22 系統(tǒng)文件
24 非系統(tǒng)文件
步驟102獲取系統(tǒng)文件信息,生成系統(tǒng)文件鏈表
步驟104計算系統(tǒng)文件占據(jù)的空間,分配相應(yīng)存儲器空間,并存放系 統(tǒng)文件至存儲器
步驟106映像存放系統(tǒng)文件的存儲器區(qū)域為系統(tǒng)盤
步驟108建立非系統(tǒng)文件存放區(qū)域
步驟110判斷硬盤是否已測試完畢?
步驟112獲取非系統(tǒng)文件信息,生成非系統(tǒng)文件鏈表
步驟114讀入部分非系統(tǒng)文件至非系統(tǒng)文件存放區(qū)域
步驟116測試硬盤上已經(jīng)備份的區(qū)域
步驟118非系統(tǒng)文件存放區(qū)域是否有日志文件?
步驟120設(shè)定日志部分的儲存存儲器區(qū)域為可寫
步驟122運行測試程序
步驟124是否需要讀出硬盤中的文件?
步驟126硬盤中的文件已經(jīng)備份于存儲器中
步驟128自存儲器中加載所需文件
步驟130自硬盤中加載所需文件
步驟132是否需要讀寫存儲器中日志文件?
步驟134是否此區(qū)域為可寫區(qū)域?
步驟136是否此區(qū)域己達到備份區(qū)域的邊界?
步驟138是否區(qū)域已經(jīng)達到系統(tǒng)允許最大值?
步驟140擴大備份區(qū)域
步驟142寫入日志文件內(nèi)容并保存步驟144是否已測試完備份的硬盤區(qū)域? 步驟146繼續(xù)運行測試程序
具體實施例方式
有關(guān)本發(fā)明的特征與實例,在此配合附圖作最佳實施例詳細說明如下。
請參考圖1及圖2至圖4,其中圖1為本發(fā)明的可擴展固件接口下硬盤 測試方法中硬盤儲存示意圖,圖2至圖4為本發(fā)明的可擴展固件接口下硬盤 測試方法的方法流程圖。
請參考圖2,首先獲取可擴展固件接口系統(tǒng)的系統(tǒng)文件,以生成系統(tǒng)文 件鏈表(步驟102)。系統(tǒng)文件的定義為,在可擴展固件接口系統(tǒng)運行時, 需要建立可擴展固件接口程序能夠運行的環(huán)境,包含訪問各種設(shè)備的驅(qū)動程 序,系統(tǒng)運行時的配置文件,這些文件為系統(tǒng)運行時所必需的,不能夠有所 損壞,否則整個系統(tǒng)將會崩潰。如背景技術(shù)所提到,在可擴展固件接口的測 試環(huán)境下,由于沒有存在對系統(tǒng)文件的保護,若直接讀寫硬盤中系統(tǒng)文件則 會導致系統(tǒng)的崩潰。因此,這里本發(fā)明對這些系統(tǒng)文件進行保護,將系統(tǒng)文 件備份至一存儲器中。在備份系統(tǒng)文件時,采取文件備份而非分區(qū)備份,以 減少備份空間的浪費,并減小文件恢復時的難度。
通過掃描硬盤獲取硬盤的相關(guān)信息,進而獲知硬盤上具有的系統(tǒng)文件類 型,及占用區(qū)域。依照這些數(shù)據(jù)采集文件大小及儲存路徑,形成一文件鏈表 來儲存各自的信息,并以此計算儲存文件所需的存儲器空間。然后,分配相 應(yīng)存儲器空間,以存放系統(tǒng)文件至其中(步驟104)。請參考圖1所示的實 施例,存儲器10中具有一系統(tǒng)文件存放區(qū)域12,在硬盤20中的系統(tǒng)文件 22的內(nèi)容全部備份于存儲器的系統(tǒng)文件存放區(qū)域12之后,映像系統(tǒng)文件的 存儲器存放區(qū)域12為具體的硬盤(步驟106)。待系統(tǒng)測試完畢后,可以將 此部分內(nèi)容再恢復至硬盤中。
對于硬盤測試的非系統(tǒng)文件,則于存儲器中建立一非系統(tǒng)文件存放區(qū)域 14 (步驟108),用以存放備份至存儲器中的測試非系統(tǒng)文件16。非系統(tǒng)文 件24為除去可擴展固件接口系統(tǒng)運行的系統(tǒng)文件之外的其余文件,保護- 些系統(tǒng)日志、輔助工具及診斷程序等。非系統(tǒng)文件分散存放于硬盤的其它分 區(qū)中,其占據(jù)較大空間,若同時存放系統(tǒng)文件22與非系統(tǒng)文件24至存儲器1O中是非常困難的。因此劃分出一部分存儲器空間,即非系統(tǒng)文件存放區(qū)域
14作為非系統(tǒng)文件24的儲存空間,僅當需要測試這些文件時才備份至其中。 此外,為了保證以后信息的儲存,還可以在非系統(tǒng)文件存放區(qū)域14中預先 設(shè)置一部分預留存儲器18,以防止以后的訪問出現(xiàn)空間不足的問題。
在完成上述系統(tǒng)文件及非系統(tǒng)文件的備份步驟之后,則可以執(zhí)行硬盤的 測試。測試時判斷硬盤是否己經(jīng)測試完畢(步驟110),若是則結(jié)束,否則, 獲取硬盤測試區(qū)塊的非系統(tǒng)文件信息,并生成非系統(tǒng)文件鏈表(步驟112)。 將此部分非系統(tǒng)文件讀入至非系統(tǒng)文件存放區(qū)域中(步驟114),并測試硬 盤上已經(jīng)備份至存儲器中區(qū)域(步驟116)。在測試時,可進一步判斷非系 統(tǒng)文件存放區(qū)域中是否有日志文件(步驟118)。若存在,則設(shè)定日志部分 的儲存存儲器區(qū)域為可寫(步驟120);否則,直接運行測試程序(步驟122)。
然后,判斷是否需要讀出硬盤中的文件(步驟124),若需要則進一步 判斷是否硬盤中需測試的文件已經(jīng)備份于存儲器中(步驟126);否則,前 進至步驟132。若文件已備份于存儲器中,則自存儲器中加載所需的文件(步 驟128);否則,自硬盤中加載所需文件(步驟130)。在加載存儲器的文 件時,通過對儲存在存儲器中的系統(tǒng)文件及非文件系統(tǒng)進行訪問時形成的動 態(tài)鏈表,可記錄當前的儲存情況。當訪問某個文件時,首先訪問此系統(tǒng)文件 鏈表或非系統(tǒng)文件鏈表,若文件記錄于上述鏈表中,則表明此文件儲存于存 儲器中。因此,訪問時不需從硬盤中讀取,而是直接自存儲器中加載此文件, 進而加快了測試的速度。
此外,為了防止對重要文件執(zhí)行了錯誤操作,需要對這些文件進行保護, 進而將文件的備份區(qū)域設(shè)定為只讀屬性。在執(zhí)行備份內(nèi)容至存儲器中的操作 時,為了保護測試內(nèi)容,首先判斷設(shè)定屬性是否寫保護。若沒有相應(yīng)限制才 可以對此區(qū)域進行寫操作。同時,為了防止操作區(qū)域發(fā)生越界,導致硬盤在 測試完成時不能完整的恢復,要判斷操作區(qū)域是否越界,并對超出界限的存 儲器空間進行擴充。例如,當對日志文件進行儲存時,判斷是否需要讀寫存 儲器中的日志文件(步驟132),若不需要,則前進至步驟144;否則,接 著判斷日志文件的儲存存儲器區(qū)域是否為可寫區(qū)域(步驟134)。若不可寫, 則系統(tǒng)報錯退出而結(jié)束;如果可寫,日志文件會隨著寫入內(nèi)容的增加而Ji加,因此當內(nèi)容增加時需要進一步判斷日志儲存區(qū)域是否已達到備份區(qū)i的邊界(步驟136)。若是,則接著判斷非系統(tǒng)文件的備份區(qū)域是否超出系統(tǒng)存 儲器允許的最大值(步驟138),若沒有超出存儲器的最大值,則對非系統(tǒng) 文件的備份區(qū)域進行擴充(步驟140)。存儲器擴充可采用漸進的方式,例 如,為了考慮既不浪費系統(tǒng)存儲器資源,又能夠很好地擴充備份區(qū)域,可設(shè) 定每次擴充所占有的存儲器為1M字節(jié)。換言之,在這種情況下,當非系統(tǒng) 文件的備份區(qū)域容量增加1M字節(jié)后,再判斷備份區(qū)域是否超過系統(tǒng)存儲器 的最大值。若超出,則報告錯誤;否則,將非系統(tǒng)文件備份區(qū)域擴充1M字
在擴充備份區(qū)域后,寫入日志文件內(nèi)容并保存(步驟142)。測試過程 中需判斷備份的硬盤區(qū)域是否測試完畢(步驟144),若硬盤測試完畢,則 結(jié)束。若測試沒有結(jié)束,則繼續(xù)運行測試程序(步驟146),并重復步驟122 至步驟144。同時,在完成硬盤某區(qū)塊區(qū)域的測試后,需要重新加載新的測 試文件至存儲器的非系統(tǒng)文件備份區(qū)域中,并將存儲器中備份的文件還原至 硬盤中。并且在加載新文件的同時,依照新的文件信息更新非系統(tǒng)文件鏈表 來記錄這些文件信息。需要指出的是,上述步驟中日志文件僅為非系統(tǒng)文件 的實施例,本發(fā)明并不局限于上述實施例,包含日志文件的各種非系統(tǒng)文件 均執(zhí)行上述相應(yīng)步驟,進行文件保護及存儲器擴充。
雖然本發(fā)明以前述的較佳實施方式披露如上,然其并非用以限定本發(fā) 明。本領(lǐng)域的技術(shù)人員應(yīng)當意識到在不脫離本發(fā)明所附的權(quán)利要求書所揭示 的本發(fā)明的范圍和精神的情況下,所作的變動與修飾,均屬本發(fā)明的保護范 圍之內(nèi)。關(guān)于本發(fā)明所界定的保護范圍請參考所附的權(quán)利要求書。
權(quán)利要求
1.一種可擴展固件接口下硬盤測試方法,其應(yīng)用于可擴展固件界面環(huán)境中,該方法包含以下步驟備份一硬盤的可擴展固件接口的系統(tǒng)文件至一存儲器中的一存放區(qū)域中;映像該系統(tǒng)文件的備份區(qū)域為一具體硬盤;于該存儲器中建立一非系統(tǒng)文件的存放區(qū)域,用于存放該硬盤測試的文件區(qū)域中的非系統(tǒng)文件;獲取該系統(tǒng)文件與該硬盤測試的非系統(tǒng)文件的信息,分別生成一系統(tǒng)文件鏈表及一非系統(tǒng)文件鏈表;執(zhí)行該硬盤測試時,備份該硬盤測試的非系統(tǒng)文件至該非系統(tǒng)文件的存放區(qū)域中;以及訪問該系統(tǒng)文件鏈表及/或該非系統(tǒng)文件鏈表,以直接自該存儲器的存放區(qū)域中加載該系統(tǒng)文件及/或該硬盤測試的非系統(tǒng)文件。
2. 如權(quán)利要求1所述的可擴展固件接口下硬盤測試方法,其中所述備份 該可擴展固件接口系統(tǒng)文件的步驟還包含如下步驟獲取該系統(tǒng)文件的大小及儲存路徑;計算該系統(tǒng)文件的占據(jù)空間大小,以分配相應(yīng)的存儲器存放區(qū)域;以及 存放該系統(tǒng)文件至該存儲器的存放區(qū)域中。
3. 如權(quán)利要求1所述的可擴展固件接口下硬盤測試方法,其中當重新加 載新的硬盤測試的非系統(tǒng)文件至該存儲器的非系統(tǒng)文件存放區(qū)域中時,包含 依照該新的非系統(tǒng)文件的信息更新該非系統(tǒng)文件鏈表的步驟。
4. 如權(quán)利要求1所述的可擴展固件接口下硬盤測試方法,其中還包含依 照該硬盤測試的文件區(qū)域大小擴充該非系統(tǒng)文件的存放區(qū)域的步驟。
5. 如權(quán)利要求1所述的可擴展固件接口下硬盤測試方法,其中還包含在 該硬盤測試完畢后恢復該存儲器中該備份系統(tǒng)文件及/或該備份非系統(tǒng)文件 至該硬盤中的步驟。
6. 如權(quán)利要求1所述的可擴展固件接口下硬盤測試方法,其中還包含在 該非系統(tǒng)文件的存放區(qū)域中預先設(shè)置一預留存儲器的步驟。
全文摘要
一種可擴展固件接口(EFI)下硬盤測試方法,包含以下步驟備份硬盤的可擴展固件接口的系統(tǒng)文件至存儲器中的存放區(qū)域中;映像系統(tǒng)文件的備份區(qū)域為一具體硬盤;于存儲器中建立一非系統(tǒng)文件的存放區(qū)域,用于存放硬盤測試的文件區(qū)域中的非系統(tǒng)文件;獲取系統(tǒng)文件與硬盤測試的非系統(tǒng)文件的信息,分別生成一系統(tǒng)文件鏈表及一非系統(tǒng)文件鏈表;執(zhí)行硬盤測試時,備份硬盤測試的非系統(tǒng)文件至非系統(tǒng)文件的存放區(qū)域中;以及訪問系統(tǒng)文件鏈表及/或非系統(tǒng)文件鏈表,以直接自存儲器的存放區(qū)域中加載系統(tǒng)文件及/或硬盤測試的非系統(tǒng)文件。本發(fā)明不僅可加快測試的速度,還保護系統(tǒng)不受到破壞,同時又能夠?qū)崿F(xiàn)硬盤的全面測試。
文檔編號G06F11/22GK101201778SQ20061016880
公開日2008年6月18日 申請日期2006年12月14日 優(yōu)先權(quán)日2006年12月14日
發(fā)明者劉文涵, 志 王, 陳玄同 申請人:英業(yè)達股份有限公司