HDD完全消去方法いろいろ(有料、無料、Linuxコマンド)

Linux
スポンサーリンク

仕事でNSA方式(ランダムx2 と 0埋め)のデータ消去が必要になった。やり方色々調べたのでメモ。

 

有料ソフト BIOSやUEFIから起動可能

ターミネータ10plus データ完全抹消

一個買えば起動用USB作れるっぽい。

難しいこと無理。な場合や、手法としてのバックアップ用意という意味だとこれを買っとくといいかも。

 

無料ソフト(寄付歓迎)WindowsPEから起動可能

ディスク消去ユーティリティ

 

WindowsPEとは

「Windows PE」はWindowsのライブCD

出典

Windows10でWindowsPEを用意するMSのリンク

 

Linuxを利用したHDD消去

UbuntuなどのLinuxディストリビューションのLive DVD/CD から起動させ、内蔵HDDや外付けHDDのデータを消去する。

データ消去には以下2つのうち、いずれか1つのコマンドを使用する。

  • shred
  • dd

データ消去コマンド実行前にまず、対象のデバイス名を確認する

データを消去する対象のデバイス名を確認する。

# fdisk -l

↓ さらに詳しく見るなら、

# hdparm -I デバイス名

以上のコマンドはHDDの完全消去に詳しく載せてくださってる。

これ以降は、対象のデバイスが
/dev/sda
だと仮定して記載する。

shredコマンドでHDD消去

NSA方式でHDD消去行う場合のコマンド:

# shred -n 2 -z -v /dev/sda

 

HDDの完全消去(NSA方式でなければddコマンドの利用方法も載ってる)

 

上記のリンク先記事に従って、事前に読み取り時間を以下のコマンドで確認してみたが、ランダム書き込みを1回するのには、大体この読み取り時間の倍ぐらいの時間がかかった。

hdparm -t /dev/<デバイスファイル名>

処理時間(一晩かかったりする)を短縮したい場合、shredを6倍速くしてみたに記載の方法で短縮できるみたいだが、危険性が上がるかも&今のバージョンでできるか不明なのでリスクある為、できればコレは避けた方がいいかも。

 

ddコマンドでHDD消去

■NSA方式
 書き込み回数:3,消去レベル:中
 乱数2回、ゼロ書き1回

$ su root -c 'dd if=/dev/random of=/dev/sda; \
              dd if=/dev/random of=/dev/sda ; \
              dd if=/dev/zero of=/dev/sda'

linuxのコマンドでデータ消去する方法を検討する

 

 

やる前の準備など

いずれの方法もかなり時間がかかる。

一晩では終わらないかもしれない。

時間の予測をたてるため、可能なら事前に試す。

  • shredとddどちらが早いか
    • 海外のサイトでshredが早いと言っているところもあったが根拠が書いてなかった
      • /dev/urandom の使い方などに依存するのかもしれない

 

  • オンサイト対応が必要な場合、必要な分だけの起動メディアを用意する(可能なら予備も)
  • 外付けHDDと内臓HDDを実施する場合、シェルスクリプトなどでバッチ処理が組めるなら事前にできる部分の用意をする
    • デバイス名を後で追記するかインタラクティブに入力できる仕組みにしておく
    • こうすれば1.HDD消去処理を仕掛ける、2.結果確認する の2回現地に行けばいい(遠隔地オンサイトの場合)
  • Linuxで使ってたHDDの場合、HDD内にswap領域がないか
  • HDDじゃなくSSDじゃないか?(SSDの場合、この記事の内容は使えないSSDのメーカーが提供しているユーティリティを使う)

 

データ消去後の確認

データ消去後は、以下を確認した。

  • ターミナル上の処理が100%で終わっていること
    • shredコマンドのオプション「-v」をつけていた場合
  • lsblk –fs コマンドを実行
    • 対象デバイスのFSTYPEの項目がブランクになっていること
  • OSがインストールされていたディスクだった場合、マシン起動でOSが起動しないこと
    • Boot Device Not Found みたいな表示になったりするはず
      • HPのノートPCではそうなった

 

以上💩

 

 

コメント