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