網際論壇 - 硬體技術交流 - [教學]硬碟資料恢復入門教程
» 遊客:  註冊 | 登錄 | 會員 | 幫助
 

免費線上小說
動漫分類 : 最新上架熱門連載全本小說最新上架玄幻奇幻都市言情武俠仙俠軍事歷史網游競技科幻靈異 ... 更多小說

作者:
標題: [教學]硬碟資料恢復入門教程 上一主題 | 下一主題
  erin19
  管理版主 
 


 
  積分 22622
  發文 1323
  註冊 2005-8-31
  狀態 離線
#1  [教學]硬碟資料恢復入門教程

硬碟的資料結構

初買來一塊硬碟,我們是沒有辦法使用的,你需要將它分區、格式化,然后再安裝上操作系統才可以使用。一個完整硬碟的資料應該包括五部分:MBR,DBR,FAT,DIR區和DATA區。其中只有主引導扇區是唯一的,其它的隨你的分區數的增加而增加。

  主引導扇區

  主引導扇區位於整個硬碟的0磁道0柱面1扇區,包括硬碟主引導記錄MBR(Main Boot Record)和分區表DPT(Disk Partition Table)。其中主引導記錄的作用就是檢查分區表是否正確以及確定哪個分區為引導分區,並在程序結束時把該分區的啟動程序(也就是操作系統引導扇區)調入記憶體加以執行。至於分區表,很多人都知道,以80H或00H為開始標志,以55AAH為結束標志,共64位元組,位於本扇區的最末端。值得一提的是,MBR是由分區程序(例如DOS 的Fdisk.exe)產生的,不同的操作系統可能這個扇區是不盡相同。如果你有這個意向也可以自己去編寫一個,只要它能完成前述的任務即可,這也是為什麼能實現多系統啟動的原因(說句題外話:正因為這個主引導記錄容易編寫,所以才出現了很多的引導區病毒)。

  操作系統引導扇區

  OBR(OS Boot Record)即操作系統引導扇區,通常位於硬碟的0磁道1柱面1扇區(這是對於DOS來說的,對於那些以多重引導方式啟動的系統則位於相應的主分區/擴展分區的第一個扇區),是操作系統可直接訪問的第一個扇區,它也包括一個引導程序和一個被稱為BPB(BIOS Parameter Block)的本分區參數記錄表。其實每個邏輯分區都有一個OBR,其參數視分區的大小、操作系統的類別而有所不同。引導程序的主要任務是判斷本分區根目錄前兩個文件是否為操作系統的引導文件(例如MSDOS或者起源於MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一個文件讀入記憶體,並把控制權交予該文件。BPB參數塊記錄著本分區的起始扇區、結束扇區、文件存儲格式、硬碟介質描述符、根目錄大小、FAT個數、分配單元(Allocation Unit,以前也稱之為簇)的大小等重要參數。OBR由高級格式化程序產生(例如DOS 的Format.com)。

  文件分配表

  FAT(File Allocation Table)即文件分配表,是DOS/Win9x系統的文件尋址系統,為了資料安全起見,FAT一般做兩個,第二FAT為第一FAT的備份, FAT區緊接在OBR之后,其大小由本分區的大小及文件分配單元的大小決定。關於FAT的格式曆來有很多選擇,Microsoft 的DOS及Windows採用我們所熟悉的FAT12、FAT16和FAT32格式,但除此以外並非沒有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。

  目錄區

  DIR是Directory即根目錄區的簡寫,DIR緊接在第二FAT表之后,只有FAT還不能定位文件在磁盤中的位置,FAT還必須和DIR配合才能準確定位文件的位置。DIR記錄著每個文件(目錄)的起始單元(這是最重要的)、文件的屬性等。定位文件位置時,操作系統根據DIR中的起始單元,結合FAT表就可以知道文件在磁盤的具體位置及大小了。在DIR區之后,才是真正意義上的資料存儲區,即DATA區。

  資料區

  DATA雖然占據了硬碟的絕大部分空間,但沒有了前面的各部分,它對於我們來說,也只能是一些枯燥的二進制代碼,沒有任何意義。在這里有一點要說明的是,我們通常所說的格式化程序(指高級格式化,例如DOS下的Format程序),並沒有把DATA區的資料清除,只是重寫了FAT表而已,至於分區硬碟,也只是修改了MBR和OBR,絕大部分的DATA區的資料並沒有被改變,這也是許多硬碟資料能夠得以修復的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破坏的話,也足夠咱們那些所謂的DIY老鳥們忙乎半天了……需要提醒大家的是,如果你經常整理磁盤,那麼你的資料區的資料可能是連續的,這樣即使MBR/FAT/DIR全部坏了,我們也可以使用磁盤編輯軟體(比如DOS下的DiskEdit),只要找到一個文件的起始保存位置,那麼這個文件就有可能被恢復(當然了,這需要一個前提,那就是你沒有覆蓋這個文件……)。

  硬碟分區方式

  我們平時說到的分區概念,不外乎三種:主分區、擴展分區和邏輯分區。主分區是一個比較單純的分區,通常位於硬碟的最前面一塊區域中,構成邏輯C磁盤。在主分區中,不允許再建立其它邏輯磁盤。

  擴展分區的概念則比較復雜,也是造成分區和邏輯磁盤混淆的主要原因。由於硬碟僅僅為分區表保留了64個位元組的存儲空間,而每個分區的參數占據16個位元組,故主引導扇區中總計可以存儲4個分區的資料。操作系統只允許存儲4個分區的資料,如果說邏輯磁盤就是分區,則系統最多只允許4個邏輯磁盤。對於具體的應用,4個邏輯磁盤往往不能滿足實際需求。為了建立更多的邏輯磁盤供操作系統使用,系統引入了擴展分區的概念。

  所謂擴展分區,嚴格地講它不是一個實際意義的分區,它僅僅是一個指向下一個分區的指針,這種指針結構將形成一個單向鏈表。這樣在主引導扇區中除了主分區外,僅需要存儲一個被稱為擴展分區的分區資料,通過這個擴展分區的資料可以找到下一個分區(實際上也就是下一個邏輯磁盤)的起始位置,以此起始位置類推可以找到所有的分區。無論系統中建立多少個邏輯磁盤,在主引導扇區中通過一個擴展分區的參數就可以逐個找到每一個邏輯磁盤。

  需要特別注意的是,由於主分區之后的各個分區是通過一種單向鏈表的結構來實現連結的,因此,若單向鏈表發生問題,將導致邏輯磁盤的丟失。

資料存儲原理

既然要進行資料的恢復,當然資料的存儲原理我們不能不提,在這之中,我們還要介紹一下資料的刪除和硬碟的格式化相關問題……

  文件的讀取

  操作系統從目錄區中讀取文件資訊(包括文件名、后綴名、文件大小、修改日期和文件在資料區保存的第一個簇的簇號),我們這里假設第一個簇號是0023。

  操作系統從0023簇讀取相應的資料,然后再找到FAT的0023單元,如果內容是文件結束標志(FF),則表示文件結束,否則內容保存資料的下一個簇的簇號,這樣重復下去直到遇到文件結束標志。

  文件的寫入

  當我們要保存文件時,操作系統首先在DIR區中找到空區寫入文件名、大小和創建時間等相應資訊,然后在Data區找到閑置空間將文件保存,並將Data區的第一個簇寫入DIR區,其余的動作和上邊的讀取動作差不多。

  文件的刪除

  Win9x的文件刪除工作卻是很簡單的,簡單到只在目錄區做了一點小改動——將目錄區的文件的第一個字符改成了E5就表示將改文件刪除了。

  附錄:

  Fdisk和Format的一點小說明

  和文件的刪除類似,利用Fdisk刪除再建立分區和利用Format格式化邏輯磁盤(假設你格式化的時候並沒有使用/U這個無條件格式化參數)都沒有將資料從DATA區直接刪除,前者只是改變了分區表,后者只是修改了FAT表,因此被誤刪除的分區和誤格式化的硬碟完全有可能恢復……

  系統啟動流程

  各種不同的操作系統啟動流程不盡相同,我們這里以Win9x/DOS的啟動流程為例。

  第一階段:系統加電自檢POST過程。POST是Power On Self Test的縮寫,也就是加電自檢的意思,微電腦執行記憶體FFFF0H處的程序(這里是一段固化的ROM程序),對系統的硬體(包括記憶體)進行檢查。

  第二階段:讀取分區記錄和引導記錄。當微電腦檢查到硬體正常並與CMOS設置相符后,按照CMOS設置從相應設備啟動(我們這里假設從硬碟啟動),讀取硬碟的分區記錄(DPT)和主引導記錄(MBR)。

  第三階段:讀取DOS引導記錄。微電腦正確讀取分區記錄和主引導記錄后,如果主引導記錄和分區表校驗正確,則執行主引導記錄並進一步讀取DOS引導記錄(位於每一個主分區的第一個扇區),然后執行該DOS引導記錄。

  第四階段:裝載系統隱含文件。將DOS系統的隱含文件IO.SYS入記憶體,加載基本的文件系統FAT,這時候一般會出現Starting Windows 9x...的標志,IO.SYS將MS.SYS讀入記憶體,並處理System.dat和User.dat文件,加載磁盤壓縮程序。

  第五階段:實DOS模式配置。系統隱含文件裝載完成,微電腦將執行系統隱含文件,並執行系統配置文件(Config.sys),加載Config.sys中定義的各種驅動程序。

  第六階段:調入命令解釋程序(Command.com)。系統裝載命令管理程序,以便對系統的各種操作命令進行協調管理(我們所使用的Dir、Copy等內部命令就是由Command.com提供的)。

  第七階段:執行批處理文件(Autoexec.bat)。微電腦將一步一步地執行批處理文件中的各條命令。

  第八階段:加載Win.com。Win.com負責將Windows下的各種驅動程序和啟動執行文件加以執行,至此啟動完畢。




主分區表資料及分析

在英文字典中,對主引導區的定義如下:

  Master Boot Record:The Master Boot Record is located at the physical beginning of a hard disk, editable using the Disk Editor. It consists of a master bootstrap loader code (446 bytes) and four subsequent, identically structured partition records. Finally, the hexadecimal signature 55AA completes a valid Master Boot Record.

  硬碟的主引導記錄在硬碟的0磁頭0柱面1扇區。主引導記錄由三部分組成:

  

主引導程序;

四個分區表;

主引導記錄有效標志字。

  


表1 主引導記錄結構

  說明:

  

分區表自偏移1BEH處開始,分區表共64個位元組,表中可填入四個分區資訊,每十六個位元組為一個分區說明項,這16個位元組含義詳見表2。

必須注意:扇區號的高二位占用柱面號所在位元組的最高二位,即柱面號為10位,扇區號6位。

  


表2 分區結構資訊

  重要公式:02H為X,03H為Y。柱面=(X>>6)*16^2+Y;

  以我的硬碟為例:有九個可用分區,二個不可用分區;兩個Primary NTFS分區,第二個為active;七個Extened 分區,第五個為NTFS其他為FAT32.

  主分區表資料:位置cylinder0, head 0,sector1




  主分區表分析:

  Master bootstrap loader code

  0000H -00D9H 33 C0 8E D0 BC 00 7C FB 50 。。。主引導記錄代碼,表示住分區表



01BEH -01CDH 分區1結構資訊

  multi(0)disk(0)rdisk(0)partition(0)
知該分區Boot Sector位於:起始磁頭為0頭,起始柱面為70D,起始扇區為1扇區。



01CEH -01DDH 分區2結構資訊

  multi(0)disk(0)rdisk(0)partition(1)
活動分區指示符為80H,表示該分區為可自舉分區。
系統標志為07表示OS/2 HPFS, Windows NT NTFS, Advanced Unix系統。知該分區Boot Sector位於:起始磁頭為0頭,起始柱面為304D,起始扇區為1扇區。



01DEH -01EDH 分區3結構資訊

  Extended partition
系統標志位元組為0F,說明是擴展分區Extended partition (using INT 13 extensions)。
從擴展分區說明項知下一個分區表位於:起始磁頭為0頭,起始柱面為435D,起始扇區為1扇區。


01EEH -01FDH 分區4結構資訊

分區說明項資料均為00H沒有定義。



01FEH -01FFH 55 AAH 主引導記錄有效標志

擴展分區資料及分析

擴展分區一分區表資料:位置cylinder435D, head 0,sector1




擴展分區表分析



01BEH -01CDH 分區1結構資訊

multi(0)disk(0)rdisk(0)partition(3)
知該分區位於:起始磁頭為1頭,起始柱面為435D,起始扇區為1扇區(分區表占用磁頭0)。
系統標志字0BH表示 Windows 95+ FAT32



01BEH -01CDH 分區1結構資訊

系統標志位元組為05H,說明是擴展DOS分區。於是知下一個分區表位於:起始磁頭為0頭,起始柱面為777D,起始扇區為1扇區。

Partition Table Entry #3 資料均為00H沒有定義。
Partition Table Entry #4 資料均為00H沒有定義。

其他擴展分區同理。

附錄:Fdisk的MBR參數

MBR 系 FDISK.COM(EXE) 一項未公布的開關,隱含於 MS DOS 3.30,延至 MS DOS 8.0(Windows ME)。實踐中,有籍以修復主引導資訊,重點在主引導程序。

FDISK /MBR 命令流程的分支有二:

讀得主引導扇區檢驗標志(字) AA55h,操作單一,僅向主引導扇區位移 0-1BDH 寫入當前系統固有的主引導程序,安全可靠。

難能可貴的是它不触動主引導資訊其余模塊(分區表、檢驗標志),以及隨后的 DOS 引導資訊、文件分配表、根目錄,省事許多。檢出檢驗標志非 AA55h,寫主引導程序、初始化分區表及登錄檢驗標志,在 MS DOS 7.0 - 8.0 環境中,常規以系統支持的最大容量分配給基本 DOS 分區的方式登錄分區表。分區表初始化(可能幸存的分區表被清除)的后果不難想象; 目前硬碟大都設置有其它分區,即使在高版本 DOS 環境中運作,常規建立的分區表每難能符合實際需求,后續工作量也相當可觀。

不過,它也不触動位於其后的 DOS 引導資訊、文件分配表及根目錄,高版本 FDISK /MBR 命令適用於修復僅設基本 DOS 分區的硬碟分區表及檢驗標志受損,或主引導資訊全毀。

可見,在運行 FDISK /MBR 命令之前,需查明檢驗標志是否 AA55h,酌情處理,切忌盲動。

經由 DOS 軟式磁碟機引導,認硬碟,檢驗標志必健在。

另外,在 FDSIK 主功能表中選 4. Display Partition Information,列出分區資訊,進一步證實檢驗標志正常; 若現 No partitition defined,檢驗標志每變異,而分區表或許尚健在。



深入邏輯分區

邏輯分區結構

現在深入每一個邏輯分區,邏輯分區結構如下:

FAT12/16
Logical sector =0 Logical sector=1
(Floppy disk=1~9) Logical sector=1+sectors_per_FAT
(Floppydisk=10~18) Logical sector=1+sectors_per_FAT*2
(Floppy disk=19~32) Logical sector=1+sectors_per_FAT*2+sectors_of_rootdirectories
(Floppy disk=33~)
DOS Boot Sector FAT1 FAT2 ROOT Directory Data area(where files and subdirectories are stored)

FAT32
Usually 32 sectors Logical sector =0032h Logical sector =0032h+ 2*sectors_per_FAT
DOS Boot Recore 3 Sectors Reserved sectors Copy of record Reserve sectors FAT1 FAT2 Data area(where files and all bdirectories are stored)

在邏輯分區當中用邏輯的cluster和sector。換算關係為:
cluster=logical_sector/sectors_per_cluster;
這里sectors_per_cluster是在BIOS Parameter Block里得到的。
Sector=( logical_sector mod sectors_per_track)+1;
Head=( logical_sector / sectors_per_track)mod total_heads;
Cylinder= logical_sector(sectors_per_track* total_heads);
logical_sector=( cluster-2)*sectors_per_cluster+sector_of_file_area_offset;
logical_sector=(sector-1)+head*sector_per_track+sector*sector_per_track*heads;
每個扇區長度=512位元組
總簇數=邏輯盤容量/簇容量
總簇數=FAT表長度(位元組)/每個表項長度(位元組)-2
FAT表長度=邏輯盤容量/簇容量*每個表項長度

Dos引導記錄塊位於邏輯0 sector中包含三部分:
(1) 磁盤IO參數表BPB;
(2) 磁盤基數表;
(3) 引導區代碼。

描述邏輯盤結構的BPB表

FAT16的BPB(BIOS Parameter Block)表,描述邏輯盤結構組成,包含隱藏扇區數目(從0-1-1開始計算)、FAT扇區數、FAT拷貝數、硬碟磁頭總數、根目錄表項最大值等。FAT32系統中,BPB表的偏移與FAT16不同,但表項基本相同。整個隱藏扇區部分都作為邏輯盤的描述區域。

硬碟BPB主要結構說明:

(Cylinder柱面/磁道-Side/Head磁頭-Sector扇區地址以下簡稱為?-?-?)

主分區
名稱 地址 長度(扇區)
主引導記錄(Main Boot Record) 0-0-1 1
系統扇區(System Secotrs) 0-0-2,0-0-63 62
引導扇區(Boot) 0-1-1 1

擴展分區
名稱 地址 長度(扇區)
擴展分區(Extend Partition) ?-y-1 1
系統扇區(System Secotrs) ?-y-2,?-y-63 62
引導扇區(Boot) ?-(y+1)-1 1
其后各項與主分區相同……

隱藏扇區(Hidden Secotrs):
FAT16 0-1-1 1
FAT32 0-1-1 32

文件分配表(File Allocation Table):
FAT16 0-1-2 根據邏輯盤容量變化
FAT32 0-1-33 根據邏輯盤容量變化

說明:

1. FAT16的每個表項由2位元組(16位)組成,通常每個表項指向的簇包含64個扇區,即32K位元組。 邏輯盤容量最大為2047MB。

2. FAT32的每個表項由4位元組(32位)組成,通常每個表項指向的簇包含8個扇區,即4K位元組。邏輯盤容量最小為512MB。

3. 對於C分區,在MBR的偏移01c2H處,FAT16為06H,FAT32為0CH。

深入邏輯分區之文件分配表(FAT)

FAT是DOS、Windows9X系統的文件尋址格式,位於DBR之后。

在解釋文件分配表的概念的時候,我們有必要談談簇(Cluster)的概念。文件占用磁盤空間,基本單位不是位元組而是簇。一般情況下,軟式磁碟機每簇是1個扇區,硬碟每簇的扇區數與硬碟的總容量大小有關,可能是4、8、16、32、64……同一個文件的資料並不一定完整地存放在磁盤的一個連續的區域內,而往往會分成若干段,像一條鏈子一樣存放。這種存儲方式稱為文件的鏈式存儲。由於硬碟上保存著段與段之間的連接資訊(即FAT),操作系統在讀取文件時,總是能夠準確地找到各段的位置並正確讀出。

  為了實現文件的鏈式存儲,硬碟上必須準確地記錄哪些簇已經被文件占用,還必須為每個已經占用的簇指明存儲后繼內容的下一個簇的簇號。對一個文件的最后一簇,則要指明本簇無后繼簇。這些都是由FAT表來保存的,表中有很多表項,每項記錄一個簇的資訊。由於FAT對於文件管理的重要性,所以為了安全起見,FAT有一個備份,即在原FAT的后面再建一個同樣的FAT。初形成的FAT中所有項都標明為“未占用”,但如果磁盤有局部損坏,那麼格式化程序會檢測出損坏的簇,在相應的項中標為“坏簇”,以后存文件時就不會再使用這個簇了。FAT的項數與硬碟上的總簇數相當,每一項占用的位元組數也要與總簇數相適應,因為其中需要存放簇號。FAT的格式有多種,最為常見的是FAT16和FAT32。

當一個磁盤Format后,在其邏輯0扇區(即BOOT扇區)后面的幾個扇區中存在著一個重要的資料表—文件分配(FAT),文件分配表一式兩份,占據扇區的多小憑磁盤類型大小而定。顧名思義,文件分配表是用來表示磁盤問件的空分配資訊的。它不對引導區,文件目錄的資訊進行表示,也不真正存儲文件內容。

我們知道磁盤是由一個一個扇區組成的,若干個扇區合為一個簇,文件存取是以簇為單位的,哪怕這個文件只有1個位元組。每個簇在文件分配表中都有對應的表項,簇號即為表項號,每個表項占1.5個位元組(磁盤空間在10MB以下)或2個位元組(磁盤空間在10MB以上)。為了方便起見,以后所說的表項都是指2個位元組的。

FAT表的開始由介質描述符+一串“已占用”標志組成:



FAT16硬碟----F8 FF FF 7F

FAT32硬碟----F8 FF FF 0F FF FF FF 0F

每個有效的FAT結構區包含兩個完全相同的拷貝:FAT1、FAT2
文件分配表結構如1(H表示16進制)



第0位元組:表頭,表磁盤類型。FFH雙面軟式磁碟機,每次道8扇區FEH單面軟式磁碟機,每磁道8扇區FDH雙面軟式磁碟機,每磁道9扇區FCCH單面軟式磁碟機,每磁道9扇區FC8H硬碟

第1~2位元組:(表項號1)表示第一簇狀態,因第一簇被系統占據,故此兩位元組為FFFFH

第3~4位元組:(表項號2)表示第二簇狀態,若為FFFH表此簇為坏的,DOS已標記為不能用;0000H表示此簇為空,可以用;FFF8H表不能示該簇為文件的最后一簇;其余數字表示文件的下一個簇號,注意高位元組在后,低位元組在前。

第5~6位元組:(表項號3)表示第三簇狀態,同上。

注意

不要把表項內的數字誤認為表示當前簇號,而應是該文件的下一個簇的簇號。.高位元組在后,低位元組在前是一種存儲數字方式,讀出時應對其進行調整。是如兩位元組12H,34H,應調整為3412H。

文件分配表與文件目錄(FDT)相配合,可以統一管理整個磁盤的文件。它告訴系統磁盤上哪些簇是坏的或已被使用,哪些簇可以用,並存儲每個文件所使用的簇號。它是文件的“總調度師”。

當DOS寫文件時,首先在文件目錄中檢查是否有相同文件名,若無則使用一個文件目錄表項,然后依次檢測FAT中的每個表項對應的簇中,同時將該簇號寫入文件目錄表項相的26-27位元組,如文件長度不止一簇,則繼續向后尋找可用簇,找到后將其簇號寫入上一次找到的表項中,如此直到文件結束,在最后一簇的表項里填上FFF8H,形成單向鏈表。

DOS刪除文件時只是把文件目錄表中的該文件的表項第0個位元組改為E5H,表此項已被刪除,並在文件分配表中把該文件占用的各簇的表項清0,並釋放空間。其文件的內容仍然在盤上,並沒有被真正刪除,這就是undelete.exe,unerase.exe等一類恢復刪除工具能起作用的原因。

文件分配表在系統中的地位十分重要,使用者最好不要去修改它,以免誤操作帶來嚴重的后果。



深入邏輯分區之文件目錄表(FDT)

文件目錄表(File Directory Table),即根目錄區,又稱為ROOT區

緊跟在FAT2的下一個扇區,長度為32個扇區(256個表項)。如果支持長文件名,則每個表項為64個位元組,其中,前32個位元組為長文件連結說明;后32個位元組為文件屬性說明,包括文件長度、起始地址、日期、時間等。如不支持長文件名,則每個表項為32個位元組的屬性說明。

值得注意的是:


FAT32沒有儲存目錄的目錄區,而 FAT16儲存根目錄並把子目錄放到資料區。

表示目錄的目錄項指出根目錄地址同時長度位元組為0,表示文件的目錄項指出資料地址。



注意:DOS7前的怪字符為E5H,表示被刪除,被刪除文件仍舊能夠找到開始簇,資料恢復就依靠這一特點。

資料區(Data Area): 緊跟在FDT的下一個扇區,直到邏輯盤的結束地址。它存儲著所有的資料,而且即使文件目錄被破坏仍舊可能從磁盤里把資訊讀出,這也就是硬碟資料的理論依據。

  到現在為止,硬碟資料結構的理論部分已經講完。資料恢復主要是手動找出FAT、目錄、資料的對應關係或直接找到資料,現在已經有完善的磁盤編輯器幫助我們做到這一點,使工作大大簡化了。

有只能化的恢復工具能不依靠FAT而恢復被刪除文件,比如RECOVERNT,估計是依靠Win2000的文件使用記錄。這種方法在沖啟動之前恢復文件的可能性很大。從理論上講只要資料不被覆蓋總能被恢復的。

實戰硬碟資料恢復

上面對硬碟資料恢復的理論知識進行了完整介紹,下面再簡單介紹兩種常見的硬碟故障的資料恢復辦法。

FAT表引起的讀寫故障

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

軟式磁碟機文件分配FAT表修復

在運行某個程序時,有時會在屏幕上看到:File allocation table bad,drive A(文件分配表坏)的錯誤資訊,導致程序不能正常運行。

  我們知道,在磁盤中有兩個文件分配表:FAT1和FAT2。FAT1用於日常工作,FAT2備用。因此,在FAT1損坏時,可用FAT2表修補。具體方法是:運行DEBUG,將FAT2讀入快取區,用快取區的FAT2資料覆蓋磁盤中的FAT1。

例:修復3寸1.44M軟式磁碟機,在A驅。在DOS環境下進入debug環境。在“-”提示符下進行如下操作:
-L 100 0 0A 9
-W 100 0 1 9
-q

其它類型的軟式磁碟機的修復方法參照下表進行。起止邏輯扇區 5.25"低密 5.25"高密 3.5"低密 3.5"高密
BOOT區 0 0 0 0
FAT1 1-2 1-7 1-3 1-9
FAT2 3-4 8-0EH 4-6 0A-12H

例如我們要修復5.25"高密軟式磁碟機的FAT,則需將上述參數改為:
-L 100 0 8 7
-W 100 0 1 7
-q

[ Last edited by erin19 on 2005-12-13 at 01:37 PM ]




滴水不停,可以穿石...
2005-12-13 12:50 PM
查看資料  發送郵件  發短消息   編輯文章  引用回覆
  sodown
  區版主 
  射手座的豬



 
  積分 23462
  發文 2418
  註冊 2005-9-1
  來自 要學的很多,時間卻太少 ..
  狀態 離線
#2  

=================================
感謝您的發文及對硬體技術交流區的支持與愛護!
請按我支持硬體技術交流區請您一定要看




心情      播機


2005-12-13 01:07 PM
查看資料  發送郵件  發短消息   編輯文章  引用回覆
  kenhung
  中級會員 
 



  積分 1143
  發文 90
  註冊 2005-10-11
  狀態 離線
#3  

謝謝妳的指導

2005-12-17 03:31 PM
查看資料  發送郵件  發短消息   編輯文章  引用回覆
  Perawang
  資深會員 
 



  積分 3146
  發文 120
  註冊 2005-9-6
  狀態 離線
#4  

thanks...

2005-12-18 10:33 PM
查看資料  發送郵件  發短消息   編輯文章  引用回覆
  zzr4310
  資深會員 
 



  積分 3764
  發文 112
  註冊 2005-9-11
  狀態 離線
#5  

謝謝大大分享..

2006-2-23 11:58 AM
查看資料  發送郵件  發短消息   編輯文章  引用回覆
  慈心
  資深會員 
  *本來面目*


  積分 4060
  發文 231
  註冊 2005-9-5
  來自 應無所住而生其心
  狀態 離線
#6  

感謝大大的分享!!!



六度:布施.持戒.忍辱.精進.禪定.智慧
========================================
2006-2-23 05:22 PM
查看資料  發短消息   編輯文章  引用回覆
  guppy0315
  資深會員 
 



  積分 3342
  發文 322
  註冊 2005-11-21
  狀態 離線
#7  

恩恩  受惠不少...謝謝賜教

2008-8-18 05:13 PM
查看資料  發短消息   編輯文章  引用回覆

可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題

論壇跳轉選單: