查看單個文章
舊 2003-05-19, 09:27 AM   #3 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

一次硬碟資料恢復的經驗

硬碟作為用戶存儲資料的主要場所,其最大的用途莫過於存儲資料,但有時往往由於用戶操作不甚等原因,造成用戶資料的丟失。如果對於普通用戶,資料對用戶相對而言並不重要,那麼丟了就丟了,沒太大關係;但如果資料對用戶很重要(對於這類用戶,AWU推薦應經常制作備份資料),這時資料丟失了怎麼辦呢?此文就是通過一次對硬碟資料的恢復程序分析來簡要說明一下硬碟資料恢復的大概方法,希望對大家恢復硬碟資料有一定的積極作用。


相關概念:

  MBR(MAIN BOOT RECORD)即主引導記錄區,它位於整個硬碟的0磁道0柱面1扇區,包括硬碟引導程序和分區表。

  DBR(DOS BOOT RECORD)即操作系統引導記錄區,通常位於硬碟的0磁道1柱面1扇區,是操作系統可直接訪問的第一個扇區,它也包括一個引導程序和一個被稱為BPB(BIOS PARAMETER BLOCK)的本分區參數記錄表。每個邏輯分區都有一個DBR。

  FAT(file allocation table)即文件分配表,是dos,windows9X系統的文件尋址格式,為了資料安全起見,FAT一般做兩個, 二FAT為第一FAT的制作備份。

  DIR 是DIRECTORY即根目錄區的簡寫,DIR緊接在第二FAT表之後。

估計資料丟失原因:

  1、安裝多系統引導軟體後,異常操作造成。

  2、遭到某種病毒感染。 資料丟失前狀態:2.5G 硬碟,原分區為:C:2G + D:500M,D碟裝有重要資料。兩分區均為FAT16格式。

資料丟失程序:

  一次系統重啟後,D碟丟失。

資料丟失後的操作:

  該客戶曾用FDISK重新分區,試圖按原分區大小再造分區,未果。但沒有格式化D碟,只格式化了C碟並重裝系統。

客戶的資料修復要求:

  恢復D碟根目錄下"數位相機"目錄內所有文件。

所用工具:

  NORTON DISK DOCTOR:diskedit.exe

資料修復程序:

  一、 資料制作備份:主要包括物理0磁道各扇區,各分區邏輯0磁道,FAT表和根目錄區等,再配以GHOST制作備份各分區的資料區。

  二、 分析該硬碟的主啟始扇區MBR(包括主分區表和引導程序)、各分區的啟始扇區DBR、FAT表及根目錄區。

  由於已經重新分區並能順利啟動C碟(拋開病毒原因),故MBR的邏輯結構應該沒問題,通過DISKEDIT察看MBR所在的0磁道第一扇區,證實估計正確,但現分區表與原分區表是否完全一致,還不能確定。

  通過分區表,可以搜尋到各分區的啟始扇區所在的物理位置,分析後可確定C碟的各項重要資料(啟始扇區、第一FAT表、 二FAT表、根目錄區)均沒有異常,但D碟除了啟始扇區DBR外、上訴的其他資料均無法對應,DBR之所以無異常,是因為重新分區的結果,而FAT1、FAT2和根目錄區面目全非的原因,大致應該有兩種可能:一是現分區與原分區不一致,導致資料對不上號;二是資料已被病毒破壞。

  由於在察看MBR時,發現0磁道的其他扇區留有不明程序的殘餘程式碼,通過察看其中的一些顯示信息,可以判定是某種多系統軟體留下的,說明客戶曾經安裝過多系統管理軟體。這樣大致可以排除病毒破壞分區的可能,分區丟失應該是異常操作多系統管理軟體引起的。

  三、 尋找原有分區 根據前面的分析,由於客戶在資料丟失後又進行了重新分區,而且估計現有的分區與原來的分區不一致,這樣無疑加大了資料修復的難度,但幸好沒有格式化D碟,因為如果單單只是FDISK,只會改寫原硬碟的各分區的第一扇區,如果這個扇區不落在原分區的重要參數區(DBR、FAT、根目錄)上,那麼修復的成功率還是挺高的。 接下來就是尋找原有D碟的重要資料區了,根據客戶提供的資料可知,原D碟根目錄下有一叫"數位相機"的子目錄,於是用DISKEDIT提供的搜尋功能,搜尋"數位相機"對應的十六進制程式碼,可以找到原有D碟的根目錄區。歷時30分鐘,通過過濾搜尋結果,最終找到該根目錄所在的扇區,然後順籐摸瓜,向前翻過兩個FAT表(根據經驗大概400-500個扇區)找到原D碟的DBR所在的扇區,接著再向前翻63個扇區,找到原D碟的分區表,至此,最困難的問題攻克了。

  四、 重建主分區表 因為客戶後來用FDISK重新增立的主分區表與原來的分區表並不一致,故必須手工重建原分區表,通過前面找到的原D碟分區表和原D碟的DBR,可以計算出主分區表。包括各分區的起始、結束扇區、分區大小、分區類型等。算出結果後,改寫0磁道1扇區的主分區表。

  五、 重啟系統,出現原D碟,所有文件基本全部恢復。拷貝出"數位相機"目錄,做好制作備份。通知客戶取回資料。

