Ubuntu で HDD と SSD を完全削除し廃棄する
我が家の壊れかけた NAS(市販品)と使っていない HDDと SSDを廃棄処分するため Ubuntu 18.04 LTS を使ってディスク全域を完全削除(ローレベル フォーマット)しました。
下の画像は、テストベンチ台 で削除作業中の写真です。
HDDは Ubuntu に実装される shred (シュレッド) コマンドを使い乱数データを書き込んだ後、zero-fill を行いました。
SSDは Ubuntu に実装される hdparm コマンド の ATA Security Feature Set(ATAセキュリティー機能セット)を使って Secure Erase しました。(2020年11月)
注|SSDを完全削除(Secure Erase)する場合は shred ではなく hdparm コマンド を使ってください。trim コマンド はファイルレベルの完全削除であり Secure Erase ではありません。
注|当ページの内容は「廃棄」が目的であり、再利用や機能再生は考慮していません。
PC 環境
下記は 2020年11月末 現在の環境です。
- ハードウェアの構成は こちらへ
- Ubuntu 18.04.1 LTS (Bionic Beaver)最小インストール
- kernel 4.15.0.124 generic
- GNOME 3.28
Hdd の完全削除
shredは、ArchWki によると、
“
shred は個別のファイルやデバイスを安全に消去することができる Unix コマンドです。たとえ特殊な機械を使っても復元するのは難しく、あるいは不可能になります。shred は3つのパスを使って、擬似乱数データをデバイスに書き込みます。パスは増やしたり減らしたりできます。 以下のコマンドはデフォルト設定で shred を実行して進捗を表示します:# shred -v /dev/sdX
”
というコマンドです。ただし shredは、下記のファイルシステム上のファイルの削除には不向きなのでディスク全体の使用が推奨されています。
“
Log-structured or journaled file systems, such as ext3/ext4 (in data=journal mode), Btrfs, NTFS, ReiserFS, XFS, ZFS, file systems supplied with AIX and Solaris, etc., when they are configured to journal data.
ext3 / ext4(data = journalモード)、Btrfs、NTFS、ReiserFS、XFS、ZFS、AIXおよびSolarisで提供されるファイルシステムなど、データをジャーナルするように構成されている場合のログ構造化またはジャーナル化されたファイルシステム。
”
さらに詳しくは GNU フリー ドキュメンテーション を参照してください。
目的の HDD のデバイス名 /dev/sdX を確認する方法は
- GParted(GNOME Partition Editor)
- GNOME Disks
- fdisk コマンド・・・パーテイション テーブルが MBR(Master Boot Record)
- gdisk コマンド・・・パーテイション テーブルが GPT(GUID Partition Table)
など、使いやすさや環境に合わせて選択します。今回当方の環境では /dev/sdd です。
shred コマンドの実行
端末から次の shredコマンドを実行します。
GNOME Terminal :
$ sudo shred -v -n1 -z /dev/sdd
下記はオプションの内容です。
- -v・・・詳細 [--verbose]
- ステータスの進捗状況を標準出力(端末)に表示する
- -n1・・・ランダムデータの書込み回数 [--iterations=number]
- shred はデフォルトで 3パス(3回)の書込みを行うため時間がかかり過ぎるので1パスにしました
- -z・・・ランダムデータの書込み終了後、0bitを上書きする [--zero]
- 所謂 zero-fill 、ゼロ埋め
下の画像は、コマンド実行中のスクリーンショットです。
ゼロフィルの確認
shredコマンド完了後の状態を確認するためディスクの先頭から 512バイトまでを次のコマンドで HEXダンプします。
$ sudo hexdump -C -n 512 -v /dev/sdd
比較のため他のデバイス(/dev/sda)の結果も取ってみました。
ご覧のように文字通り 0 で埋められています。
所要時間と処理能力
下表は 3台のHDDにかかった時間です。
① 250 GB(USB2.0) | 約 7時間50分 |
---|---|
② 400 GB(SATA2) | 約 3時間 |
③ 1 TB(SATA2) | 約 7時間30分 |
①は Windows 98~Vista向けの USB2.0接続ハードディスク ドライブです。1時間あたりの処理容量は 31.9GBで、1GBあたりの処理時間は 113秒です。
②は ハードディスク レコーダー に内蔵されていたものです。1時間あたりの処理容量は 133.3GBで、1GBあたりの処理時間は 27秒です。
③は故障間近の市販NAS(下の画像)に内蔵されていたもので、1時間あたりの処理容量は 127.6GBで、1GBあたりの処理時間は 27秒です。
このようにかなりの時間を要します。たとえ USB3.1、SATA3 の接続であっても殆ど変わりないと思います。なぜなら HDDの内部転送速度、即ち書込み速度に依存するからです。
今回の件で USB接続のハードディスク ドライブは HDD本体を取り出して SATA接続で行ったほうがよいことが分かりました。
SSD の Secure Erase
Arch Wiki ソリッドステートドライブ/メモリセルの消去 の手順に沿って SSDを完全削除(Secure Erase)してみました。
hdparmコマンド は SATAインターフェース接続 のみ有効です。以下、当方の環境(当ページHDD完全削除した環境)で Intel 335シリーズ SSD 240GB で実行したコマンドとその結果のスクリーンショットです。
hdparmコマンドの実行
- 次のコマンドで SSDが Frozen(ロック)されていることを確認し、これを解除します。デバイス名は HDDの時と同じく /dev/sdd です。
GNOME Terminal :
$ sudo hdparm -I /dev/sdd
結果:fig1. (前略) ︙ Security: Master password revision code = 65534 supported not enabled ・・・Secure Erase無効 not locked frozen ・・・ロックされています not expired:security count supported:enhanced erase 4min for SECURITY ERASE UNIT.2min forENHANCED SECURITY ERASE UNIT. ︙ (後略)
ロックされているので PCの電源は入れたまま、下の写真のように SSDに接続している電源コネクタを引き抜き、再び挿します。
SATAコネクタも引き抜く場合は、電源コネクタ → SATAコネクタ の順に引き抜き、SATAコネクタ → 電源コネクタ の順に挿します。
-
もう一度上記 1. のコマンドを実行します。
結果:fig2. (前略) ︙ Security: Master password revision code = 65534 supported not enabled ・・・Secure Erase無効 not locked not frozen ・・・ロックされていません not expired:security count supported:enhanced erase 4min for SECURITY ERASE UNIT.2min forENHANCED SECURITY ERASE UNIT. ︙ (後略)
ロックは解除されました。
- 次のコマンドで SSDにパスワードを設定します。これにより Secure Eraseコマンドが有効になります。
$ hdparm --user-master u --security-set-pass pass /dev/sdd
結果:fig3. security_password:"pass" ・・・パスワード pass が設定されました /dev/sdd: Issuing SECURITY_SET_PASS command, password="pass", user=user, mode=high
パスワードが設定されました。このパスワードは Secure Eraseの実行後、自動的に無効化されます。
- Secure Eraseコマンドが有効になっていることを確認します。
$ sudo hdparm -I /dev/sdd
結果:fig4. (前略) ︙ Security: Master password revision code = 65534 supported enabled ・・・Secure Erase有効 not locked not frozen ・・・ロックされていません not expired:security count supported:enhanced erase 4min for SECURITY ERASE UNIT.2min forENHANCED SECURITY ERASE UNIT. ︙ (後略)
Secure Erase が有効になりました。
- 次のコマンドで Secure Erase を実行します。
$ hdparm --user-master u --security-erase pass /dev/sdd
結果:fig5. security_password:"pass" /dev/sdd: Issuing SECURITY_ERASE command, password="pass", user=user
Secure Erase 実行がされ、30秒ほどで完了しましたがこの間なにも表示されません。最後に次のコマンドで SSDの先頭から 512バイトまでを HEXダンプして 0埋めされていることを確認します。
$ sudo hexdump -C -n 512 -v /dev/sdd
以上で SSDの完全削除の完了です。
SSD Secure Erase に係る留意事項
以下、ATA wiki よりの引用を要約したものです。
“
DISCLAIMER: This will erase all your data, and will not be recoverable by even data recovery services.
免責事項:これはすべてのデータを消去し、データ復旧サービスでも復旧できなくなります。DISCLAIMER: If you hit kernel or firmware bugs (which are plenty with not widely-tested features such as ATA Secure Erase) this procedure might render the drive unusable or crash the computer it's running on.
免責事項:カーネルまたはファームウェアのバグによりドライブが使用できなくなる可能性があります。WARNING: Do not attempt to do this through a USB interface!
警告:USBインターフェースを介してこれを実行しようとしないでください!”
HDD、SSD の廃棄方法
HDD の廃棄は、日本国政府 環境省認定の処理業者 に委託しました。もちろん有料です。追加料金を支払えば完全削除の上、データ消去証明書を発行するサービスもありました。
雑感|ノートPCの SSDを Secure Eraseしてみたら
手持ちのノートPC(ネットブック)EeePC 1005HA を廃棄処分するため SSD(OCZ VERTEX 4 - 128GB)を載せた状態で USBメモリーにインストールした WattOS R9(Ubuntu 14.04 LTS) 上から Secure Eraseしてみました。
この EeePCは Windows XP 機ですが、かつて HDDを SSDに換装した際、AHCIモードに変更していたため hdparmコマンドが使えます。
SSD単体の時と同様に hdparm - I してみると、なぜかロックがかかっていない not Frozen 状態でした。そして手順通り Secure Eraseを実行した後、SSD先頭から 512バイトまでを Hexダンプしてみたらこれまた何故か 0 ではなく下の画像のように f で埋められていました。
今回 SSD単体で 4台 Secure Eraseしたのですが 0埋めされなかったのはこれだけでした。原因は不明です。