天天看點

資料恢複

實驗情況: 原來磁盤的容量為 20 G ,并有四個分區

H: 主磁盤分區 NTFS 6G 左右

I: 邏輯分區 FAT32 3G左右

J:邏輯分區 FAT32 8G左右

K:邏輯分區 NTFS 4G左右

将四個 分區 全部删除後,并從建立立一個新的分區,占整個磁盤!

實驗目的:将磁盤中的資料全部恢複!

實驗方案: 因為磁盤中有四個分區 是以 可以有兩種恢複方式,:

1. 把四個分區全部恢複為四個主分區

2. 原樣恢複

下面我按照原樣恢複硬碟分區!

一. 算出 各個分區的起始和 結束位置!

對有故障的磁盤有大緻的了解後,我們利用 winhex 打開這個磁盤 如圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201007/150925420.jpg"></a>

在分區表中隻定義了一個分區,重建分區表之前我們必須先知道 各個分區的起始和結束位置,這樣才好定義分區表

我們很容易知道 H 的分區之前的扇區數 是 3F 00 00 00 (十進制是63),由于分區之間沒有備援,得知擴充分區的起始扇區後,H 分區我們可以定義出來。

H 大約所占用的柱面為 6*1024/7.84=783 (每個柱面約為 7.84M),是以擴充分區在783柱 附近

轉到 760柱(以防漏掉擴充分區 的起始扇區)

然後我們利用擴充分區的起始扇區 以 55AA 結尾 這個特點 進行搜尋:如圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201007/150955643.jpg"></a>

如圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151056372.jpg"></a>

在 764/254/63柱winhex停止查找,不出錯的話 下一個扇區應該是擴充分區的起始扇區 (765/0/1)

如圖我們已經找到 擴充分區的起始扇區 (開始扇區是12289725)

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151128127.jpg"></a>

但是分區表中 卻是空的,應該是 重新分為一個區的時候 ,已經把 該處覆寫

不過沒有關系,我們可以根據 I 的 DBR記錄 得出 I 起始和結束位置

為了友善 我們隻用 LBA 表示扇區

I 的開始位置是 12289725+63=12289788 

轉到 I的起始扇區 如圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151159514.jpg"></a>

20H 表示 I 的扇區大小 I 的結束位置是 18442619

是以 第二個擴充分區的開始位置是 18442620

轉到該扇區 檢視一下

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151220916.jpg"></a>

我們可以很高興的看見 第二個擴充分區的 分區表中 已經定義 了 J 和 第三個 擴充分區

這兩項,其實到這個時候我們隻需要 把前面的分區表 補充完整後,就大功告成,但是還是缺少 第一個擴充分區的結束位置,我們還要繼續下去!

經過計算後 我們轉到第三個擴充分區的起始扇區 (計算過程和上面大緻相同)如圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151246152.jpg"></a>

此處定義的是 K 這個扇區,以後沒有在定義擴充分區,到結尾啦!

最後 我們可以算出 K 的結束位置是 41929649 扇區 ,是以 第一個擴充分區的結束位置也是 41929649

下面我們詳細列出 各個分區的開始和結束位置

H 63 – 12289724 07

EBR1 12289725 – 41929649 0F

I 12289788 – 18442619 0B

EBR2 18442620 – 34828919 0F

J 18442683 – 34828919 0B

EBR3 34828920 – 41929649 0F

K 34828983 – 41929649 07

現在已經 完成一半的工程,接下來 我們要在 分區表中寫入資料!

二 向分區表中寫入資料!

轉到 0 号扇區

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151603428.jpg"></a>

定義 H 分區 和 第一個擴充分區,

接下來 轉到第一個 擴充分區的起始 扇區

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151628176.jpg"></a>

定義 I 分區 和 第二個擴充分區

接下來 轉到第二個扇區 的起始扇區 如圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151653219.jpg"></a>

定義 J 分區 和 第三個 擴充分區

轉到 第三個擴充分區的起始扇區

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151712897.jpg"></a>

還保留原來 的 分區表記錄,k 分區 根本不用再去 定義!

在定義的過程中,我全部省略了 對 CHS 的描述,其實 LBA 的優先級比 CHS 的優先級高,在說 CHS 的表示能力有限,是以 我們完全可以不去定義 CHS 的部分!

至此 分區表 已經全部 重建完畢! 但是 還有一點 我們要注意,第一個分區 H 分區的 DBR 記錄已經 不存在 (從 剛開始第一個 擴充分區的起始扇區 沒有 定義分區表 我們 應該意識到還是少 一部分内容)

三 : 添加 DBR 記錄

到這裡我們有兩種方式可以來添加

第一種:省去 公式的麻煩,我們隻需要找到 一個 與 H 分區一摸一樣的分區,複制一下H 的同胞兄弟的 DBR ,就可以啦,

我們新添加一塊硬碟 ,與 “故障”盤一摸一樣

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151735803.jpg"></a>

下面我們選擇 建立一塊硬碟,

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151751963.jpg"></a>

對 驅動程式 和 容量 定義完成後,從新啟動機器,對新的硬碟分出一個和H 分區一摸一樣的分區,可以 直接将 0 扇區的分區表中 定義 H 的那一項 複制到 新的硬碟中,重新啟動機器 ,在将新的硬碟 格式化 ,就能夠産生我們想要的 DBR 記錄!

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151809798.jpg"></a>

已經粘貼好 分區表中定義項

加入我們找不到一模一樣的分區怎麼辦??下面第二種方法就是一個很好的選擇!

第二種方法:根據NTFS 分區檔案系統格式,我們可以很輕松的解決,

NTFS 格式的分區.第一個扇區和最後一個扇區是兩個相同的DBR記錄,我們完全可以用最後那一個備份的DBR記錄來填充到第一個扇區!!

重新啟動機器後 ,将 新的分區 格式化 !

剩下的工作就是 複制 DBR 記錄喽!

四. 驗證 實驗效果

給 已經複蘇的四個分區 ,配置設定驅動号

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151849202.jpg"></a>

檢視裡面的資料 是否完好無損:

<a target="_blank" href="http://blog.51cto.com/attachment/201007/151925239.jpg"></a>

分别檢視後,資料已經全部恢複!我們可以休息一下啦!

本文轉自 位鵬飛 51CTO部落格,原文連結:http://blog.51cto.com/weipengfei/342284,如需轉載請自行聯系原作者

繼續閱讀