有關本次案例的說明:

  1、 資料制作備份時,不要過分相信ghost,ghost只認正確的分區,對於隱藏的分區它不會複製。對於不正確的分區,它會報告錯誤並停止複製程序。Ghost 並非一個純粹意義上的全盤複製軟體,它只複製那些FAT表上存在的文件,而非複製磁牒上所有的資料!

  2、 走運的是,該客戶重新分的D碟剛好比原D碟大幾個磁道,故新的D碟分區表被建在原C碟最後端的資料區中。所以本次基本上可以說是100%恢復了原D碟的資料了。

  3、 更走運的是,該客戶沒有重新格式化D碟,不然就不可能有那麼高的恢復率了。

給讀者的建議:

  在硬碟資料出現丟失後,請立即聯繫當地的資料修復公司。最好不要再對硬碟進行寫操作,那樣會增大修復的難度,也影響到修復的成功率。

故障硬碟資料拯救全攻略

為了有效地儲存硬碟中的資料,除了經常性地進行制作備份工作以外,還要學會在硬碟出現故障時如何救活硬碟,或者從壞的區域中提取出有用的資料,把損失降到最小程度。

  系統不認硬碟

  系統從硬碟無法啟動,從A盤啟動也無法進入C碟,使用CMOS中的自動監測功能也無法
