注意
この記事ではSSDのデータ消去について扱います。
データの消去はディスクを他人に譲渡する際などにやるべきことですが、当然データは消えてしまうので操作ミスに注意してください。
誤った手順での消去や、消去の失敗はSSDがロックされることに繋がり、アクセス不能になってしまう場合もあるようです。
言うまでもないことですが、自己責任でお願いします。
SSDにおけるデータ消去の問題と解決策
SSDはフラッシュメモリによってデータを記録していますが、従来のHDDとは違った特徴を持ちます。
そのため、単純にdd
コマンド等でデータを上書きするのがデータ消去における最適な方法とは言えません。
現在流通している大半のSSDでは、データを安全に消去するためのSecure Erase機能が用意されています。
これによって容易にSSDのデータ消去を行うことができ、かつ消去後のパフォーマンス低下を抑えることができます。
Secure Erase機能によるデータ消去
SSDをSecure Erase機能によって消去する手順は以下の通りです。
必要なソフト等
Secure Eraseを実行するためには、新しめのhdparm
コマンドが使えるLinux環境が必要です。
(GParted Live CDで消去を実行できることを確認しています)
他にもHDDEraseと呼ばれるソフトがありますが、DOS環境が必要で面倒なのでここでは取り扱いません。
環境によっては消去に失敗してSSDがロックされる場合があります。
それを避けるためには、以下のような状態での消去はやめたほうがよいでしょう。
- 消去に2時間以上かかると予想される場合に、
hdparm
のバージョン9.31以前を使用すること - USB-SATA変換アダプタ経由での消去
SSDの状態を確認する
# hdparm -I <device>
で消去対象デバイスの状態を確認します。
# hdparm -I <device>
(snip)
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
出力の最後の方にSecure Eraseに関する情報が出てきますが、**not frozen
**となっていないとSecure Eraseを行うことができません。
また、supported: enhanced erase
はより安全なEnhanced Secure Eraseに対応していることを示します。
最後の行はSecure EraseとEnhanced Secure Eraseにおける消去にかかる時間です。
SSDの状態がfrozen
と表示されたとき、not frozen
にするための方法として以下のものが知られています。
- 電源を入れたまま、SSDのSATAケーブルを抜き差しする
-
# echo -n mem > /sys/power/state
等でPCをスタンバイに入れた後復帰させる
いずれの方法も環境に依存しており確実とはいえませんが、成功例のある対処法です。
(実際に、スタンバイに入れる方法でMacの内蔵SSDを消去することができました)
Secure Eraseを実行する
Secure Eraseを実行する際には、ディスクにパスワードを設定する必要があります。
パスワードの設定は以下のコマンドで行うことができます。
なお、パスワードはSecure Eraseを実行すると解除されるので適当なもので大丈夫だと思います。
# hdparm --user-master u --security-set-pass <password> <device>
パスワードが設定された状態で再起動等が行われると解除するまではディスクへのアクセスができなくなります。
消去に失敗したなどの理由で解除したい場合は、以下のコマンドを使用してください。
この操作にはマスタパスワードが必要です(主要なHDDのマスタパスワード)
# hdparm --user-master m --security-unlock <master password> <device>
# hdparm --user-master m --security-disable <master password> <device>
パスワードが設定されると、# hdparm -I <device>
の出力において**enabled
**と表示されます。
設定したパスワードを使用して、Secure Eraseを実行します。
Enhanced Secure Eraseを実行したい場合は--security-erase
の代わりに--security-erase-enhanced
を使用してください。
ここでは、time
コマンドを併用して実際にかかった時間を計測しています。
# time hdparm --user-master u --security-erase <password> <device>
最後に、# hdparm -I <device>
の出力を見て、**not enabled
**となっていることを確認します。
これで、SSDの消去は終了です。
参考資料
ATA Secure Erase - ata Wiki
https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
Secure Erase Wiki no longer available! (Instructions on how to securely erase your SSD)
http://peter.membrey.hk/2011/09/11/secure-erase-wiki-no-long-available-instructions-on-how-to-securely-erase-your-ssd/
SSDの性能低下とTrimの効き具合を大検証! | SSDパーフェクトガイド | DOS/V POWER REPORT
http://www.dosv.jp/other/1005/18.htm