Linuxの起動ディスクからPCのHDDを消去する 竜宝 rev.2 Jun 22 2003 rev.1 Apr 01 2003 rev.0 Sep 30 2002 ---------------------------------------------------------------------- 無断リンク可・無断転載可・無断引用可・無断再配布可です。 オリジナルは http://www.geocities.co.jp/SiliconValley-Oakland/1428/ にあります。 誤りなどはメールで連絡下さるとありがたいです。 本文を読む前に注意事項を必ず読んでください。 ---------------------------------------------------------------------- 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回だけでは不十分と言われる事もあるので、必要に応じて色々と 工夫してみた方がよいかも知れません。 以上