「DBAN が起動しない・・・ でも他のLiveCDは起動する」場合
・・・他のLiveCDは起動するけれども、DBANが起動しない、起動前に途中で止まってしまう・・・といったケースがあるようです。
原因はいくつか考えられますが、他のLiveCD系は起動するのに、DBANだけが起動しない場合は、起動順位等の設定には問題がありませんので、HDDの完全消去の実行については次のどれかで実行が可能です。
【1:DBANのバージョンを変えてみる】
古い機種のPCでは、新しいバージョンのDBANでは起動できないケースがあるようです。その場合、古いバージョンのDBAN(ver 1.0.7)で試してみると解決するかもしれません。
【2:wipe-out を使う】
別にDBANだけが自動で削除してくれるソフトではありません。
DBANにこだわらなくてもフリーなものはあります。
wipe-outというソフトで国産のものがありますので、そちらで試してみるというのも吉だと思います。
【3:起動するLiveCDで完全消去する】
LiveCD さえ起動すれば、そのLiveCDでも「HDDの完全消去」は大概が可能です。
た・だ・し、全自動ではありません。『コマンド打ち』をします。
コマンドを打つという時点で、 戦々恐々になってしまう方もいらっしゃいますが、逆にこれを覚えると、どのLiveCDでも大概通用するので、お得です。
それにコマンドを打つと言っても、実質数行程度のコマンドで削除可能、しかもやり方を理解できればパーティション単位での削除も可能です。
(PC環境の確認のために、何行かのコマンドを打ったりしますが。)
ということで、今回は「コマンド打ちでHDDの完全消去」のお話です。
今回はGUIベースの「Slax」というLiveCDでHDDの完全消去をしてみます。
ちなみに他のLinux系のLiveCDでもやり方は基本的に変わりません。
〔Slax で HDDの完全消去〕
上の図はSlaxが起動し終わった状態です。
さて、左下のほうに、まるで「テレビ画面」のようなアイコンがありますよね。
これをクリックするとSlaxの場合「Konsole」というツールが起動した状態になります。
ちなみに、「テレビ画面」のようなアイコンがデスクトップ上に置いていないケースもあります。
その場合、KDEメニュー等からたどっていきます。
(上図の場合、『KDEメニュー > アプリケーション > システム > ターミナル(konsole) 』とたどることができる)
Windowsでは「コマンドプロンプト」と言われるものですね。
このツール、一般的に「端末エミュレータ」や「ターミナル」と呼ばれるものです。
KDE系では「Konsole」、Gnome系では「GNOME 端末」と呼ばれる端末エミュレータが大概標準でついてきます。これを起動させてから「コマンド打ち作業」をしていくことになります。
(Windowsのプロンプトや、HDDにインストールされたLinux上からはHDDの完全消去はできませんのであしからず。あくまでLiveCD(またはUSBメモリなど)で起動したシステムで削除します。)
基本的に「#」の横の赤丸のところにLinux専用のコマンドを打っていきます。
「#」 はターミナルがルート権限(システム管理者権限)でのコマンド実行が可能になっていることを示しています。
一般ユーザ権限の場合は「$」です。LiveCDの場合、起動時は基本的にルート権限での作業になるので、HDDのデータ削除とかサクッとやってしまいます。
(HDDにインストールした通常のLinuxでは、起動時では一般ユーザ権限でのログオンなので、危険はありません。)
さて、ここからは危険な作業も含まれます。
もし、このページを見ながら試す場合は、何があっても自己責任の元で作業を行なってください。
ここからはあくまで処分予定のPCでのHDD完全消去を想定して話をしていきます。
間違っても、「使用しているPC」や「Windowsでの再活用を考えているPC」で、試さないようにしてください。(HDDリカバリタイプのWindowsPCの場合、リカバリができなくなります。)
あっさりデータが消えてしまうので。
あくまで、処分するPC、もしくはWindowsで再利用は全く考えていないPC、再活用するとしてもLinux系を考えているPCのみで、試してみてください。
よくわかっていない状況で作業を進めて、何かトラブルが起きても責任は持てません。あくまで自己責任の元で作業を行ってください。
不安な方は、破棄予定のPC、壊れても良いPCなどで試すと良いです。
(win98などのあまりにも古いPCだと動かない場合があります。メモリ256MB以上のPCなら、いける可能性は十分にあると思います。)
さて、では実際にコマンド打ちしてみます。
〔コマンドでHDD等のデバイス名を調べてみる〕
まず、データ消去予定のPCのHDDの名前(デバイス名)を調べます。この「デバイス名」がわからないとデータ消去ができないので。
ちなみに「このデバイス名」とは、メーカーのモデル名とか、型番のことではありません。
システム自身がHDDに割り振った「デバイス名」のことです。
# parted -l
というコマンドを打つと、いろんな情報が表示されます。
ちょっと情報量が多いので、補足説明します。
まず(1)のところから。
結論から言うと「/dev/XXX」のところがデバイス名です。
Modelのところに「ST380011A」と載っていますが、これはHDDのモデル名です。
つまりこのPCでは、システム(今回の場合Slax)が「ST380011A」というHDDに対して「hda」というデバイス名を割り当てていることになります。
ちなみに、モデル名の後ろの(ide)というのは、IDEのHDDであることを示しています。
また、
Partition Table: msdos
の「msdos」はMBR(msdos)パーティション形式であることを示しています。
gptパーティション形式の場合、ここが
Partition Table: gpt
となります。
「Number ・・・」から下の部分はこのHDDのパーティション構成を示しています。
(パーティション構成の見方については『Parted でパーティションの作成(分割) その1』を参照のこと。)
では(2)はどうでしょうか。
ここにも「/dev/sda」とデバイス名が割り当てられているものがあります。
実はこれ、「USBメモリ」です。
このPCには「USBメモリ」が刺されていたため、システムが自動で認識してデバイス名を割り当てたわけです。
ちなみに「外付けHDD」や自作PCなどで「複数のHDD」が接続されている場合もシステムが自動認識してデバイス名を割り当てます。
(3)も確認してみます。
何か「読み込み専用ファイルシステムです〜」とWarningが出てますね。
これは記録デバイスではありません。
今回、このPCに外付け用の『光学ディスクドライブ』を接続していたため、自動認識したわけです。
さて、今回は(1)(2)(3)とデバイスが3つ分かれて表示されましたが、PCによっては表示される数が変わります。
で、表示されるデバイス名が多いと困るのが『どれがHDDのデバイス名か、見分けがつきにくい』という点です。
Linuxでのデバイス名は名称のつけ方にルールがあります。
〔/dev/hd★ 系〕
/dev/hda
/dev/hdb
/dev/hdc
など、hd★となっているのはIDEの「HDD」か「光学ディスクドライブ」です。
〔/dev/sd★ 系〕
/dev/sda
/dev/sdb
/dev/sdc
など、sd★となっているのはSATAの「HDD」やUSBで接続された「外付けHDD」や「USBメモリ」などです。
〔/dev/sr★ 系〕
/dev/sr0
/dev/sr1
など、/dev/sr★となっているのは「光学ディスクドライブ」なんですが、たぶんUSB接続やSATA接続タイプのドライブがこの名前で割り当てられるような気がします。(経験上なので、ちょっと違うかも)
他にもあるのですが、もっと詳しく知りたい方は以下をどうぞ。
〔外部リンク:Debian GNU/Linux インストールガイド/Linux のデバイス
〕
デバイス名からある程度はHDDがどれか予想はできるのですが、実はデバイス名から確実にわかるわけではありません。
特にSATAのHDDとUSBメモリが混在していた場合「/dev/sd★」とかぶるので、デバイス名だけでは判断できません。
なので、「80.0GB」などの容量や「ST380011A」などのモデル名から総合的に判断したりします。
また、誤解を招きそうなUSBメモリなど、接続している必要のないものは始めからPCから外しておくなど、表示されるデバイスの数を減らしておくと良いです。
(はじめから外してあったなら良いですが、PCが起動している状態で、いきなりUSBメモリ等を外してはダメです。Windows同様、PC起動中に「デバイスを安全に外す」作業を行わないとデバイスが壊れることがあります。この「デバイスを安全に外す」作業をLinuxでは「アンマウント」と言ったりしますが、LiveCD起動時のマウント状態がLiveCDによっていろいろなので、慣れていない方はどの状況から作業をするのか判断するのが大変です。なので、もしUSBメモリ等を抜くのなら、一度PCを終了させ、PCに電源が入っていない状態でUSBメモリなどを抜くのが一番簡単で確実です。)
さて、話が長くなりましたが、本題に戻ります。
今回消去したいHDDは(1)の「/dev/hda」だとします。
ということで、次のコマンドを打って、HDDを消去します。
〔ddコマンドでHDDのデータを消去する〕
以下のコマンドを打つと、いきなりデータ消去になるので気をつけてください。
LiveCDの場合、起動時は基本的にルート権限(システム管理者権限)での作業になるので、HDDのデータ削除とかサクッとやってしまいます。
(HDDにインストールした通常のLinuxでは、起動時では一般ユーザ権限でのログオンなので、危険はありません。)
Windowsのゴミ箱みたいにやり直しは効かないので気をつけてください。
と打ちます。
これで、全削除です。
これを打ち込んで「Enter」キーを押したら最後、ひたすらHDDのデータを0で上書きしていきます。
さて、少し説明をします。
# dd if=[入力元] of=[出力先]
という書式になっています。
「/dev/zero」は特殊なファイルで、まさに「0」のファイルだと思ってください。
「/dev/zero」を入力元として読み込み、「/dev/hda」デバイスを出力先としてすべて「0(/dev/zero)で上書き」します。
ここで指定するデバイス名を間違えると、痛い目に合うことがあるので気をつけてください。
例えば今回のPCではUSBメモリが刺さったままなので「/dev/sda」とすると、USBメモリのデータがすべて「0で上書き」されるので気をつけてください。
ちなみに「0」では無く、ランダムな値で上書きしたい場合、「/dev/zero」ではなく、「/dev/urandom」または「/dev/random」とすると良いです。
# dd if=/dev/urandom of=/dev/XXX
「XXX」のところは該当するHDDのデバイス名です。
HDDのサイズが大きいと、それに比例して上書きに時間がかかります。
数時間とかはザラのようです。
上のコマンドを入力すると何も反応が無いように感じるので、止まってしまったかと思うかもしれませんが、ずっと動いています。
新しく「#」が表示されると終了です。
行が新しくなった場合、前のコマンドが実行し終わったことを意味しますので。
コマンド打ったら、放置して待ちましょう。
ちなみにshredコマンドでもHDD消去が可能です。
# shred -n 3 -z /dev/XXX
この場合、ランダムな値を3回繰り返して上書きし、最後に「0」で上書きします。
強力ですが、恐らく時間のムダです。
ここまでしなくても一般人にはddコマンドでの「/dev/zero」1回で十分だと思います。
ちなみに、HDDの全消去ではなく、パーティションテーブルだけをリセットしたいという場合があります。
その時は
# dd if=/dev/zero of=/dev/XXX bs=512 count=1
とすると、パーティションテーブルがサクッと削除(0で上書き)できます。
これは「/dev/XXX」に割り当てられたHDDの頭から「512バイト1個分を0で上書きする」という意味です。
データサイズが小さいので、一瞬で終わります。
ちなみにこれをちょいと変えると「MBRのバックアップ」もできたりします。
# dd if=/dev/XXX of=/home/MBR.image bs=446 count=1
これは「/dev/XXX」デバイスの頭から「446バイト1個分」を入力元として、homeディレクトリの「MBR.image」というファイル名で出力する、という意味です。
リストアは、ifとofの内容を入れ替えればokです。
「dd」コマンドは知っておくと結構便利なコマンドです。
光学ディスクのイメージ化もできたりするので、知りたい人はぜひ調べてみてください。
〔関連ページ〕
・HDD データ保存・消去の仕組み / PC処分と情報漏えい 〜 ゴミ箱でデータが消えない理由
・ディスク・ホワイトニング / HDD データの完全消去 ( with DBAN )
〔サイト目次〕
●記事目次
〔外部サイト〕
・Mediaweb:バックアップツールとコマンド: ddコマンドの使い方
・JM Project:ddコマンド