Skip to main content

最近有位客戶拿了誤刪的記憶卡來做資料救援,因為自己用救援軟體什麼都讀不出來,於是送到我們這邊處理。

我們讀取之後發現也沒有東西,就使用 WinHex 檢查,結果真的是一片荒蕪,什麼都沒留下,全都是 0

但是之前的印象似乎不是每台都會這樣,因此做個實驗來驗證看看有什麼差異。
拿一張128GB  Sandisk SD 做實驗. 在正常狀況下對一張128GB SD做全扇區寫0動作.大概需要費時約15 min 以上

先用Nikon D7000,先拍照之後接上電腦,可以看到格式化之前扇區的狀態:

 

然後使用 PC 做快速格式化,再來檢查後看到:只有MBR 不一樣 其他DATA都一樣.

 

還是跟原來一模一樣。

 

接著使用D7000把記憶卡格式化,格式化之後去比對:只有MBR 不一樣 其他DATA都一樣.

 

發現還是一樣,所以看來是使用的格式化方式不同造成的結果。

 

再找了兩台相機來實驗,首先使用 Panasonic DMC-G5 ,格式化之後再檢查,得到的結果是:

 

可以看到還是跟之前一樣 只有MBR 不一樣 其他DATA都一樣.。

 

然後再拿 Canon EOS M,要格式化的時候出現了不同的選項

 

先使用一般的格式化,得到的結果是:

資料依然健在。

 

再來使用低階格式化,

 

等待8秒之後,結果不太一樣了:

全部變為0,這樣子就無法復原了。

相機上是如何做到這麼這樣短的時間對記憶卡寫0呢?
這是因為某些相機上的低階格式化會使用 Forcing Erase SD協議低階指令
效果就如同對ATA SSD做Secure Erase ATA Command 一樣 ,瞬間全部扇區都變成0. 
SD指令作法如下
 選擇一個卡(CMD7),將塊長度 (CMD16)定義為1個字節(8位卡片鎖定/解鎖命令)。數據塊為 CMD42 Erase, 以上都要合16位CRC。 
此狀況無法做資料恢復.
做一名資料數據恢復專家,必須確切瞭解物理邏輯協議.而不是只是單純使用現成軟體做資料恢復.

參考
 SD Phy規範與協議指令

Thx Chang

Author Thx Chang

More posts by Thx Chang