PCで遊んだ日々の備忘録

Making PC and Customization PC

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)の結果も取ってみました。

HDDのHEXダンプ コマンド実行結果

/dev/sdd(今回のHDD)

他のデバイスのHEXダンプ コマンド実行結果

/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秒です。

Ubuntu 18.04LTS上のDisksで見た故障間近の市販NAS

このようにかなりの時間を要します。たとえ USB3.1、SATA3 の接続であっても殆ど変わりないと思います。なぜなら HDDの内部転送速度、即ち書込み速度に依存するからです。

今回の件で USB接続のハードディスク ドライブは HDD本体を取り出して SATA接続で行ったほうがよいことが分かりました。

▲ 目次へ

SSD の Secure Erase

Arch Wiki ソリッドステートドライブ/メモリセルの消去 の手順に沿って SSDを完全削除(Secure Erase)してみました。

hdparmコマンド は SATAインターフェース接続 のみ有効です。以下、当方の環境(当ページHDD完全削除した環境)で Intel 335シリーズ SSD 240GB で実行したコマンドとその結果のスクリーンショットです。

hdparmコマンドの実行

  1. 次のコマンドで 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. 
  ︙
(後略)

コマンド結果:fig1.ロックされています

fig1. ロックされています

ロックされているので PCの電源は入れたまま、下の写真のように SSDに接続している電源コネクタを引き抜き、再び挿します。

SSDに接続された電源コネクタを引き抜いた写真

 

SATAコネクタも引き抜く場合は、電源コネクタ → SATAコネクタ の順に引き抜き、SATAコネクタ → 電源コネクタ の順に挿します。

  1. もう一度上記 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. 
  ︙
(後略)

コマンド結果:fig2.ロックされていません

fig2. ロックされていません

ロックは解除されました。

  1. 次のコマンドで 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 

コマンド結果:fig3.パスワード pass が設定された

fig3. パスワード pass が設定された

パスワードが設定されました。このパスワードは Secure Eraseの実行後、自動的に無効化されます。

  1. 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. 
  ︙
(後略)

コマンド結果:fig4.Secure Eraseが有効になった

fig4. Secure Erase 有効

Secure Erase が有効になりました。

  1. 次のコマンドで 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 

コマンド結果:fig5.Secure Erase 実行

fig5. Secure Erase 実行

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 で埋められていました。

Hexダンプの結果

先頭 512バイトをダンプ

今回 SSD単体で 4台 Secure Eraseしたのですが 0埋めされなかったのはこれだけでした。原因は不明です。

▲ 目次へ

クリエイティブ・コモンズ・ライセンス
Top of Pageの画像
sidemenuの画像