下面根據我自己的經(jīng)歷談一談NTFS格式化為NTFS后原盤(pán)數據恢復的方法。
NTFS格式化為NTFS后,在XP系統下只是重寫(xiě)了前32個(gè)MFT項,在WIN7系統下重寫(xiě)了前255個(gè)MFT項,在這種情況下,用軟件掃一般都能恢復,但如果分區比較大,文件比較多的話(huà),第一需要很長(cháng)時(shí)間,第二碎片文件可能不容易恢復成功。所以我談一下手工恢復的方法。
首先說(shuō)一下手工恢復的思路,既然只是重寫(xiě)了前32個(gè)或前255個(gè)MFT,后面的MFT不變,所以只要在0號MFT上修改一下鏈接指向這些MFT,那么就能夠實(shí)現原盤(pán)恢復了。
具體要修改的地方主要有4處(根據實(shí)際情況不同):MFT起始簇號、80H屬性的起始和結束VCN、屬性體的分配、實(shí)際、初始大小和DATARUN數據。
具體步驟如下:
第一、MFT起始簇號。首先判斷現在的MFT起始簇號是不是格式化前的MFT起始簇號。轉到31號或是255號MFT,前后看看MFT號是否連續,如果連續,表明格式化前后的MFT起始簇號相同,如果不連續,表明格式化前后的MFT起始簇號不相同。起始簇號相同,則不用管它,記下這個(gè)起始簇號,后面要用到它的;起始簇號不相同,就要找原來(lái)的MFT起始簇號,也就是把現在的MFT起始簇號向前或向后提一下,同樣記下現在的MFT起始簇號。
第二、80H屬性的起始和結束VCN。搜索最后一項MFT,依據MFT頭標志“46494C45”來(lái)搜索。這個(gè)地方要注意一些技巧,要先估計MFT的大?。ㄒ话?00G的分區MFT應該不超過(guò)100M,當然特殊情況例外),然后相對0號MFT向后跳轉估計大小的扇區,向上搜索最后一項MFT。由最后一項MFT即可確定MFT的簇數,從而確定結束的VCN。
第三、屬性體的大小。由簇數×每簇扇區數×每扇區字節數,即可得到屬性體的大小。
第四、DATARUN數據。包含簇數和起始簇號,這在前面已經(jīng)算出來(lái)了,只需要轉換成16進(jìn)制填入即可。
當然,為了方便起見(jiàn),用模板填寫(xiě)更容易。
這四步做完后,保存退出,然后重新加載,即可在winhex中看到找回的數據,原來(lái)的MFT記錄在31號(XP系統)或255號(WIN7系統)之前是看不到的。當然在分區中還是沒(méi)有數據,把這些數據導出保存(為了保險起見(jiàn))。為什么在分區中沒(méi)有數據呢?

聯(lián)系客服