1. 程式人生 > >SSD固態硬碟能否恢復--爭議

SSD固態硬碟能否恢復--爭議

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

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

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

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

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

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

Kingston's SSDNow M Series - 1G & Non-TRIM (左), 2G & TRIM (右)

    機械硬碟可以隨時覆寫資料而不會影響硬碟的讀寫效能,即使使用幾年後其讀寫速度也不會有較大變化。與之相比,固態硬碟由於NAND快閃記憶體不同的工作原理導致使用一段時間後就會遇到效能下降問題。

    我們可以用磁碟碎片產生的過程來解釋這個問題,系統向磁碟的某個區塊寫入了一堆資料,在不需要的時候使用者就會刪除這些資料並在同位置儲存別的檔案,而作業系統是以固定大小的區塊來儲存檔案的(windows系統預設格式化的時候是以4KB為一個數據單元),新儲存的檔案不一定能恰好填滿原來佔用的區塊,假定一張圖片的大小是6KB,需要佔用一個4KB區塊和另一個區塊的2KB,而剩下的的2KB空間可能被另外的word文件佔用,如果使用者刪除了影象檔案,但是word文件不受影響,依然要佔據剩下的2KB,因此就會產生磁碟碎片。

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

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

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

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

資料恢復在支援TRIM的SSD上就會成為一個難題,一旦你刪除了某個檔案(隨後又清空了回收站),你的資料可能永遠也無法恢復了。因為TRIM指令的存在,使用者刪除資料後SSD硬碟就會徹底清空那個區塊,而不是像傳統的機械硬碟那樣只刪除索引而保留資料。

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