瀏覽單個文章
bpoff
Junior Member
 

加入日期: Dec 2008
文章: 791
這個問題我也是迷迷糊糊的......雖然 SSD 用很久但我從沒做過整盤清除的動作.......
當年灌的 Win7 一直苟延殘喘到現在都懶得重灌.........
雖然有變比較慢但說真的還好........

今天看到這個問題興起就查了一下.......
不知道有沒有理解錯誤.....

看起來 SSD 所謂的 secure erase 跟傳統硬碟單純填零或填一的差別應該是在於
SSD 本身有 wear leveling 的機制.......還有 flash 讀取跟寫入必須以不同單位量存取的問題.....

所以 SSD 本身要 maintain 一個記錄.....
哪個 block內所有 sector 都沒有資料....因此可以直接寫入.......
(也可能是相反....紀錄那些有資料....總之目的相同)

未被記錄的區塊就視為有資料.......
想要寫入該區塊中某個乾淨的磁區......也必須先搬移整個區塊才能寫入......
也就是說即使區塊內全部都是一或都是零.......
只要區塊未被標為 "乾淨".......就可以視該區塊為 dirty block......
所以重點在於讓這個 dirty block table 清乾淨.......

secure erase 理論上是有標準的 ATA 指令專門做這件事.......

一般單純用傳統作法去全寫零或全寫一........
我不確定是不是一樣可以達到相同的效果.......
畢竟我沒親身試過........而網路上也很多人說寫零寫一後速度就回來了........
先當它是有效吧.......
我是認為這個方法沒有做標準的 secure erase 好........
因為全盤寫入的話每個 cell 的壽命是真的會實際減損1次.......也比較花時間......
而 secure erase 的優點是他主要只是針對把那個 table 清乾淨........
所以在比較快的同時也不會所有 cell 的壽命都需要實際減損 1 次......

至於怎麼做 secure erase......有哪些方式可以做.......
由於我沒做過的關係就不多說.......
只知道 SSD 原廠附的那些工具程式裡面應該有官方工具可以做........
其他一些 linux 上的如 parted magic..... windows 上......一堆磁碟工具軟體.......
看有沒有人比較確定哪個是真的可做 secure erase 的來回應看看吧.......

另外有個點是.......按照網路上很多人建議的做法........
做完不知道到底是 secure erase 還是 0/1-fill 的動作後都必須重灌.......
如果 SSD 上原來有系統其實很麻煩.......只為了恢復速度而已.......

不知道是不是可以用類似 "清除可用空間" / "sdelete" 之類的做法.......
這樣可以省很多事........
但我不知道用這個方法.......那個 block table 會不會被處理.......

如果我的理解有錯的話請不吝指正我即可.......
畢竟我沒試過........
但因為看網路上某些說法滿怪的........
所以我把我看到比較合理的觀點以我自己的理解表達一下看看對不對.......
舊 2016-07-13, 08:31 PM #4
回應時引用此文章
bpoff離線中