以下のコマンドをほんとに消去したいマシン以外で試したりしないこと。 自己責任で。
ハードディスクを安全に処分するためにはディスクの消去が欠かせませんが、意外と手間がかかります。 個人で使用レベルのハードディスクで見られても困らないという人は問題ないかもしれませんが、それでも家族の写真などが復元されて...。などというのは気持ちが悪いので最低限の処置はしておいたほうが無難でしょう。LinuxではshredというコマンドでHDDやファイルの消去ができます。
shredの動作を確認してみます。最初にテスト用のファイルを作ります。 ddコマンドでゼロフィルのshred_testという名前の1MBのファイルを作ります。
$ dd if=/dev/zero of=shred_test bs=1024 count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00630613 s, 166 MB/s
$ head -n 1 shred_test
(何も表示されない)
このファイルに対してshredをかけてみます。-nで乱数での上書き回数を指定。-vで進捗状況を表示できます。
$ shred -n 3 -v shred_test
shred: shred_test: 経過 1/3 (random)...
shred: shred_test: 経過 2/3 (random)...
shred: shred_test: 経過 3/3 (random)...
$ head -n 1 shred_test
(文字化けを含むランダムな表示)
乱数で上書きが出来ているようです。
これに‐zをつけると最後にゼロフィルがおこなわれます。
$ shred -n 3 -z -v shred_test
shred: shred_test: 経過 1/4 (random)...
shred: shred_test: 経過 2/4 (random)...
shred: shred_test: 経過 3/4 (random)...
shred: shred_test: 経過 4/4 (000000)...
$ head -n 1 shred_test
(何も表示されない)
個人情報など機密情報が含まれる場合は、安全なディスク消去として、NSA(国家安全保障局)やDoD(米国国防総省、ペンタゴン)が推奨する方式に準ずる消去をしておいたほうが無難です。 一方では、どれだけ消去しても断片的には情報が取得できてしまう可能性が残っているらしく、高性能な残留磁気の読み取り装置があり、技術を持っている人に対して絶対に安全というわけではないようです。
しかし一般的には、3回ぐらい乱数で上書きしておけば、残留磁気の読み取り装置でもなかなか読むのは難しくなってくるといわれています。
乱数で3回上書きするには以下のように-nオプションを指定します。
# shred -n 3 -v /dev/sda
また、NSA方式である乱数2回上書き後に0で上書きであれば以下のコマンド。
# shred -n 2 -z -v /dev/sda
これが結構時間かかるので、個人の写真や音楽データなどでしたら乱数1回のゼロフィルぐらいでもいいかもしれません。
$ shred -n 1 -z -v shred_test
shred: shred_test: 経過 1/2 (random)...
shred: shred_test: 経過 2/2 (000000)...
中古で出回る心配がなければ下のやり方が一番早いでしょう。これは本当にただ消すだけです。
$ shred -n 0 -z -v shred_test
shred: shred_test: 経過 1/1 (000000)...
最後に大体手段ですが、shredが使えずddしかない場合(というのがあるかは不明ですが)は、 ただ、簡単に消去するだけなら以下のようにddコマンドで済ませることも可能です。
ランダムで1回上書きであれば以下。
# dd if=/dev/urandom of=/dev/sda
とか、ゼロで1回上書きであれば以下。
# dd if=/dev/zero of=/dev/sda
どちらも一般的なrmコマンドなどに比べればキチンとデータは消えます。