ディスクのデータ消去において、HDDとSSDでは適した方法が異なる。
HDDの場合、データ領域に対してゼロや乱数を上書きすることで消去できる。
しかし、SSDはHDDとデータ管理の仕様が異なっており、単純な上書きでは完全なデータ消去が難しい。
このため、SSDには自らのデータを消去するための仕組み「Secure Erase」が搭載されている。
以降では、LinuxでSecure Eraseを実行する方法を記載する。
間違って実行してしまった場合、消えたデータを復元することはまず不可能な状態になるため、作業は慎重に行う必要がある。
ATA接続されているSSDのデータ消去
# ディスクのデバイスファイル名を調べる fdisk -l # ディスクの詳細を表示 # 以下を確認する # Secure Erase や Enhanced Secure Erase の対応有無 # frozen(Secure Eraseが実行できないように保護されているか) hdparm -I /dev/sda # frozen状態を解除するためにマシンをサスペンド(スリープ)にする # 再度ログインするとfrozenが解除される # frozen状態が変わらない場合、SSDの電源をオフ/オンする sudo systemctl suspend # 対象ディスクにパスワードを設定し、Secure Erase を有効にする # パスワードはSecure Erase完了後にリセットされるため、値は適当で良い # 以下のコマンドでは「xxxx」にしている sudo hdparm --user-master u --security-set-pass xxxx /dev/sda # Secure Eraseを実行する sudo hdparm --user-master u --security-erase xxxx /dev/sda # Enhanced Secure Erase に対応している場合、こちらを実行する sudo hdparm --user-master u --security-erase-enhanced xxxx /dev/sda
NVMe接続されているSSDのデータ消去
# nvme-cli をインストール sudo apt install nvme-cli # 対象デバイスを確認する sudo nvme list # 全ユーザデータを暗号化した上で消去 sudo nvme format /dev/nvme0n1 -s 2 # 全ユーザデータを消去(暗号化なし) sudo nvme format /dev/nvme0n1 -s 1
