2008年01月01日

Linuxの起動ディスクを使ってPCのHDDに書き込まれたデータを消去する

1. 注意事項

当たり前の事ばかりですが、以下ご注意下さい。

(1) この文書の内容は無保証です。
もし活用する場合は自己責任で行う必要があります。
消去不良・誤消去などトラブルが発生しても助けることはできません。

(2) この文書はPCおよびLinuxについて知識がある人を対象に書かれています。
例えば /dev/hda が何の事だかわからない人には向きません。「KNOPPIX
日本語版」を自力で検索できない人にも向きません。そのPCがCD-ROMから起
動できるかわからない人にも向きません。知識が足りないと感じる方には市
販のHDD消去ソフトの方が向いていると思います。

(3) この文書の消去方法にはこれといって新規性はありません。どれもLinux
付属のドキュメントに書いてある程度の内容ですし、インターネット上では
この文書以外にも消去方法の情報がいくつも見つかるはずです。

(4) この文書は単に例を示しているだけであり、本方法での消去を推奨してい
るわけではありません。HDDの内容を消去するための全ての方法を示した物
ではありません。本方法以外の消去方法を否定する物ではありません。本方
法が全ての環境に適用できる事を保証する物ではありません。また本方法で
HDDの内容が消去できた場合でも当該HDDから元データの断片を読み出せない
事を保証する物ではありません。

(5) 本方法では端から上書きする事により消去しますので、動作していない
HDDは消去できません。また端から上書きする事により消去しますので、大
容量HDDではかなりの消去時間がかかると思われます。

(6) 使用しているソフトウエアから見えない領域は消去できません。例えば
HDDのジャンパピンにより使用可能領域を少なく見せている場合には消去で
きない領域が発生しえます。データ面サーボ方式のサーボデータなどディス
ク面上の低レベルな管理情報も消去できません。

# 前置きが長くてすみません (^^;)


2. shredで消去する

shredはファイルを上書きするためのプログラムです。GNU fileutilsに含まれ
ているため、多くのLinuxにも含まれています。デフォルトでは乱数で25回
の上書きを行います。shredの詳細についてはオンラインマニュアルを参照し
てください。なおshredやLinuxが古いと消去サイズを指定する必要があったり
2GBの制限に引っかかったりする場合がありますので、shredが入っていれば何
でもいいというわけではありません。

KNOPPIX 日本語版のCD-ROMでbootして /dev/hda を消去する例を以下に示しま
す。機能限定のレスキュー用Linuxではないのでシェルなども使いやすいです。
DMAにも対応していますし日本語106キーボードにも対応しています。
もちろんHDDの消去程度でしたら英語版KNOPPIXでも不自由しないと思います。

(1) KNOPPIXのCD-ROMからbootします。(Runlevel 2, Textmode only)
HDD消去にGUIは不要なのでbootプロンプトでは knoppix dma 2 とします。
# dmaというブートオプションがないKNOPPIXでは knoppix 2 で構いません。
なおPCの構成によっては素直にTextmodeで起動できない場合もあります。
重要なのは消したいHDDをswapとして使わない事とrootである事の二点です。

(2) shred -n 2 -v -z /dev/hda
この例では 乱数 → 乱数 → 0x00 という3回の上書きが行われます。-v を
指定すると処理の進み具合がわかり便利です。なお私は乱数の品質については
調査していません。


3. badblocksで消去する

badblocksはデバイス上に不良ブロックがあるかを検査するプログラムです。
多くのlinuxのレスキューディスク(またはインストールディスクのレスキュー
モード)で使用できます。デフォルトではread-onlyで検査しますが、-w を指
定すると 0xaa → 0x55 → 0xff → 0x00 と4回の書き込みを行います。
badblocksの詳細についてはオンラインマニュアルを参照してください。なお
元々検査用のコマンドであるため4回の書き込みに対して毎回読み出しを行っ
てしまいます。このためshredにくらべ無駄に時間がかかります。また物によっ
てはコマンドラインオプションで block count を指定しなければならないタ
イプのbadblocksもあります。

Red Hat Linux 7.2のDisc1でbootして /dev/hda を消去する例を以下に示しま
す。恐らく7.3以降でも簡単だと思います。

(1) Disc1というCD-ROMからbootします。
ブートの種類を選ぶ所では linux rescue を選択します。
言語は英語を選択します。
キーボードの種類を選択します。
ContinueとSkipでContinueを選択します。
以上でレスキューモードのシェルが起動します。

(2) badblocks -vw -c 1024 /dev/hda


4. ddで消去する

広く知られている通り、ddでもHDDを消去できます。

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

を実行すると /dev/hda 全域を 0x00 で1回上書きします。大きなブロックサ
イズを指定する事により時間短縮できる場合があります。厳密には 0x00 の全
面書き込み1回だけでは不十分と言われる事もあるので、必要に応じて色々と
工夫してみた方がよいかも知れません。
posted by りお at 20:29| コンピュータ関連 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。