Windows 標準コマンドで完全にディスク消去する方法
昨今の個人情報保護の関連もありますし、なにより自分が使っていたハードディスクを中古で売ったりするのであれば、なおさらのこと、中に入っていたデータは確実に消去したいものです。
さて、今日は時間もあるので、パソコン関連の使っていないパーツ類を整理することにしました。ここ1年間で使わなかったパーツ類は問答無用で捨てるというルール。コレは必要かなぁ〜と考え出すと全部捨てられないので・・・(;^_^A
・・・使っていないハードディスクが2つも出て参りました。
160GB と 80GB とこのご時世としては容量が極端に少ないので売り払うことに。
となれば、ハードディスクのデータは完全に消去しておきたいものです。いろいろ探してみたのですが、CD イメージ形式でリブートして・・・なんてのは面倒くさい。何より CD を焼く行為が面倒くさい。再起動する手間が面倒くさい。
調べていたら cipher.exe ってコマンドの存在を知りました。Windows 2000、XP Pro、Server 2003、Vista Business、Vista Ultimate の OS 標準コマンドとして使えるコマンドです。僕が使っている OS は Vista Ultimate なので標準コマンドでディスクの完全消去が可能ってわけです。コレコレ。この手軽さが良いです。
調べていて大いに参考になったサイトは下記の通りです。特に、Cybernetic Survival Network の記事は奥が深い検証がなされていて素晴らしく参考になりました。
- Cybernetic Survival Network - フリーのデータ抹消ツール
- Cybernetic Survival Network - フリーのデータ抹消ツール vs. 商用のデータ復元ツール [NTFS編]
- Cybernetic Survival Network - フリーのデータ抹消ツール vs. 商用のデータ復元ツール [NTFS編] 実験2 cipher.exe
- Windows で Cipher.exe を使用して削除済みのデータを上書きする方法
- @IT:Windows TIPS -- Tips:ディスクの内容を完全に消去する
話を戻します。 Cybernetic Survival Network の検証結果によると、ファイルフォーマットが NTFS 形式の場合は、cipher.exe で消去したディスクを市販のツールでも復元することができなかったとのこと。逆に FAT 形式の場合は復元できてしまうようです。
上記結果を信じるならば、消去対象の HDD が NTFS ならば cipher.exe で必要十分なわけですね。自分で検証するのも面倒なので cipher.exe で消すことにしました。
ちなみに cipher.exe の説明自体は MS のサポートセンターの説明がわかりやすいです。cipher.exe には暗号機能以外にデータ上書き機能があって、それを利用することでディスクの削除が可能というわけです。
ファイルまたはフォルダを削除しても、データはすぐにはハード ディスクから削除されません。代わりに、削除されたデータによって使用されていたディスク上の領域が "割り当て解除" されます。割り当て解除された領域は、ディスクに新しいデータが書き込まれるときに使用されます。この領域が上書きされるまでは、低レベルのディスク エディタやデータ回復ソフトウェアを使用して、削除済みのデータを回復することが可能です。
プレーン テキスト ファイルを作成して暗号化する際には、暗号化処理中にエラーが発生してもデータが失われないように、暗号化ファイル システム (EFS) によってファイルのバックアップ コピーが作成されます。バックアップ コピーは、暗号化の完了後に削除されます。他の削除済みファイルと同様、このデータも上書きされるまで完全には削除されません。Cipher ユーティリティの新しいバージョンは、このようなデータが無断で復元されることがないように設計されています。
さらに cipher.exe の消去アルゴリズムについては、@IT:Windows TIPS の説明が詳しいです。3回上書きモードで消去するようです。僕の経験からして、削除アルゴリズムの中では結構強力な部類に入ると思います。その分時間がかかるけど・・・
随分と前置きが長くなってしまいました・・・。以下、cipher.exe を使ってディスク消去した実行ログです。
- [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、[名前] ボックスに cmd と入力てコマンドプロンプトを起動します。
- コマンドプロンプトからcipher /? と入力して、/w オプションが使用可能かを調べます。/w の説明が表示されていればディスク消去機能が使用可能です。
G:\>cipher /? NTFS パーティション上のディレクトリ [ファイル] の暗号化を表示または変更します。 CIPHER [/E | /D | /C] [/S:ディレクトリ] [/B] [/H] [パス名 [...]] CIPHER /K CIPHER /R:ファイル名 [/SMARTCARD] CIPHER /U [/N] CIPHER /W:ディレクトリ CIPHER /X[:EFS ファイル] [ファイル名] CIPHER /Y CIPHER /ADDUSER [/CERTHASH:ハッシュ | /CERTFILE:ファイル名] [/S:ディレクトリ] [/B] [/H] [パス名 [...]] CIPHER /REMOVEUSER /CERTHASH:ハッシュ [/S:ディレクトリ] [/B] [/H] [パス名 [...]] CIPHER /REKEY [パス名 [...]] /B エラーが発生した場合に中断します。既定では、CIPHER はエラーが発生しても実行を続行します。 /C 暗号化されたファイルに関する情報を表示します。 /D 指定されたファイルまたはディレクトリの暗号化を解除します。 /E 指定されたファイルまたはディレクトリを暗号化します。後で追加されたファイルが暗号化されるようにディレクトリをマークします。親ディレクトリが暗号化されていない場合、暗号化されたファイルは、変更されるときに暗号化を解除されます。ファイルおよび親ディレクトリを暗号化することをお勧めします。 /H 隠しファイルやシステム属性のファイルを表示します。既定ではこれらのファイルは省略されます。 /K EFS で使用するための新しい証明書およびキーを作成します。このオプションが指定されると、その他のオプションはすべて無視されます。 /N このオプションは /U でのみ動作します。このオプションにより、キーが更新されなくなります。ローカル ドライブ上のすべての暗号化ファイルを探すために使用されます。 /R EFS 回復エージェント キーと証明書を作成してから、それらを.PFX ファイル (証明書と秘密キー) と .CER ファイル (証明書のみ) に書き込みます。管理者は、ユーザーの回復エージェントを作成するために .CER の内容を EFS 回復ポリシーに追加し、個々のファイルを回復するために .PFX ファイルをインポートすることができます。SMARTCARDが指定されている場合は、回復キーと証明書をスマート カードに書き込みます。.CER ファイルが生成されます (証明書のみ)。.PFX ファイルは生成されません。 /S 指定されたディレクトリとすべてのサブ ディレクトリに対して指定された操作を実行します。 /U ローカル ドライブのすべての暗号化ファイルを参照しようとします。これにより、現在のユーザーのファイル暗号化キー、または回復エージェント キーに変更があった場合、これらが更新されます。このオプションは /N 以外の他のオプションでは動作しません。 /W ボリューム全体で利用可能な未使用のディスク領域から、データを削除します。このオプションを選んだ場合は、他のオプションはすべて無視されます。ローカル ボリューム上のどの場所にあるディレクトリでも指定することができます。ディレクトリがマウント ポイントである場合、または別のボリュームのディレクトリを指し示す場合は、そのボリュームのデータが削除されます。 /X EFS 証明書とキーのバックアップをファイルのファイル名に作成します。EFS ファイルが指定されている場合は、暗号化に使われている現在のユーザーの証明書のバックアップが作成されます。指定されていない場合は、ユーザーの現在の EFS 証明書とキーのバックアップが作成されます。 /Y ローカル PC 上の現在の EFS 証明書を縮小表示します。 /ADDUSER 指定された暗号化ファイルにユーザーを追加します。CERTHASH が指定されている場合は、この SHA1 ハッシュを含む証明書が検索されます。CERTFILE が指定されている場合は、ファイルから証明書が抽出されます。 /REKEY 構成済みの EFS の現在のキーを、指定した暗号化ファイルで使用するように更新します。 /REMOVEUSER 指定されたファイルからユーザーを削除します。CERTHASHは削除する証明書の SHA1 ハッシュである必要があります。 ディレクトリ ディレクトリのパスです。 ファイル名 拡張子を伴わないファイル名です。 パス名 パターン、ファイル、またはディレクトリを指定します。 EFS ファイル 暗号化されたファイルのパスです。 パラメータを指定せずに CIPHER を実行すると、現在のディレクトリとディレクトリに含まれるすべてのファイルの暗号化状態を表示します。複数のディレクトリ名やワイルドカードを指定できます。複数のパラメータを指定する場合は、パラメータをスペースで区切ってください。
- まずは、消去したいハードディスクのドライブ名を良く確認します。今回削除したいのは G: ドライブです。
- コマンドを入力して ENTER を押すと問答無用で処理が始まります。消去するコマンドは、
cipher /W:ドライブ名: cipher /W:ドライブ名:\フォルダ名
です。1つ目はドライブ全体を消去するコマンド。2つ目はあるフォルダ配下のみを消去するコマンドです。今回の削除対象のドライブ名は G: です。細心の注意を払いながら
cipher /W:G:
と入力。即座に 0x00 でのデータ上書きが開始されました。
以上で G: ドライブのディスクの消去が完了しました。 80GB の消去で約4時間半ほどかかりました。その間パソコンの電源を切るわけにも行かないので、結構暇を持て余しちゃいますね。こりゃ。
cipher.exe によるディスク消去は、数ある消去ツールの中でも時間がかかる部類のモノかと思います。
おしまい。
コメントやシェアをお願いします!
drk
>鷹司堂後さん
本エントリがお役に立てたようで良かったです。時間はかかるけど無料で手軽にってのがポイントですね。本コマンドが使えない windows エディションがあるのろ、時間がかかるって欠点がありますけど・・・w
鷹司堂後
はじめまして!
この機能、ずっと探していました。
半年ほど前に、古いPCを廃棄する際、MSDOS上からも
なかなかディスクをクリーンにできなくて苦労したのですが、
次回からこの方法を使いたいと思います。
ブックマークさせていただきます。