0. はじめに
年末年始で片付けをしようと思い、不要になった256GB程度のSATAのSSDを消去して廃棄したいと思います。
SSDの消去は、HDDとは違ってTrimコマンドで削除できます(まあ、賛否あるみたいなのですが)。なので、ちょっとやってみたという話になります。
1. どのコマンドがいいのか?
ネットで検索すると幾つかのコマンドが紹介されています。
- fstrim
- blkdiscard
- hdparm
しかし、前の2つはあまり推奨されません。Secure Erase(hdparmを使用)が最も推奨される方法です。これが利用できない場合は、データ消去ソフトウェア(shred など)を使用してデータを複数回上書きするのが推奨です。fstrim と blkdiscard は、日々の運用におけるSSDの性能維持には有効ですが、廃棄前のデータ消去には不十分です。
fstrim
、blkdiscard
、hdparm
の比較
コマンド | メリット | デメリット |
---|---|---|
fstrim |
ファイルシステムレベルでTRIMを実行、定期的なメンテナンスに有効 | 削除されたファイル領域のみに有効、完全なデータ消去ではない |
blkdiscard |
ブロックデバイス全体にTRIMを実行 | ファイルシステムに依存しないため、ファイルシステムによっては効果がない場合がある、完全なデータ消去ではない |
hdparm |
Secure Eraseを実行可能 (対応している場合) | Secure Eraseが利用できない場合がある、コマンド操作が必要 |
2. hdparm
を用いた Secure Erase の実行方法(Ubuntu 24.04)
hdparm
を使用して Secure Erase を実行する手順は以下の通りです。
-
SSDのデバイス名を確認:
lsblk
コマンドなどでSSDのデバイス名(例: /dev/sda)を確認します。 -
SSDをアンマウント: SSDがマウントされている場合はアンマウントします。
sudo umount /dev/sda1 # パーティションがマウントされている場合
sudo umount /dev/sda # デバイス全体がマウントされている場合
- hdparmでSecurity Feature Setがサポートされているか確認:
sudo hdparm -I /dev/sda | grep -A 8 "Security:"
以下のように表示されれば、Secure Erase が利用可能です。
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.
3. パスワードが必要かどうか確認
以下のようにコマンドを実行して、missing PASSWD
と出るようなら、パスワードが必要です。4. でパスワードを設定してください。
sudo hdparm --security-erase-enhanced /dev/sda
missing PASSWD
4. パスワードを設定 (必要な場合)
sudo hdparm --user-master u --security-set-pass mypassword /dev/sda
mypassword
は任意のパスワードに変更してください。
パスワードを設定すると以下のようになります。
$ sudo hdparm -I /dev/sda | grep -A 8 "Security:"
Security:
Master password revision code = 65534
supported
enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
Security level high
supportedの下の行がnot enabled
から
enabled
になっています
5. Secure Eraseを実行
sudo hdparm --user-master u --security-erase-enhanced mypassword /dev/sda
6. 確認する
以下のようになっていれば消去終了です。
$ sudo hdparm -I /dev/sda | grep -A 8 "Security:"
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
2min for SECURITY ERASE UNIT.
もし、以下のようになっている場合は、セキュリティーパスワードが残っているのでパスワードを解除します。
$ sudo hdparm -I /dev/sda | grep -A 8 "Security:"
Security:
Master password revision code = 65534
supported
enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
Security level high
supported
の次の行が
enabled
のままです。
以下のコマンドでパスワードを解除します。
sudo hdparm --user-master u --security-disable mypassword /dev/sda
解除されたか確認します。
$ sudo hdparm -I /dev/sda | grep -A 8 "Security:"
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
2min for SECURITY ERASE UNIT.
7. 注意点
- Secure Eraseを実行すると、SSDのデータは完全に消去され、復元は不可能になります。実行前に必要なデータがないことを十分に確認してください。
-
hdparm
の使用には注意が必要です。誤った操作はシステムに深刻な影響を与える可能性があります。コマンドの意味をよく理解してから実行してください。
8. 実行時間
hdparmで消去する時間も計ってみました。
20秒ぐらいですね。
$ time sudo hdparm --user-master u --security-erase-enhanced mypassword /dev/sda
security_password: "mypassword"
/dev/sdc:
Issuing SECURITY_ERASE command, password="mypassword", user=user
SG_IO: bad/missing sense data, sb[]: 70 00 01 00 00 00 00 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
real 0m19.384s
user 0m0.006s
sys 0m0.004s