發現硬碟的存在。這種故障大都出現在連接電纜或IDE連接阜上,硬碟本身故障的可能性不大,可通過重新插接硬碟電纜或者改換IDE口及電纜等進行替換試驗,就會很快發現故障的所在。如果新接上的硬碟也不被接受,一個常見的原因就是硬碟上的主從跳線,如果一條IDE硬碟線上接兩個硬碟設備,就要分清楚主從關係。

  CMOS引起的故障

  CMOS中的硬碟類型正確與否直接影響硬碟的正常使用。現在的機器都支持「IDE Auto Detect」的功能,可自動檢測硬碟的類型。當硬碟類型錯誤時,有時乾脆無法啟動系統,有時能夠啟動,但會發生讀寫錯誤。比如CMOS中的硬碟類型小於實際的硬碟容量,則硬碟後面的扇區將無法讀寫,如果是多分區狀態則個別分區將丟失。還有一個重要的故障原因,由於目前的IDE都支持邏輯參數類型,硬碟可採用「Normal,LBA,Large」等,如果在一般的模式下安裝了資料,而又在CMOS中改為其它的模式,則會發生硬碟的讀寫錯誤故障,因為其映射關係已經改變,將無法讀取原來的正確硬碟位置。

  主引導程序引起的啟動故障

  主引導程序位於硬碟的主啟始扇區,主要用於檢測硬碟分區的正確性,並確定活動分區,負責把引導權移交給活動分區的DOS或其他操作系統。此段程序損壞將無法從硬碟引導,但從軟驅或光碟啟動之後可對硬碟進行讀寫。修復此故障的方法較為簡單,使用高版本DOS的FDISK最為方便,當帶參數/mbr執行時,將直接更換(重寫)硬碟的主引導程序。實際上硬碟的主啟始扇區正是此程序建立的,FDISK.EXE之中包含有完整的硬碟主引導程序。雖然DOS版本不斷更新,但硬碟的主引導程序一直沒有變化,從DOS 3.x到Windos 95的DOS,只要找到一種DOS起始碟啟動系統並執行此程序即可修復。

  分區表錯誤引發的啟動故障

  分區表錯誤是硬碟的嚴重錯誤,不同的錯誤程度會造成不同的損失。如果是沒有活動分區標誌,則電腦無法啟動。但從軟驅或光碟啟始系統後可對硬碟讀寫,可通過FDISK重置活動分區進行修復。

  如果是某一分區類型錯誤,可造成某一分區的丟失。分區表的第四個字元為分區類型值,正常的可引導的大於32MB的基本DOS分區值為06,而擴展的DOS分區值是05。很多人利用此類型值實現單個分區的加密技術,恢復原來的正確類型值即可使該分區恢復正常。

  分區表中還有其它資料用於記錄分區的起始或終止位址。這些資料的損壞將造成該分區的混亂或丟失,可用的方法是用制作備份的分區表資料重新寫回,或者從其它的相同類型的並且分區狀況相同的硬碟上獲取分區表資料。

  恢復的工具可採用NU等工具軟體,操作非常方便。當然也可採用DEBUG進行操作,但操作繁瑣並且具有一定的風險。

  分區有效標誌錯誤的故障

  在硬碟主啟始扇區中還存在一個重要的部分,那就是其最後的兩個字元:「55aa」,此字元為扇區的有效標誌。當從硬碟、軟碟或光碟啟動時,將檢測這兩個字元,如果存在則認為有硬碟存在,否則將不承認硬碟。此處可用於整個硬碟的加密技術,可採用DEBUG方法進行恢復處理。另外,當DOS啟始扇區無引導標誌時,系統啟動將顯示為:「Mmissing Operating System」。方便的方法是使用下面的DOS系統通用的修復方法。

  DOS啟始系統引起的啟動故障

  DOS啟始系統主要由DOS啟始扇區和DOS系統檔案組成。系統檔案主要包括IO.SYS、MSDOS.SYS、COMMAND.COM,其中COMMAND.COM是DOS的外殼文件,可用其它的同類文件替換,但預設狀態下是DOS啟動的必備文件。在Windows 95攜帶的DOS系統中,MSDOS.SYS是一個文本文件,是啟動Windows必須的文件,但只啟動DOS時可不用此文件。DOS引導出錯時,可從軟碟或光碟啟始系統後使用SYS C:指令傳送系統,即可修復故障,包括啟始扇區及系統檔案都可自動修復到正常狀態。

  FAT表引起的讀寫故障

  FAT表記錄著硬碟資料的存儲位址,每一個文件都有一組FAT鏈指定其存放的簇位址。FAT表的損壞意味著文件內容的丟失。慶幸的是DOS系統本身提供了兩個FAT表,如果目前使用的FAT表損壞,可用第二個進行覆蓋修復。但由於不同規格的磁牒其FAT表的長度及第二個FAT表的位址也是不固定的,所以修復時必須正確搜尋其正確位置,一些工具軟體如NU等本身具有這樣的修復功能,使用也非常的方便。採用DEBUG也可實現這種操作,即採用其m指令把第二個FAT表移到第一個表處即可。如果第二個FAT表也損壞了,則也無法把硬碟恢復到原來的狀態,但文件的資料仍然存放在硬碟的資料區中,可採用CHKDSK或SCANDISK指令進行修復,最終得到*.CHK文件,這便是丟失FAT鏈的扇區資料。如果是文本文件則可從中提取出完整的或部分的文件內容。

  目錄表損壞引起的引導故障

  目錄表記錄著硬碟中文件的檔案名等資料,其中最重要的一項是該檔案的起始簇號。目錄表由於沒有自動制作備份功能,所以如果目錄損壞將丟失大量的文件。一種減少損失的方法也是採用CHKDSK或SCANDISK程序恢復的方法,從硬碟中搜尋出*.CHK文件,由於目錄表損壞時僅是首簇號丟失,每一個*.CHK文件即是一個完整的文件,把其改為原來的名字即可恢復大多數文件。

  誤刪除分區時資料的恢復

  當用FDISK刪除了硬碟分區之後,表面上是硬碟中的資料已經完全消失,在未格式化時進入硬碟會顯示為無效驅動器。如果瞭解FDISK的工作原理,就會知道FDISK只是重新改寫了硬碟的主啟始扇區(0面0道1扇區)中的內容,具體說就是刪除了硬碟分區表信息,而硬碟中的任何分區的資料均沒有改變。可仿照上述的分區表錯誤的修復方法,即想辦法恢復分區表資料即可恢復原來的分區及資料。如果已經對分區格式化,在先恢復分區後,可按下面的方法恢復分區資料。

  誤格式化硬碟資料的恢復

  在DOS高版本狀態下,FORMAT格式化操作在預設狀態下都建立了用於恢復格式化的磁牒信息,實際上是把磁牒的DOS啟始扇區、FAT分區表及目錄表的所有內容複製到了磁牒的最後幾個扇區中(因為後面的扇區很少使用),而資料區中的內容根本沒有改變。這樣通過執行UNFORMAT指令即可恢復。另外DOS還提供了一個MIROR指令用於記錄當前磁牒的信息,供格式化或刪除之後的恢復使用,此方法也比較有效。
李英豪 
psac 目前離線  
送花文章: 3, 收花文章: 1625 篇, 收花: 3194 次