• 設為首頁
  • 點擊收藏
  • 手機版
    手機掃一掃訪問
    硬盤基地手機版
  • 關注官方公眾號
    微信掃一掃關注
    硬盤基地公眾號
  • 刪除無法恢復?談SSD固態硬盤數據恢復

    2010-9-15 10:42| 發布者: 蝴蝶| 查看: 13995| 評論: 46|原作者: Rob Williams

    摘要: 注:固態硬盤(SSD)憑借超高速的讀寫速度在高端玩家中頗受歡迎,但是SSD硬盤也暴露出一些不成熟的表現,之前已有過固件門、性能下降等例子。Techgage網站最新的測試顯示SSD硬盤在數據恢復方面遇到了新的挑戰,這一 ...
    注:固態硬盤SSD)憑借超高速的讀寫速度在高端玩家中頗受歡迎,但是SSD硬盤也暴露出一些不成熟的表現,之前已有過固件門、性能下降等例子。硬盤基地INTOHARD網站最新的測試顯示SSD硬盤在數據恢復方面遇到了新的挑戰,這一問題在支持TRIM指令的固態硬盤上尤為嚴重。有鑒于此,編輯將這篇文章編譯過來希望能引起玩家的重視。目前這一問題還沒有別的評測加以佐證,筆者手頭也沒有固態硬盤可重復驗證,希望正在使用固態硬盤的玩家在評論中多多探討,并注意備份自己的重要數據。

    你是否已將你的PC升級到了新一代配置(比如多核CPU、SSD固態硬盤),并為新電腦的高性能而沾沾自喜?的確,現在的PC機性能越來越強大,但是一個不小心,這個價值$2000美元的野獸也可能讓你一聲嘆息。如果你和筆者一樣喜歡在進入桌面之后加載一大堆應用程序,那么你就需要小心了。

    問題源于SSD固態硬盤,這個2.5寸的NAND硬盤可以大幅提升電腦性能,啟動速度更是飛快,用過SSD硬盤的用戶與普通機械硬盤一對比就會發覺兩者之間巨大的差別。不過本文的重點不是SSD硬盤的性能,而是關注固態硬盤可能帶來的問題,尤其是Win7系統中引入的TRIM指令可能會對數據恢復造成負面影響。這個問題目前尚有爭議,但是依然值得我們去關注和探討。

    固態硬盤以前也出過問題,還記得Intel的磚頭門嗎?起初人們認為這還只是Intel一家的SSD硬盤的風險,但是后來的事實證明市面上的多款SSD硬盤都有著相同的固有問題。

    幾乎絕大多數存儲設備在刪除文件時都有如下類似的步驟:一旦用戶刪除文件,指向數據在硬盤上的具體位置的索引就會被刪除(對于機械硬盤來說就是LBA邏輯塊尋址)。舉例來說,如果為了管理方便你把自己收藏的電影存放位置寫在一張紙上,某天你不慎把這張紙燒掉了,實際上你只損失了一張紙,實際的電影還在。通常我們的數據存儲就是這樣,刪除文件時只是刪除了文件的索引,具體的文件還存在硬盤上。

    也正因為實際數據仍然保存在硬盤上,數據恢復才有了操作的可能,當然前提是用戶沒有在原位置覆蓋新的數據。一旦用戶誤刪除了重要文件,使用數據恢復軟件都有很高幾率成功恢復文件,這種事對機械硬盤來說并不鮮見。隨著SSD硬盤的興起,恢復數據的方法雖然沒有改變,但是固態硬盤獨特的使用方法使得數據恢復面臨新的挑戰。

    401.jpg

    機械硬盤可以隨時覆寫數據而不會影響硬盤的讀寫性能,即使使用幾年后其讀寫速度也不會有較大變化。與之相比,固態硬盤由于NAND閃存不同的工作原理導致使用一段時間后就會遇到性能下降問題。我們可以用磁盤碎片產生的過程來解釋這個問題,系統向磁盤的某個區塊寫入了一堆數據,在不需要的時候用戶就會刪除這些數據并在同位置保存別的文件,而操作系統是以固定大小的區塊來保存文件的(windows系統默認格式化的時候是以4KB為一個數據單元),新保存的文件不一定能恰好填滿原來占用的區塊,假定一張圖片的大小是6KB,需要占用一個4KB區塊和另一個區塊的2KB,而剩下的的2KB空間可能被另外的word文檔占用,如果用戶刪除了圖像文件,但是word文檔不受影響,依然要占據剩下的2KB,因此就會產生磁盤碎片。

    隨著使用時間的增長,磁盤碎片就會越來越多,進而導致磁盤性能下降,所以我們需要定期整理磁盤碎片,將碎片占用的空間整合轉移,但是對于固態硬盤來說磁盤碎片整理并沒有解決全部問題。

    一旦需要在原位置寫入新的數據,傳統的機械硬盤執行新數據寫入只需要覆蓋寫入即可,而SSD硬盤必須要先清除原有的數據才能將新數據寫入硬盤,這也是SSD硬盤性能更高的一個原因,而執行清除―寫入的過程也正是TRIM指令最主要的作用所在。

    745.png   

    微軟在Win7系統引入了新的基于ATA命令的TRIM指令,一旦有刪除文件、格式化或者忽略文件之類的磁盤讀寫,系統就會向SSD硬盤發出命令清空區塊中數據。這個過程很簡單,但是很有實用價值。無論用戶是刪除文件還是格式化SSD硬盤,TRIM指令都會清空數據及索引,某種意義上來說這時的SSD硬盤相當于全新狀態,不再有性能下降的問題。

    TRIM指令的作用也正是本文的由來,多數人都忽略了TRIM指令的負面影響。用戶在享受TRIM帶來的好處時也不知不覺中使得數據恢復的可能性降至0。如前文提到的,在機械硬盤和不支持TRIM指令上的固態硬盤上進行數據恢復沒有什么問題,只有原位置沒有寫入新的數據,用戶只需要選擇合適的軟件基本上就能恢復誤刪文件。

    數據恢復在支持TRIM的SSD上就會成為一個難題,一旦你刪除了某個文件(隨后又清空了回收站),你的數據可能永遠也無法恢復了。因為TRIM指令的存在,用戶刪除數據后SSD硬盤就會徹底清空那個區塊,而不是像傳統的機械硬盤那樣只刪除索引而保留數據。

    筆者無法確認TRIM指令是否會導致機械硬盤上的數據也不可恢復,如果必須有個結論的話那么普通消費者也無法進行這樣的數據恢復,當然如果有適當的工具,數據恢復也并非不可能。某種意義上我們可以把NAND閃存看做電腦的內存(RAM),內存一旦斷電其中的數據就會消失無蹤(某些情況下可以啟動恢復很可能是使用特殊手段保證內存不斷電)。

    [2.測試之前的準備]

    我們用大幅內容討論了TRIM以及數據恢復的背景知識,那么我們如何證明受TRIM影響的SSD無法恢復數據?即便我很自信這是個事實,但是我們仍要找到實際的測試方法將這個設想付諸實踐,實踐才檢驗真理的唯一標準。

    第一頁上配的圖中是兩款金士頓M系列80GB的SSD硬盤,1G和2G,他們其實都是基于Intel的方案,因此第一代1G不支持TRIM,而2G那款支持TRIM指令。

    測試之前,我們HDDErase對1G硬盤進行一次徹底擦除(這個過程可以當成TRIM指令操作,他們的效果是一樣的,只是HDDErase擦除的是整個硬盤),2G那款只是正常安裝使用。測試使用了64位Win7旗艦版,因為64位的系統中TRIM是默認開啟的。

    經歷以上步驟后,兩款硬盤可以看作都處于出廠狀態,使用系統自帶的磁盤管理程序將兩塊硬盤格式化為NTFS格式使用。

        201.png
       
        之后筆者使用自己的文件分別復制到兩塊硬盤中,保證兩塊硬盤中的文件是同樣內容同樣的大小。最終每個硬盤的字節數都為79,873,675,264 byte,大小74.3GB,剩余空間只有3MB,總計40,002個文件和670各文件夾。之所以拷入這么多文件主要是保證文件類型的多樣性,保證每種文件都有恢復的可能性。

        202.png

        測試之前還要檢查一下Win7系統中TRIM指令是否真正有效,用戶可以在命令行中輸入如下指令:

    fsutil behavior query disabledeletenotify[NextPage]    如果返回的結果為0,那就意味著TRIM指令可用,如果返回結果是1則說明TRIM不可用,即便硬盤支持TRIM也沒有用。需要注意的是,Windows表示TRIM可用與否并不代表它的實際工作狀態,還有別的因素影響這個指令的工作,用戶必須檢測系統以確保TRIM指令可以正常工作。

    準備工作完成之后我們就開始實際的測試,這一步沒有什么特別的,就是ctrl+a全選文件然后確定刪除,那么文件到底能否恢復?下一頁將會揭曉。

    [3.實戰數據恢復]

    第一次的測試選擇是的R-Studio數據恢復軟件,結果如下:

    SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題 SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題
    左: Non-TRIM - 右: TRIM-Enabled
    3-1.png
    剛一看到支持TRIM指令的硬盤上也是大片粉紅色(意味著有文檔可恢復)筆者也很受打擊,以為自己的推論是錯誤的,不過仔細檢驗之后結果又很明確:不支持TRIM指令的硬盤找到了288,407個可恢復文件,支持TRIM指令的硬盤只找到了488個可恢復文件。這是否意味著TRIM固態硬盤也可以恢復數據?還不一定。

    雖然TRIM硬盤也找到了一些文件,但是全都被破壞了,這依然沒有改變TRIM使得數據恢復不可能的結論,圖中粉紅色區塊表示的可恢復文件塊可能是文件系統的緣故,雖然這一點還不能確認,不過TRIM指令確實讓那些寄希望恢復誤刪文件的用戶備受打擊。

    為了進一步證明我們的結論,我逐個檢查恢復報告發現兩塊硬盤上的文件實際上依然存在,非TRIM硬盤上只要不覆蓋就可以恢復所有文件(建議用戶忽略軟件提示的X號,大部分數據只要不被覆蓋都是可以恢復的)。同時還要注意的是,TRIM硬盤只找到了根目錄下的Games和Pictures兩個文件夾,原本則有七個文件夾。

    SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題 SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題
    左: Non-TRIM - 右: TRIM-Enabled
    302.png
    筆者找到的可恢復文件是我最喜歡的網游《亞瑟王的召喚》內測時的截圖,有11年的歷史了,因此對個人來說相當有紀念意義。如果用戶重要的文件誤刪除并且無法恢復,想想看這會多么令人沮喪。在TRIM硬盤上恢復數據不是問題,但在TRIM硬盤上即便提示數據可恢復,最終的結果也不一定很樂觀。

    SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題 SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題
    左: Non-TRIM - 右: TRIM-Enabled
    303.png
    筆者多次嘗試將數據恢復,甚至是把容量最小的txt文檔也恢復了,在非TRIM硬盤上恢復的文件沒有問題,而在TRIM硬盤上恢復出來的文件卻遇到了奇怪的問題,即便恢復的數據與源文件大小一模一樣,但是數據完全不對,內容甚至為0。例如恢復的txt文檔即便是大小與原文檔一樣,在用note程序打開時里面的內容也是空的。(原文作者說打開的txt文檔涉及個人隱私,因此沒有上圖―編者注。)

    為了進一步驗證,筆者又使用了Ontrack and O&O's的數據恢復軟件再次掃描硬盤,結果如下:

    SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題
    左: Non-TRIM - 右: TRIM-Enabled
    04.png
    SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題 SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題
    左: Non-TRIM - 右: TRIM-Enabled
    305.png
    從上面的截圖中可以看出,TRIM硬盤在數據恢復方面再次悲劇,沒有找到實際可用的索引文件。它們在TRIM硬盤上找到的只是一些雜碎文件,即便是這些文件恢復之后也找不到擁有的數據。因此我們最終認定:在支持TRIM硬盤上恢復數據基本不可能。

    [4.總結]
    從整個測試中可以看到,在TRIM固態硬盤上恢復數據基本是做無用功,一旦TRIM發出了清除數據的命令,用戶只能和誤刪文件吻別了。耐人尋味的是,(使用TRIM指令清空數據后)會留下一些特殊的數據,筆者也沒有弄明白具體是怎么回事,它可能是與NTFS文件系統有關的數據,就好像Windows系統格式化硬盤后會留下一些索引文件一樣。測試得到的結果很明確:排除這些索引文件后,TRIM硬盤上的已刪數據永遠消失了。

    本篇測試看起來可能很很簡單,而且也不是很詳盡,我去年12月中旬才著手這個項目的,花了很長時間才寫成這篇文章。這段時間我多次測試了非TRIM硬盤和TRIM固態硬盤,因此我對自己的發現非常自信。有意思的是,最近測試的SSD可以找到一些可恢復文件,而以前測試的硬盤刪除操作后一點文件也找不到。因此這個問題看起來有隨機性,但是最終的結論還是很明確的:(TRIM硬盤)一旦刪除數據就再也找不回來了。

    SSD的阿喀琉斯之踵? 探究固態硬盤的數據恢復問題
    401.jpg
    在我測試的過程中,我給許多廠商都發郵件溝通過這個問題,不過并沒有收到任何有價值的回應。這些公司包括數據恢復廠商、SSD制造商甚至包括主導制定ATA標準的T13公司。

    我詢問的廠商中有幾家SSD銷售商和數據恢復軟件商,SSD銷售商以及他們的工程師都不能回答我們的問題,數據恢復廠商則兩次掛斷我們的電話,似乎沒有廠商愿意我們深究數據恢復和TRIM背后的故事,因此我們得到的結論都是基于我們自己的發現。

    雖然本文的主要內容是提醒人們注意TRIM指令的負面影響,不過我們并不會一棍子將TRIM打死,畢竟TRIM指令是使SSD硬盤保持最佳性能的關鍵之一。TRIM可能有一點缺點,不過它仍然是保證SSD正常使用的必要技術。

    在此我們提醒使用TRIM硬盤的用戶要注意備份重要數據,在非TRIM存儲設備上用戶還有機會恢復誤刪除文件,但在TRIM硬盤上并沒有這么幸運,丟失的數據不可能找回來,雖然還不能確認專業恢復廠商能否找回數據,但是TRIM硬盤就像我們的內存,一旦數據被清除就再也找不回來了。

    我們之所以多次強調備份數據的重要性,是因為很多人都和筆者一樣經歷過誤刪文件帶來的教訓。目前固態硬盤還沒有普及,本文測試發現的問題也只是影響一小部分人群,但是用戶依然有必要備份自己的重要數據,一旦出現以外可能后悔都來不及。

    開心

    鄙視
    3

    鼓掌

    憤怒

    可憐

    剛表態過的朋友 (3 人)

    該文章已有46人參與評論

    請發表評論

    全部評論

      • 引用 hihun 2015-4-2 13:35
        原來如此呀,有利有弊@@@
      • 引用 hawkyuan 2015-4-6 09:48
        最折中的方法是SSD只用作系統盤,機械硬盤充當數據存儲的介質,并且把桌面和我的文檔轉移到C盤之后的分區.
      • 引用 loginxx 2015-4-9 22:59
        噢。多謝樓主的研究成果。贊一個。
      • 引用 英勝數據恢復 2015-4-10 08:59
        說實話,這個不能這樣確定!
        刪除的我就恢復成功過,SSD的。。。
      • 引用 phy 2015-4-10 15:00
        厲害,長知識了。
      • 引用 hch100 2015-4-11 07:05
        很好的文章,學習了!
      • 引用 xxyysq 2015-4-25 20:32
        樓主厲害。。。。。。。。
      • 引用 lyly851123 2015-5-3 16:53
        大家五一節快樂!看來還都沒回來,論壇人好少啊
      • 引用 chengkao06 2015-5-6 14:02
        一旦需要在原位置寫入新的數據,傳統的機械硬盤執行新數據寫入只需要覆蓋寫入即可,而SSD硬盤必須要先清除原有的數據才能將新數據寫入硬盤,這也是SSD硬盤性能更高的一個原因。

        對于這句話我不太理解,按這句話的意思就是說,機械硬盤直接覆蓋,也就是(一個動作)直接寫入文件;而SSD硬盤是先清除原有數據,后寫入新數據,這樣就是要用兩個動作才能完成新數據的寫入,為什么兩個動作要比一個動作的性能更高呢???
      • 引用 csdn 2015-5-15 23:57
        chengkao06 發表于 2015-5-6 14:02
        一旦需要在原位置寫入新的數據,傳統的機械硬盤執行新數據寫入只需要覆蓋寫入即可,而SSD硬盤必須要先清除 ...

        http://www.thefirelocker.com/article-571-1.html
        這篇文章也許能夠幫到你理解;

    查看全部評論>>

    掃描微信二維碼

    查看手機版網站

    隨時了解更新最新資訊

    .

    在線客服(服務時間 9:00~18:00)

    在線QQ客服
    .
    Email:9443120@qq.com
    移動電話:13011628855

    Powered by Intohard X1.0© 2001-2013 Inhdd Inc.( 魯ICP備09029790號 )

    湖南快乐十分