為什么我恢復的文件打不開/打開全是亂碼


為什么我恢復的文件打不開/打開全是亂碼

 

你是否遇到過這種情況,即明明找到了自己丟失的文件,但恢復出來就是打不開,或者打開全是亂碼?下面我們來介紹一下出現這種情況的原因。

要了解這種現象出現的原因,首先我們要了解一個文件是怎么存放在硬盤分區中的。
例如,我們有一個叫“報表 .doc”的文件存放於 D盤,如圖 1:

 

圖 1


在分區中,為了存放一個文件,系統首先在分區中類似於書的目錄的結構中( FAT32為目錄項, NTFS為 MFT項)寫入文件的文件名,大小,時間,屬性等信息,並且從可用空間里分配一塊區域用於存放文件內容,內容所占的位置也寫在目錄中,以便以后尋找。如上圖,“報表 .doc”占用了 21, 22, 23三塊空間,並且在目錄中有對它的描述。現在如果我們誤刪除這個文件,則會變成下圖:

 

圖 2


我們看到,當我們刪除“報表 .doc”時,系統只是在這個文件目錄的位置加上了一個“已刪”標記,而關於它的一切其他數據和內容都還完好的保存在分區中,此時, 21, 22, 23三塊區域隨着“報表 .doc”的刪除,變為了 可用空間,用於存放文件位置信息的第 10塊區域因為被加了刪除標記,系統在寫入新文件時就可能重用這塊區域。如果我們在數據恢復時是圖 2的這種情況,恢復成功率是 100%,因為關於“報表 .doc”的一切信息均完好。

但是,如果我們意識到文件誤刪的時間較慢,從刪除文件到開始嘗試恢復之間還進行過其他操作比如,在 D盤安裝了其他程序,則圖 2的這種情況將可能變為圖 3所示:

 

圖 3
 


    我們在D盤安裝了新的程序,它的其中一個文件“a.exe”正好被分配到了20和21塊,這時,“報表.doc”文件的第一部分內容就被覆蓋了,我們現在如果開始恢復文件,從第10塊得到文件的內容在21-23,在把21-23這3塊的信息保存成新文件,由於21已經被毫不相干的其他文件占據,所以文件被破壞,此時再用Word打開,就會提示文件損壞,或者直接顯示亂碼

為什么格式化可能無法恢復

 

首先我們了解下格式化與刪除
  我們向硬盤里存放文件時,系統首先會在文件分配表內寫上文件名稱、大小,並根據數據區的空閑空間在文件分配表上繼續寫上文件內容在數據區的起始位置。然后開始向數據區寫上文件的真實內容,一個文件存放操作才算完畢。
  刪除操作卻簡單的很,當我們需要刪除一個文件時,系統只是在文件分配表內在該文件前面寫一個刪除標志,表示該文件已被刪除,他所占用的空間已被"釋放", 其他文件可以使用他占用的空間。所以,當我們刪除文件又想找回他(數據恢復)時,只需用工具將刪除標志去掉,數據被恢復回來了。當然,前提是沒有新的文件寫入,該文件所占用的空間沒有被新內容覆蓋。
  格式化操作和刪除相似,都只操作文件分配表,不過格式化是將所有文件都加上刪除標志,或干脆將文件分配表清空,系統將認為硬盤分區上不存在任何內容。格式化操作並沒有對數據區做任何操作,目錄空了,內容還在,借助數據恢復知識和相應工具,數據仍然能夠被恢復回來。
  注意:格式化並不是100%能恢復,有的情況磁盤打不開,需要格式化才能打開。如果數據重要,千萬別嘗試格式化后再恢復,因為格式化本身就是對磁盤寫入的過程,只會破壞殘留的信息

 

數據恢復成功率的幾個影響因素

 
    第一條:NTFS分區的恢復概率比較高,一般刪除或者格式化后絕大部分都可以完整恢復的。某些文件有時候無法恢復, 例如文件長度非常大或者文件在編輯使用很長時間,這文件會形成很多的碎片信息,在刪除文件后,這個文件就無法知道文件長度,很難恢復了,例如一些使用很多年的數據庫文件,刪除后用數據恢復軟件掃描到的文件長度是0,無法恢復。定期做磁盤碎片整理可以減少這種情況的發生,但是直接做磁盤碎片整理也有風險,請參考上面需要注意的問題。


    第二條:FAT或者FAT32分區,刪除或者格式化后,比較大的文件或者經常編輯修改的文件,恢復成功率要低一些,比如經常編輯修改的XLS或者CDR文件就很難完整恢復。那些文件拷進去后就不動的文件,恢復成功率比較高,比如PDF或者JPG,MPG等不經常修改的文件,恢復率還是比較高的。這是因為FAT和FAT32分區使用文件分配表來記錄每個文件的簇鏈碎片信息,刪除或者格式化后簇鏈碎片信息就被清空了, 那些經常編輯修改的文件由於它們的文件長度動態增長,在文件系統中一般都不會連續存放,所以文件碎片信息就無法恢復,文件恢復也就不完整了。

    第三條:經過回收站刪除的文件,有時候會無法找到文件。NTFS下,從回收站中刪除的文件,文件名會被系統自動修改成De001.doc之類的名字,原來的文件名被破壞。當您的數據丟失后,不能直接找到文件名,記得別漏過這些被系統改名過的文件哦。 直接Shift+Del刪除的則不會破壞文件名。


    第四條:重新分區或者刪除分區或者分區表破壞,一般后面的分區基本能完整恢復,越靠后的分區被破壞的可能性越低,所以重要數據最好放在比較靠后的分區里面,不要放在C,D盤里。

 

 

