關於NTFS文件修復一些見解

       最近公司想做一款Windows文件恢復軟件,通過此軟件,把一些用戶誤刪除或誤格式化的文件恢復回來。讓我先做下這方面的預判(由於我對NTFS有些瞭解,上個項目就是跟NTFS相關)。

       想做文件恢復,那就涉及到文件系統,目前windows端,最常用的就是NTFS文件系統。其次是FAT文件系統。FAT文件系統又可以細分爲FAT16、FA32、exFAT等。這裏先說下對於NTFS文件系統內,文件恢復的大概的思路(目前FAT還沒詳細瞭解,後續查了相關資料再說)。

       NTFS文件系統裏,NTFS分區主要由引導扇區、主文件表(Master File Table,MFT)、系統文件和文件存儲區域等4個部分組成。而文件的讀寫是以簇爲單位。

       新建一個文件或文件夾時,會在MFT裏增加一條記錄,用以記錄文件的相關信息(文件的大小、訪問時間、修改時間、存儲位置、父目錄、文件屬性等),並在一個BitMap的系統文件裏,改變文件所佔簇的使用情況。

       刪除一個文件時,MFT表有如下改動:

         1.把MFT表裏,這個文件的標誌位改爲未使用狀態

         2.把這個文件,在BitMap裏所佔用的簇,標記未0(未使用)

         3.從MFT裏,文件所在目錄裏,移除此文件

       通過上面的描述,可以看出,NFTS文件系統裏,文件刪除實際上只是一個標記的刪除,真正的內容還是存在的,只要MFT表裏相應的文件記錄沒有被覆蓋,並且文件內容所在的簇,沒有被重寫,文件是完全有可能被恢復的。(這也是很多文件恢復軟件,反覆提及、恢復文件時,要對硬盤少操作。因爲一旦硬盤發生了寫操作,文件的MFT記錄或者是文件所佔用的簇,就有可能被新文件覆蓋)

      文件恢復操作的實際過程:

         1.遍歷MFT表,找出標記爲刪除的文件記錄

         2.從文件記錄裏,獲取文件所佔用的簇

         3.分析BitMap,判斷文件所佔用的這些簇,是否是未使用狀態(*注:如果恢復前對這些簇進行了讀寫操作,此判斷會不準確)

        4.對數據進行讀取及恢復

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章