馮憲光
摘要:分區(qū)表易被破壞而導(dǎo)致數(shù)據(jù)丟失,針對這種情況,通過分析硬盤的邏輯參數(shù)和硬盤的兩種尋址模式,提出了一種通過恢復(fù)分區(qū)表從而恢復(fù)數(shù)據(jù)的解決辦法。在重點剖析了硬盤分區(qū)結(jié)構(gòu)的基礎(chǔ)上,介紹了MBR和EBR的恢復(fù)原理,闡述了分區(qū)表恢復(fù)的詳細過程,給出了恢復(fù)分區(qū)表的實現(xiàn)方案,經(jīng)測試可以成功恢復(fù)因分區(qū)表被破壞而丟失數(shù)據(jù)。
關(guān)鍵詞:數(shù)據(jù)恢復(fù);分區(qū)表;MBR EBR LBA
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2012)05-1164-02
自2000年以來,計算機的應(yīng)用全球普及,信息化飛速發(fā)展,作為信息數(shù)據(jù)的最重要載體-硬盤,由于本身原因和人為誤操作不可避免的出現(xiàn)了損壞,進爾數(shù)據(jù)丟失。數(shù)據(jù)恢復(fù)是指依靠技術(shù)手段將存儲于故障存儲介質(zhì)上的文件攻取出來的過程。
計算機數(shù)據(jù)主要以磁盤存儲,硬盤是最主要的存儲設(shè)備,因硬盤特點,如硬盤的物理故障、用戶的誤操作、病毒等會導(dǎo)致分區(qū)表損壞、文件誤刪除等等。數(shù)據(jù)丟失大部分是由于分區(qū)表損壞造成的,而數(shù)據(jù)本身并沒有被破壞,所以只要恢復(fù)分區(qū)表即可找回丟失的數(shù)據(jù)。本課題從分析硬盤分區(qū)表存儲原理入手闡述分區(qū)表恢復(fù)過程從而實現(xiàn)數(shù)據(jù)恢復(fù)的方法。
1硬盤的數(shù)據(jù)存儲結(jié)構(gòu)
現(xiàn)在硬盤多數(shù)是一個盤片,少數(shù)是兩個盤片,表面進行格式化,劃分磁道、扇區(qū),磁道由內(nèi)向外從0開始依次編號,扇區(qū)從1開始編號,扇區(qū)是最小的存儲單元,第個扇區(qū)512字節(jié),同時編號相同的磁道又稱為柱面。每個盤片有兩個面,都用來存儲數(shù)據(jù),每個面對應(yīng)一個磁頭,磁頭數(shù)對應(yīng)著磁面數(shù),數(shù)據(jù)的讀寫按柱面進行的,先從同一柱面的0號磁頭開始以扇區(qū)為單位進行讀寫操作,同一柱面上的所有磁頭讀寫完成后才開始下一磁頭。
為方便硬盤讀寫操作,為每個扇區(qū)進行編號,方式有兩種,一種是按物理地址方式:柱面/磁頭/扇區(qū),簡稱C/H/S(Cylinde/Head/ Sector),隨著硬盤的容量增大,每磁道上的扇區(qū)按等密度結(jié)構(gòu)劃分,讀寫操作方式按新的尋找址方式-LBA,每個扇區(qū)都按某種規(guī)則編號,從0開始。在磁盤內(nèi)部定位到某扇區(qū)進可進行LBA到CHS的轉(zhuǎn)換:LBA=C×255×63+H×63+(S-1)。
2硬盤的分區(qū)
硬盤必須先分區(qū)再使用,分區(qū)類型分為主分區(qū)、擴展分區(qū),在擴展分區(qū)中包含邏輯分區(qū),主分區(qū)和擴展分區(qū)總數(shù)最多僅有4個。分區(qū)后硬盤的第一扇區(qū)保存主引導(dǎo)記錄(MBR),512字節(jié),包括引導(dǎo)程序、分區(qū)表和引導(dǎo)標志。
MBR的分區(qū)表存儲了每個分區(qū)占16個字節(jié)的四個分區(qū)信息,包括1個字節(jié)的活動分區(qū)標志、3個字節(jié)的起始扇區(qū)地址、1個字節(jié)的分區(qū)類型、3個字節(jié)的分區(qū)結(jié)束扇區(qū)CHS地址、4個字節(jié)的分區(qū)起始LBA地址和4個字節(jié)的分區(qū)大小。
MBR最多表現(xiàn)4個分區(qū)的信息,用EBR描述4個分區(qū)外的擴展分區(qū),是一個指向下一個分區(qū)表的指針,實際上下一個分區(qū)也不只一個,則EBR是一個分區(qū)和指向下一個分區(qū)的指針。常見的分區(qū)結(jié)構(gòu)如圖1:
圖1分區(qū)結(jié)構(gòu)圖
3分區(qū)表的恢復(fù)
當分區(qū)表破壞,主要是分區(qū)表指針鏈表被破壞,產(chǎn)生斷開,這時該分區(qū)將不能被操作系統(tǒng)識別,進爾這個分區(qū)的數(shù)據(jù)將無法訪問,這種情況下的數(shù)據(jù)恢復(fù)就是分區(qū)表的恢復(fù)。
常見的分區(qū)表破壞是由于人為的誤操作和惡意病毒所至。當MBR破壞后,操作系統(tǒng)會無法引導(dǎo),也就是進入不了系統(tǒng),同時硬盤的原有分區(qū)就找不到了,若EBR被破壞,則會出現(xiàn)部分分區(qū)訪問不到。雖然可以將此硬盤掛到其它機器上,用其操作系統(tǒng)識別硬盤,可以對該硬盤進行初臺化,用軟件方式可以修復(fù)其引導(dǎo)代碼,但分區(qū)信息仍需要手動恢復(fù)。
3.1 MBR修復(fù)
MBR破壞后一般只損壞MBR分區(qū)信息,這樣不能找到主分區(qū)和擴展分區(qū),一般邏輯分區(qū)沒有被破壞,只要修復(fù)MBR的分區(qū)信息即可。
分區(qū)信息中主要是起始扇區(qū)地址和分區(qū)大小,一般硬盤有一個主分區(qū)和一個擴展分區(qū),擴展分區(qū)中再包含多個邏輯分區(qū),主分區(qū)起始位置是63個扇區(qū)來保留MBR,主分區(qū)的大小需找到EBR后才能計算。
方法一:用DiskGenuis的分區(qū)恢復(fù)功能,打印硬盤,搜索固定分區(qū)或整個硬件,若能找到分區(qū),并顯示分區(qū)內(nèi)的內(nèi)容,說明分區(qū)查找正常,可保存來恢復(fù)分區(qū)信息。
方法二:用WinHex磁盤編輯器打開硬盤,通過搜索固定位置的“55AA”標志找到第一個EBR,同時注意區(qū)分是否是正確的EBR扇區(qū),計算方法:
主分區(qū)大小=第一個EBR的LBA地址- 63
擴展分區(qū)大小=硬盤總大小-第一個EBR的LBA地址
通過上面算法可以確定主分區(qū)信息和擴展分區(qū)信息。分區(qū)表的分區(qū)類型通過搜索邏輯驅(qū)動器的起始扇區(qū)確定,是操作系統(tǒng)進入文件系統(tǒng)后訪問的第一個扇區(qū),該扇區(qū)的標志是第一個字節(jié)是“EB”,0x03-0x0A為文件系統(tǒng)類型,對于擴展分區(qū)分區(qū)類型為05。在WinHex中計算出的數(shù)值和分區(qū)類型輸入,MBR分區(qū)恢復(fù)完成。
3.2 EBR修復(fù)
EBR是記錄擴展分區(qū)的地址的指針,被破壞后,擴展分區(qū)斷開,則邏輯分區(qū)無法識別。分析一下EBR的分區(qū)信息。EBR分區(qū)表有兩個信息:一個記錄邏輯分區(qū)的起始扇區(qū)的LBA地址和邏輯分區(qū)大小。若存在第二個邏輯分區(qū),則第二條分區(qū)信息記錄下一個EBR的LBA地址和下一個邏輯分區(qū)的大小。
因一般情況下硬盤有一個主分區(qū)和一個擴展分區(qū),擴展分區(qū)中包含多人邏輯分區(qū)。則邏輯分區(qū)的起始扇區(qū)地址和大小的公式:
當前邏輯分區(qū)大小=上一個擴展分區(qū)大小–63
當前分區(qū)的起始LBA =下一個EBR的LBA–63
通過搜索之前和之后的EBR,將當前EBR的分區(qū)信息計算出來,搬運恢復(fù)斷開的擴展分區(qū)鏈表。
4結(jié)束語
在MBR和EBR修復(fù)中,根據(jù)以下信息:一個EBR扇區(qū)的結(jié)束標記是“55AA”,另一個是EBR扇區(qū)的偏移446-477間的分區(qū)信息必須是合法的,最后邏輯分區(qū)的起始扇區(qū)是否合法。
在進行分區(qū)恢復(fù)中要了解MBR和EBR的結(jié)構(gòu),認識分區(qū)表基本原理,總結(jié)出分給表恢復(fù)方案,在發(fā)表此文后,作為研究課題繼續(xù)完善和擴展該方案,以解決分區(qū)丟失的數(shù)據(jù)恢復(fù),進一步解決硬盤分區(qū)交錯等復(fù)雜情形下的數(shù)據(jù)恢復(fù)。
參考文獻:
[1]魯恩銘.硬盤格式化數(shù)據(jù)恢復(fù)技術(shù)研究與實現(xiàn)[D].中國優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫,2009(2).
[2]王強.Windows平臺下磁盤數(shù)據(jù)恢復(fù)技術(shù)的研究與實現(xiàn)[D].中國優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫,2008(1).
[3]朱珍民,黎慧,魏丕武,等.硬盤數(shù)據(jù)邏輯結(jié)構(gòu)及其數(shù)據(jù)恢復(fù)[J].湘潭大學(xué)自然科學(xué)學(xué)報, 2000(2) .
[4]戴士劍,涂彥暉.數(shù)據(jù)恢復(fù)技術(shù)[M].北京:電子工業(yè)出版社,2008(7).