什么情況下丟失的數據不能或者不易恢復?(一)

數據恢復不是100%都能成功的,它依靠操作系統對硬盤寫入數據時的一些特性來工作,下面來介紹一些造成丟失數據無法恢復的常見幾種情況。


1、數據覆蓋


假設我們一個文件叫A,他在硬盤里存放方式如圖1

 

圖 1, A(x)表示 A文件的第 x部分,下同
 
將 A文件刪除后,硬盤里的情況變為圖 2:

 

圖 2
 
可以看到,刪除的文件並沒有真正被“刪除”,只是它原本所占用的空間被標記為未使用,此時恢復數據的幾率就非常高。但如果我們沒有及時恢復,繼續使用計算機做別的事,硬盤里的情況就會發生變化, 例如圖 3:

 

圖 3
 
硬盤中寫入了另一個文件 B,因為這部分空間是磁盤的可用空間,所以 B就可以占據這部分,此時原本的 A文件前面 3部分就被覆蓋,這部分數據就永久性的丟失了。現在即使用數據恢復工具掃描出 A文件,也會因為其前 3部分數據丟失而損壞,表現出恢復后文件打不開,或者亂碼。
 
在文件 A刪除后寫入 B,並 不一定會覆蓋原本 A文件所在的區域,這取決於操作系統對文件寫入的調度算法。但是,往磁盤里寫入的內容越多,原 A文件所在區域被覆蓋的可能性就會越大,所以,當用戶意識到自己的文件丟失后,應 立刻停止對目標盤的操作,以免將本來能恢復的文件破壞,造成數據永久丟失。
 



2、FAT32中文件不連續儲存

在磁盤中,有可能遇到一個文件被分成很多部分,存儲在磁盤的不同位置,這種情況稱為文件不連續儲存(也稱磁盤碎片),例如:

 

圖 4
 
此時, A文件就屬於不連續儲存。
在 FAT格式的磁盤分區中,系統使用 FAT表(文件分配表)來描述 A文件各部分所在位置,如下圖:

 

圖 5
 
當我們要訪問 A文件時,首先查找文件的目錄項, A文件的目錄項在 12的位置,系統得知它起始於 54,於是前往 54獲取到 A文件的第一部分。接下來系統查找 FAT表,看到 54號指向 55,於是前往 55獲取 A文件的第 2部分。繼續查找 FAT表, 55號指向 50,於是前往 50獲取 A文件第 3部分。以此類推,直到 FAT表中指向 0,則文件結束。
 
我們現在把文件 A刪除,磁盤中將會變化成圖 6所示:
圖 6
 
刪除 A文件后, A文件目錄項被標“已刪”標記,內容完好,但是, FAT表中有關原本 A文件的記錄被清空了,現在我們再從 12中獲取關於 A文件的信息,也只能知道它從 54開始,而 A文件以后的部分的位置就無從知曉了。多數數據恢復工具對於這種情況,都只能假設 A文件是連續的,即根據文件大小,從 54處讀取 5塊,這樣恢復出來的 A文件只有前 2塊是正確的,最后 1塊也錯了位,這樣就直接導致恢復出的文件打不開,而 A文件真正的第 3、 4部分就永久的沉睡在磁盤中了。
 
在 NTFS文件系統中,不使用 FAT表,而在文件的 MFT項(相當於 FAT目錄項)中直接記錄文件內用所占位置的全部信息,如圖 7:
 
圖 7
 
在關於 A文件的 MFT項中,明確描述了 A文件各個部分所占位置,即使被刪除,只要數據沒有被覆蓋,恢復工具就能從原本 A文件的 MFT項中得到所有必要信息,從正確的位置恢復出 A文件。所以, NTFS文件系統更有利於數據的恢復,並且該文件系統也是微軟推薦使用的文件系統,而 FAT由於年代久遠,即使是 FAT32也只能支持最大 4GB的文件,所以作者在這里推薦大家盡量使用 NTFS文件系統。

 

 

什么情況下丟失的數據不能或者不易恢復?(二)

