ソリッドステートドライブ/メモリセルの消去

提供: ArchWiki
移動先: 案内検索

ときに、SSD のセルを完全に消去して、SSD 製造時の状態に戻し、製造時の書き込み性能 を取り戻したいと思うこともあるでしょう。たとえ SSD が TRIM に対応していても、時が経つにつれて書き込み性能は下がっていきます。TRIM はあくまでファイルの削除に対する防護であり、差分保存などの操作には効果がありません。

警告:
  • 消去を行う前に重要なデータをバックアップしてください。SSD 上の全てのデータを消去するため、データ復旧サービスを使ってもデータを元に戻すことはできません。消去を行った後に、デバイスを再度パーティショニングしてデータをリストアしてください。
  • SATA インターフェイスで直接接続されていないドライブで以下の消去を行ってはいけません。USB や SAS/RAID カードで接続されているドライブに対して Secure Erase コマンドを実行するとドライブが文鎮化する可能性があります。
ノート: 以下の情報は ATA の公式 wiki ページから引用されています [1]

手順 1 - ドライブのセキュリティが凍っていないことを確認

以下のコマンドを実行してください:

# hdparm -I /dev/sdX

上記のコマンドで "frozen" と出力される場合、次の手順に進むことはできません。オペレーティングシステムが起動する前に BIOS が "SECURITY FREEZE" コマンドを実行して ATA Secure Erase コマンドをブロックしてしまっています。

解決方法としては、システムをサスペンドすることで、復帰時に凍結状態が解除されることがあります。それで解決しない場合、データケーブルを (電源が入った状態で) 抜き差しする方法があります。SATA のデータケーブルを切断するとカーネルがクラッシュする場合、SATA の電源ケーブルとデータケーブルの両方を素早く抜き差ししてみてください。それでも SATA ケーブルを抜くとカーネルがクラッシュしてしまうときは、BIOS で AHCI が有効になっていることを確認してください (AHCI が有効になっていれば抜き差しを行ってもクラッシュしません)。ホットプラグがサポートされている USB-to-SATA アダプタを使用する手段もあります。hdparm は USB 経由でも使えます。

ノート: Lenovo のパソコンを使っていて "frozen" 状態を解除できない場合 (例: M.2 インターフェイスで SSD を使用する Lenovo 製のタブレット)、プロプライエタリツール を使ってメモリセルの消去をすることができます。参照: https://superuser.com/questions/763642/secure-erase-ssd-on-lenovo-thinkpad-t520-cant-unfreeze-ssd-machine-reboots-on

Dell のコンピュータ

コマンドによって "frozen" と出力される場合、以下の手順を試してみてください:

  1. 起動時に F2 を押して Dell の BIOS を起動する。
  2. BIOS から Internal HDD Password を設定する。
  3. 変更を適用して再起動する。
  4. Dell Security Manager によってパスワードが要求されたときに、パスワードを入力せずに Escape を押す。ドライブが解錠されないかわりに凍結もされません。
  5. 下の手順3に進む。

手順 2 - ユーザーパスワードを設定してセキュリティを有効化

ノート: ユーザーパスワードが設定されると、次の起動時からドライブが施錠されて、正しいパスワードを入力して解錠しないと通常のアクセスができないようになります。
警告: Lenovo のノートパソコンを使用している場合、セキュリティを有効化した後に再起動を行ってはいけません。Lenovo の BIOS の中には暗号鍵の計算に問題のあるアルゴリズムを使っているものがあります。マシンを起動した後に SSD ドライブに接続できなくなってしまいます [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 サンプルを見てください。