ソリッドステートドライブ/メモリセルの消去
関連記事
ときに、SSD のセルを完全に消去して、SSD 製造時の状態に戻し、製造時の書き込み性能 を取り戻したいと思うこともあるでしょう。たとえ SSD が TRIM に対応していても、時が経つにつれて書き込み性能は下がっていきます。TRIM はあくまでファイルの削除に対する防護であり、差分保存などの操作には効果がありません。
目次
手順 1 - ドライブのセキュリティが凍っていないことを確認
以下のコマンドを実行してください:
# hdparm -I /dev/sdX
上記のコマンドで "frozen" と出力される場合、次の手順に進むことはできません。オペレーティングシステムが起動する前に BIOS が "SECURITY FREEZE" コマンドを実行して ATA Secure Erase コマンドをブロックしてしまっています。
解決方法としては、システムをサスペンドすることで、復帰時に凍結状態が解除されることがあります。それで解決しない場合、データケーブルを (電源が入った状態で) 抜き差しする方法があります。SATA のデータケーブルを切断するとカーネルがクラッシュする場合、SATA の電源ケーブルとデータケーブルの両方を素早く抜き差ししてみてください。それでも SATA ケーブルを抜くとカーネルがクラッシュしてしまうときは、BIOS で AHCI が有効になっていることを確認してください (AHCI が有効になっていれば抜き差しを行ってもクラッシュしません)。ホットプラグがサポートされている USB-to-SATA アダプタを使用する手段もあります。hdparm は USB 経由でも使えます。
Dell のコンピュータ
コマンドによって "frozen" と出力される場合、以下の手順を試してみてください:
- 起動時に F2 を押して Dell の BIOS を起動する。
- BIOS から Internal HDD Password を設定する。
- 変更を適用して再起動する。
- Dell Security Manager によってパスワードが要求されたときに、パスワードを入力せずに Escape を押す。ドライブが解錠されないかわりに凍結もされません。
- 下の手順3に進む。
手順 2 - ユーザーパスワードを設定してセキュリティを有効化
一時的に使用するものなので、パスワードは何でもかまいません。Secure Erase を実行した後にパスワードは NULL に戻ります。以下の例では、パスワードとして "PasSWorD" を使っています:
# hdparm --user-master u --security-set-pass PasSWorD /dev/sdX security_password="PasSWorD" /dev/sdX: Issuing SECURITY_SET_PASS command, password="PasSWorD", user=user, mode=high
サニティチェックとして、以下のコマンドを実行:
# hdparm -I /dev/sdX
上記のコマンドは "enabled" と出力するはずです:
Security: Master password revision code = 65534 supported enabled not locked not frozen not expired: security count supported: enhanced erase Security level high 2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
手順 3 - ATA Secure Erase コマンドを実行
最後に Secure Erase コマンドを実行することで、デバイスの BIOS によって SSD の中身を消去させます。上の例で、コマンドによって以下のように出力されていることに注意してください:
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
ATA の仕様書によれば強化型のセキュリティ消去 (--security-erase-enhanced
) は入念な消去を実行します。両方のコマンドの予想完了時間が等しい場合、ドライブのメーカーが仕様に従っておらず、どちらのコマンドでも同じ消去を行うようになっていることを意味します。消去にかかる時間 (2分など) が短いのはデバイスが自己暗号化を行っていて、BIOS によって消去されるのは内部の暗号鍵だけで、全てのデータセルが上書きされるわけではないということを示します [3]。
# hdparm --user-master u --security-erase PasSWorD /dev/sdX
コマンドが完了するまでしばらく待機してください。以下の Intel X25-M 80GB SSD の場合で40秒かかっています。
security_password="PasSWorD" /dev/sdX: Issuing SECURITY_ERASE command, password="PasSWorD", user=user 0.000u 0.000s 0:39.71 0.0% 0+0k 0+0io 0pf+0w
消去が成功したらドライブのセキュリティは自動的に無効に設定されます (アクセスするのにパスワードは必要なくなります)。以下のコマンドを実行して確認してください:
# hdparm -I /dev/sdX
上記のコマンドは "not enabled" と出力するはずです:
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.
ヒントとテクニック
消去した後に GRUB EFI を動作させるハードウェアごとの手順は GRUB/EFI サンプルを見てください。