3、文件的目錄項(MFT項)被覆蓋


在前面兩種情況中我們都提到了一個叫“目錄項(MFT項)”的東西,它是文件系統用來記錄文件名,文件大小,文件創建、修改、訪問時間,文件屬性等等基本信息的數據結構,一般被儲存在各分區的特殊區域。訪問一個文件時,系統必定從這些數據中找到目標文件,根據其中信息才能獲取文件的內容。

當一個文件被刪除時,它原來內容所占的區域會變為可用空間,它的目錄項(MFT項)也會標為未使用,也就是說,以后創建的新文件的目錄項(MFT)項就可能會占據這個位置。我們還是以上面NTFS文件系統中的一個例子進行說明,如圖8:


 

圖 8
 
此時 A文件 MFT項所在的 12號區域中記錄了 A文件的名字,大小,時間,屬性等信息,當我們刪除它后,則變為圖 9:


 

圖 9
 
可以看到, 12號區域被標記為刪除了,但它原本所記錄的 A文件信息並沒有丟失。現在這塊硬盤繼續使用,在分區里繼續創建新文件,上圖所表示的區域就 可能變為圖 10這種情況:


 

圖 10
 
此時,磁盤中有一個新文件 C,它的 MFT項正好被系統分配在了 12,因為 12號已經被刪除,可以重用。此時, A文件原本所有的基本信息則永久丟失。
這種情況,一般數據恢復工具就無法得知 A文件的存在,即使它的內容完好無損。
 
發生這種情況時, A文件原本內容所占區域一定會在磁盤的 可用空間中,因為如果是已用,則原本的內容必定被覆蓋。部分高級數據恢復工具提供磁盤深度搜索功能,可以在磁盤可用空間中通過對常用文件格式的特征進行比對,得知原本有一個文件起始於 54號區域。但除此之外一無所知,包括文件名,大小,時間,屬性等,更不可能得知文件各部分所在位置了。數據恢復工具一般將此類搜索結果根據文件類型分類並加以序號命名(例如: 10012.jpg),但由於連最基本的文件大小都未知,用戶一般需提供一個估計大小值,並且該文件是否能恢復成功,還是取決於文件是否連續儲存。像上面的例子, A文件原本是分散的,即使找到它起始於 54,但對於一個丟失了前后位置關聯信息的文件的恢復是非常困難的,專業人士有時可以憑借自己經驗,使用 WinHex等工具獲取一些文件前后關聯線索幫助恢復文件。



4、錯誤的格式化分區,或使用分區鏡像工具還原了分區


從上面3種情況我們了解到,一個文件是否能恢復成功,取決於數據時候被覆蓋,文件前后關聯信息是否完好。下面我們來分析一下格式化分區或者用分區鏡像工具(例如:ghost)還原分區后數據恢復的情況。

(1)     FAT分區格式化,破壞力:*****
在FAT分區進行格式化時,系統將會清空所有的FAT表,這對不連續儲存文件的恢復來說是毀滅性的。FAT分區格式化后,大部分數據恢復工具都能搜索出之前文件,但只有那些連續儲存的文件能夠正常恢復。

(2)     FAT分區鏡像還原,破壞力:*****
在進行分區還原時,鏡像工具寫入了鏡像分區中的數據,導致一部分數據被徹底覆蓋,鏡像越大,覆蓋的數據區域也就越大,有恢復希望的數據就越少。並且在還原時,FAT表中會寫入鏡像分區的內容,有時就會使一部分數據恢復工具誤認為FAT表有效,而將文件指向了錯誤的地方。

(3)     NTFS分區格式化,破壞力:**
NTFS格式化時會重寫MFT項的前十幾個,而這些項目是文件系統內部的隱藏文件,與用戶數據關系不大,原本的用戶文件的MFT項依然存在,數據恢復的可能性就非常大。一般如果沒有在格式化后的磁盤寫入數據,並且原本分區並不是很滿的話,數據是能全部恢復的。如果原本分區很滿,那么MFT項本身可能分段,造成格式化后找不到一部分MFT項。

(4)     NTFS分區鏡像還原,破壞力:****
NTFS還原分區后也會被覆蓋部分數據,根據被覆蓋部分的大小決定能恢復的數據多少。還原分區時也寫入的新的MFT項,造成靠前的MFT項被覆蓋,從而是數據恢復變得困難。

從這里仍然看出,NTFS文件系統更有利於數據的恢復。使用鏡像還原分區后,由於新數據的寫入,恢復難度也大大增加。格式化分區時如果選擇的不是“快速格式化”,則系統會清理掉大量原本分區的數據,而使數據恢復陷入困境。


    總結:數據恢復永遠離不開一個本質——即數據是否被覆蓋。一旦原本數據被覆蓋,一切恢復手段都是浮雲。

 


免責聲明!

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



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