3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(Linux)knoppixでハードディスクを完全消去

先日知人から「廃棄するPCがあるのだが、その中のHDDを完全消去したいから方法を教えてくれ」といわれました。

一番確実な物理破壊を提案したですが、ソフトでしたいということだったので、knoppix で完全消去する方法を教えてあげました。(市販の消去ソフトを使えばもっと簡単に出来るのでしょうが、あくまで無料にこだわっていたので...)

使ったのは knoppix 5.3.1 日本語CD版です。

CD挿入し、

boot:knoppix 2 noswap

で起動します。

OS立ち上がったら

$ su -

でrootになります。

# dmesg | grep hd

このコマンドで認識しているHDDの詳細情報が出てきます。

ここで出てくる情報でDMAが有効になっているかどうかもわかるようです。

# hdparm -ft /dev/hda

このコマンドはHDDのベンチマークをするものですが、これで大体どれくらいの時間がかかるかが予測できそうですね。

# sfdisk -l

このコマンドでもHDD、特にディスク内のパーティションが確認できます。

文字化けした場合は

# export LANG=C

で解決できます。

実際の消去は dd コマンドを用いたものと、shred コマンドを用いたものとがあります。

shradのほうが完全消去という意味では特化しているみたいですね。ファイル単位の消去も出来るようですし。

■ddを使った消去例です。

# dd if=/dev/zero of=/dev/hda

HDDの全ブロックにゼロが書き込まれます。

# dd if=/dev/urandom of=/dev/hda

# dd if=/dev/urandom of=/dev/hda

# dd if=/dev/zero of=/dev/hda

2回 /dev/urandom からのランダムデータをHDDに出力した後、

/dev/zero によってゼロを出力するようにします。

こう見るとddだと複数回書き込みするときは面倒ですね。

■shradを使った消去例です。

# shred -n 3 -v /dev/hda

ランダムな書き込みを3回繰り返します。

(米国コンピュータセキュリティセンター(NCSC)方式(NCSC-TG-025)水準 )

# shred -z -v /dev/hda

-nを指定しないと、ランダムな書き込みを25回行います。-zで最後に0で上書きします。相当な時間がかかります。

(米国空軍方式(AFSSI5020,AFI33-202)水準)

オプション -n でランダム書き込み回数を指定できます。

オプション -z で最後に0で書き込みます。

追記:

ddを使う場合、ブロックサイズのデフォルトが512KBでかなり時間がかかるので、ブロックサイズを大きくしてやるといいです。

以下はブロックサイズを16MBにした場合です。

# dd if=/dev/zero of=/dev/hda bs=16MB

ちなみに、ddコマンドは現在の進捗がでないのでちょっと不安になりますよね。

進捗を表示する方法がLinuxのDDコマンドで進捗状況をリアルタイムで確認する方法 ひどすぎ備忘録にありました。

別ターミナルで、以下のコマンドを叩くと、ddを実行している側のターミナルにsleepで設定した秒数おきに進捗が表示されます。これは便利です。

# while true; do killall -USR1 dd; sleep 2; done

参考ページ

dコマンドでハードディスクの完全消去

Linuxを用いたHDDのデータ完全消去法

ハードディスクの消去手順

フリーソフトでハードディスクを完全に消去(2)