SSD定期做Secure Erase
SSD有很好的随机读性能,越来越多的开发机使用消费级的SSD做系统盘。但由于SSD存储单元的可擦写次数有限及错误诊断策略的影响,也会出现一些意想不到的状况。 前段时间,一同事的SSD挂了,BOIS都无法识别。虽然子在保固期内可以置换新的,但数据是没法找回来了。想到我自己也是用SSD做系统盘,如果哪天莫名挂掉,临时文件丢失,重做系统,还是挺恼人的。于是google了一下,希望能知道原因及避免的办法。
先说原因。BIOS找不到SSD,是因为 SSD 的主控芯片把 SSD 给 shutdown 了。如果SSD的某个块(block,擦除单元)中,损坏的存储单元超过 5%(根据SSD的ECC算法会有不同的值),这时主控就无法识别数据是否正确的写入了SSD。为了避免继续写入读出错误的数据,主控采取了shutdown的做法,清除了block的索引表(faint,怎么会这样?)。这样的盘,厂商只负责更换新的,不会帮你回复数据。由于存储块的排序算法各不相同,当前能做SSD数据修复的公司不多,价格就。。。你懂的。
如果能监控到块中损坏单元的比例,是否就能提前做好准备呢?遗憾的是,现在没有工具能做这个检测。不过 SSD 的 Secure Erase 能在让 SSD 恢复成出厂态(让 SSD 再次回到原来的高效状态),同时标注损坏单元超标的Block,将它们隔离起来(这样就能减少shutdown的可能,延长SSD的使用了)。根据使用频度,一年或十个月做一次 Secure Erase 对 SSD 的使用安全是有好处的。
那么,如何做安全擦除呢?可以使用 parted magic 工具。
工具下载地址:
http://ncu.dl.sourceforge.net/project/partedmagic/partedmagic/Parted%20Magic%205.4/pmagic-5.4.iso.zip
http://sourceforge.net/projects/unetbootin/files/latest/download