標籤:

為什麼刪除的數據可以被還原?


就像你準備扔掉充氣女朋友了,在還沒被農民伯伯撿走之前,你都還可以在垃圾箱裡面撿回來一樣。


硬碟、U盤、手機卡等的存儲設備,採用的邏輯存儲結構都類似。打個比方,盤就像一本書,文件就是書中的章節,目錄中記載了各章的頁碼。刪除文件時往往只是將目錄項刪除,而這一章的內容並沒有被擦除。如果這一章所在的頁碼沒有被寫入新的數據,那麼即使目錄全部被刪光,我們從書的第一頁開始看,一定也可以找到每一章的內容。


想一想,對於機械硬碟來說,為什麼寫入很慢,讀出也不快,而刪除卻快如閃電?因為它刪除的是數據的索引,而不是數據本身!這些數據以二進位的1和0的形式存儲在硬碟的介質里,你刪除和格式化都沒有把其重寫,僅僅只是刪除索引。

ps:類似這種Google百度一下結果就出來了的問題請別來知乎做伸手黨好么


刪除的數據可以恢復大概可以分為以下幾類(暫把存數據的系統比作書):

1、刪除索引後而數據未被覆蓋的恢復:

正如大家所言,一般的刪除只是刪除數據的索引(書的目錄),對於文件系統來說沒有數據的索引就認為數據不存在。

而數據恢復軟體就可以掃描到數據部分,對數據進行拼接,補寫目錄(索引)從而還原數據。

還原過程大多是連連看的過程,只是大多數據(如:圖片、文檔、音樂。視頻等)的頭尾比較固定,可以根據這類文件的特徵進行最多可能的還原,然後供你選擇還原哪個文件。

2、刪除後且數據被覆蓋的恢復:

少量的覆蓋: 數據被覆蓋的比較少時,上面所說的格式比較固定的數據可以用猜或忽略的方式還原(如:書裡面的有一段「我喜燙你」,應該能還原為「我喜歡你」或者「我喜 你」,這裡應該能明白大概意思)。

這類方式多為演算法還原,高端點的還原軟體應該有演算法選擇項,可以多試試盡量多的還原數據。

大量的覆蓋: 如「我%你」,這裡面%是被覆蓋的數據,不好猜了吧,嘿嘿~

完全的覆蓋: 如「%*(%」,這誰要能猜出來誰就是不是東西,哼哼~

注意:以下內容為本人YY,不對正確性和準確性負責,如有巧合請聯繫我

後面兩種情況在民用領域很少能成功還原(ps:不能排除某些天才 )

現在最普遍的存儲介質為:硬碟和快閃記憶體。

先看硬碟:

硬碟是用磁極正反來表示二進位的0和1(這裡不考慮其它記錄方式,原理一樣)。由於磁性材質都有衰減,所以硬碟磁軌上記錄的磁極信息可視為模擬信號。

讀取到這種未轉義的模擬信號,理論上是可以利用衰減還原和上下文對比還原出上次記錄的信息的。
而且還原難度不是我能想像到的。

生活中的例子來對應一下,小時候寫錯的作業用橡皮擦改正後,原來的錯誤是不是若隱若現呢? 萬人簽字後那個被重寫了數次的布片片上是不是還能找你的名字捏?

所以,銷毀硬碟數據的方法為反覆擦寫數十次,把上述方法還原的可能性大大地降低。

再看快閃記憶體:
(嗚嗚~ 剛剛看了下快閃記憶體原理,很受打擊,沒搞清楚有沒有可能得到轉義前的模擬信號,貌似快閃記憶體里全是數字信號啊啊啊~~)不敢瞎猜了,放過我吧~

完了,這種回答會被鄙視吧~


就普通的硬碟來說,存儲數據是通過磁頭在盤面上改變電磁極性來記錄數據的(謝謝 @劉五元 指錯……);而文件系統在保存一個文件時,那個文件一般就是一個鏈接,鏈接像一個指針,指向磁碟扇區實際記錄數據的區域。而當我們刪除那個文件時(清空回收站),只是把這個文件的鏈接給刪掉,而沒有去抹掉相應的磁碟扇區數據——因為沒有必要,沒有任何鏈接指向的磁碟區域,就被當作「已經釋放了的磁碟空間」,即便之前記錄的數據還在裡面,也不會被尋找到了,我們就當作它已經被刪除了,如果有新數據存入,直接把這片之前有的數據覆蓋就行了。就好比牆壁刷漆,這一片牆壁油漆打算刷新漆,沒必要把原來的油漆摳下來,直接刷新漆就行。
顯而易見,這個我們認為已經被刪掉的東西肯定還是能用專業的手段恢復的。當然是在新的數據將這片區域覆蓋之前,至於什麼時候會被新數據覆蓋,那得看文件系統和磁碟的調度了。
【不過聽說現在有很牛的技術即便是被二次覆蓋了還是能恢復出上一次數據,那估計至少得納米級的精度吧……】
【知乎第一個回答,不是專業的,有錯指教見諒。。】


推薦閱讀:

求教。音頻文件的位數,碼率,採樣率都代表什麼意思啊?
win8.1 efi引導文件被刪除了,應該怎麼恢復?
經常伏案工作的人,有什麼辦法緩解頸背痛?
如何看待電腦小白去學習計算機專業?

TAG:計算機 |