WinHex手動恢復分區表及誤刪除文件


WinHex是一個專門用來對付各種日常緊急情況的小工具。它可以用來檢查和修復各種文件、恢復刪除文件、硬盤損壞造成的數據丟失等。同時它還可以讓你看到其他程序隱藏起來的文件和數據。總體來說是一款非常不錯的 16 進制編輯器。得到 ZDNetSoftwareLibrary 五星級最高評價,擁有強大的系統效用。
首先說說恢復文件,打開程序菜單——“工具”——“打開磁盤”,可選擇要恢復文件的磁盤,點擊打開,在上半部分可以瀏覽到所有磁盤文件,找到要恢復的文件,右擊選擇“恢復”,設定好恢復位置即可。(注:用於刪除文件后沒有寫入新數據情況)。
其次,我們說下恢復分區信息,本例中是掛接了兩塊硬盤。
打開Winhex發現MBR全部為零了,下面我們就着手開始手工恢復分區表
首先恢復引導代碼,這最簡單了,只要用Winhex到別的系統盤把引導代碼復制過來就行了。我現在的機器上不是掛着兩個硬盤嗎?一個邁拓2G,一個西數40G,西數40G是我的系統盤,那就從這個盤上復制就行了。
單擊“磁盤編輯器”按鈕
出現“編輯磁盤”對話框
選擇“HD0 WDC WD400EB---00CPF0”,點“確定”
這樣我們就把系統盤的分區表給打開了,注意,現在我們是打開了兩個窗口,當前的窗口是“硬盤0”,在標題欄上有顯示。另外,打開窗口菜單也能看出來,當前窗口被打上一個勾,如果想切換回原來的窗口,就點擊“硬盤1”。
首先選中系統盤的引導代碼
然后在選區中單擊鼠標右鍵,選“編輯”
又出來一個菜單,然后我們選“復制選塊”——“正常”
然后我們切換回硬盤1窗口,在零扇區的第一個字節處單擊鼠標右鍵,選“編輯”
然后選“剪貼板數據”——“寫入……”
出現一個窗口提示,點“確定”
這樣,我們就把一個正常系統盤上的引導代碼復制過來了。
下面,我們就開始恢復分區表(共64個字節,分為4個分區表項,每個分區表項占用16個字節,一般只使用前兩個分區表項),我們首先來恢復第一個分區標項(也就是用來描述C盤的)。
首先,在第1個字節處(0扇區倒數第五行,倒數第二個字節)填上分區引導標志,因為C盤是活動分區,所以填上80。
接着是第2、3、4字節(本分區起始磁頭號、扇區號、柱面號),填上:01 01 00。
第5字節是分區類型符,因為原先C盤是Fat32格式,所以填上:0B。那么,如果你不知道C盤是什么格式怎么辦呢?你會說問問客戶呀,那么如果他也不知道呢?別着急,后面在說恢復DBR的時候我會教你怎么分辨分區的格式。
第6、7、8字節是本分區的結束磁頭號、扇區號、柱面號,這怎么知道呢?別着急,現在的磁盤都是按照LBA方式尋址,並不按照C/H/S(及柱面、磁頭、扇區)方式尋址,所以這個地方你填些什么一般關系不大,但是我要告訴你有一個通用的填法,那就是:FE FF FF。
第9、10、11、12字節,本分區之前已用了的扇區數,也就是MBR所占用的扇區數,那不是63嗎?對,但是要將63轉為十六進制數,再反過來倒着填寫上。還記得怎么用計算器嗎?將63轉為十六進制數是3F,不夠四個字節前面加零,也就是00 00 00 3F,再將此數從右向左依次序反過來就是3F 00 00 00。
第13、14、15、16字節是本分區的總扇區數,也就是C盤的大小,這就要通過稍微一點點計算來得到了。因為C盤是從第63個扇區開始,而C盤后面緊接着的是EBR,所以用EBR所在的第一個扇區數減去63就是C盤的大小。那么如何才能找到EBR所在的第一個扇區呢?我們前面說過,EBR的結構和MBR是一樣的,所以,EBR的結束標志也一定是55AA,那么,只要我們找到這個結束標志,再看看這個扇區是不是EBR不就行了?
單擊“搜索”——“查找十六進制數值……”,然后出來一個對話框
在文本框中輸入“55AA”,搜索框中選“全部”,然后選中“條件”,把偏移量設置為“512=510”。
再單擊“確定”。畫面如下:
首先找到第一個“55AA”,我們看到,個扇區在第63個扇區上,並不是我們要找的EBR,再按F3繼續查找
又找到好幾個扇區,都不是,那么下面這個扇區是不是?
前面我們說過,EBR的結構和MBR的結構是一樣的,所以在倒數第五行倒數第二個字節應該是00 01,並且前446個字節應該是0,顯然這也不是EBR,繼續按F3查找……終於找到了真正的EBR,在1435392扇區。
小技巧:現在的硬盤都比較大,要逐個扇區的查找55AA確實太慢了,那么有沒有辦法快點呢?有,那就是先問問客戶C盤大概有多大,大多數客戶還是知道的,比如他說C盤大概有10個G,那么你就不要從頭開始找了,因為那實在太慢了。10個G大概是2000萬個扇區,那么你可以用轉到扇區命令直接到1900萬扇區,從那個地方再開始找不就省事多了。
用1435392減去63,得到1435329,再轉為16進制,就是15E6C1,將他倒轉過來就是C1E61500,這就是C盤的大小。這樣,第一個分區表項填寫完畢,我們保存一下,再接着填寫第二個分區表項。
第二個分區表第1個字節:因為是非活動分區,所以寫00
第2、3、4字節,填寫01 01 00(通用的)
第5字節:因為是擴展分區,所以填寫0F
第6、7、8字節:填寫FE FF FF(通用)
第9、10、11、12字節是本分區之前已用了的扇區數,應該就是C盤大小加63,也就是1435392,前面剛計算出來的,轉為十六進制數再反過來就是00 E7 15 00
第13、14、15、16字節是本分區的總扇區數,也就是擴展分區的總扇區數,也就是用整個硬盤的大小減去C盤的大小再減去63,即4124736-1435329-63=2689344,轉為十六進制就是290940,反過來就是40092900。
這樣,第二個分區表項就填寫完了。
不要忘了把最后的結束標志55AA填上,這樣,MBR就全恢復完了,最后,保存,再重新啟動……
啟動完畢,迫不及待的打開我的電腦,發現三個分區全部又回來了,並且里面的數據完好無損。
再右擊“我的電腦”,選“管理”
出現一個對話框,選“磁盤管理”,在右邊可以看到磁盤一的三個分區(Fat32、Fat16、Ntfs)全部都回來了,至此,手工恢復分區表順利完成。
手工恢復數據恢復成功率比較高,而且比較有趣味和挑戰性,能找回許多傻瓜似的軟件所找不回來的文件,但是要求工程師一定要有耐性,而且一定要保持清醒,清楚自己正在操作什么,操作完了會有什么后果,能不能退回到上一步狀態。特別是對一些破壞性操作,一定要考慮周到,只要條件允許,就一定要在操作之前進行備份,否則會造成“血”的教訓,切記!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM