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

    2010-9-15 10:42| 發布者: 蝴蝶| 查看: 14460| 評論: 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硬盤就像我們的內存,一旦數據被清除就再也找不回來了。

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

    請發表評論

    全部評論

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

        對于這句話我不太理解,按這句話的意思就是說,機械硬盤直接覆蓋,也就是(一個動作)直接寫入文件;而SSD硬盤是先清除原有數據,後寫入新數據,這樣就是要用兩個動作才能完成新數據的寫入,爲什麽兩個動作要比一個動作的性能更高呢???
      • 引用 flysky100 2015-5-9 19:08
        長知識了,多謝分享
      • 引用 chk8022 2015-5-11 21:55
        好的 學習了
      • 引用 csdn 2015-5-15 23:57
        chengkao06 發表于 2015-5-6 14:02
        一旦需要在原位置寫入新的數據,傳統的機械硬盤執行新數據寫入只需要覆蓋寫入即可,而SSD硬盤必須要先清除 ...

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

    查看全部評論>>

    論壇精選
    • ST希捷F3硬盤 固件讀寫方法  通電時間清除與增加視頻教程

      ST希捷F3硬盤 固件讀

    • SSD固態硬盤SM2258xt數據恢複成功

      SSD固態硬盤SM2258xt

    • 25879F3-Repair-Tools-7.0
    • 20839超級西數專修破解版!
    • 19559ST希捷F3硬盤 固件讀寫方法 通電時間清除
    • 15168TREX軟件全套腳本
    • 14459弄了一個TERX,已上鏈接,下載的朋友加點分
    • 12567閑著沒事做,發個時間隨意加的視頻教程
    • 12053硬盤維修TREX 自動修盤 修壞道 硬盤維修軟
    • 10453trex自動化打包原盤80055固件成固件包

    掃描微信二維碼

    查看手機版網站

    隨時了解更新最新資訊

    .

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

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

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