• ベストアンサー

デュアルブートのLinuxからHDDの抹消

WindowsとLinuxをデュアルブートしています。 LinuxからWindowsのcドライブ内のファイルを復元不可能に 米国国防総省式で抹消したいのですが、その方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.5

どこまで理解していて、具体的な目的がどこにあるか? 書いておかないとおかしい回答がつくこと多いので :-) No.4はおかしいこと言っているようにも見えるけど デュアルブート構築の基本は、先にWindows導入。 C:を抹消して、改めてWindowsを入れ直して ほかの人に使わせるという作戦は… 技術的に難しいので、そこも一考の余地あると思います。 (ddを使ったMBRバックアップ等を習得すればできることだけど) 米国国防総省式の手順を理解しているなら ddコマンドを使い、手作業でそれができるし 同時にスクリプトでもできることを意味します。 でも、それは普通やらないので、専用ソフトを期待するなら そういうソフトが無いのかを訊くのが手っ取り早い。 で、通常のLinux用としては無い。あるいは無名。 ただしLinuxベースで米国国防総省式の抹消が可能な DBANがあることは既出ですね。 もっと手軽で、妥協できそうな抹消方法としては Linuxでのshredコマンド、ddでの乱数書き込み Windowsでのcipher.exeなどが知られています。 shred,cipherはパーティション単位のほか ファイル単位での抹消を行なえます。 (ただしフラグメンテーション等による散乱を取りこぼす可能性がある) で、こういった作業で重要なのが、削除すべき範囲の判断。 Linuxでは、/dev/sdaか/dev/hdaが起動デバイスになっていることが多いでしょう。 これはmountコマンドで表示される/(ルートパーティション)行から 簡単に判断ができますし、デュアルブートなら 同じドライブの違うパーティションにC:があることもわかります。 たとえばsudo fdisk -l /dev/sdaを行なえば /dev/sdaのパーティション情報がわかりますから WindowsのC:ドライブは、その中のNTFS/HPFSと表示されたところです。 最近のPCで、一般的な手順で構築したデュアルブート環境であれば /dev/sda : SATAの一つ目のHDD /dev/sda1 : WindowsのC:ドライブ /dev/sda2 : Linuxの/パーティション /dev/sda3 : Linuxのswapパーティション といった構成になっていると思います。 つまり、shred /dev/sda1でいける。 (たぶん、そのあとfdiskで/dev/sda1を削除し、再作成し、mkfs等でフォーマットすれば再利用できます) 一般的には、/dev/sda1だったりしますが… これ、PCのリカバリーシステムの都合などで 違うことがあることに先月気づきました。 まぁうちの支店長のFujitsuノートだけど C:D:がそれぞれ/dev/sda3,/dev/sda4になってる。 通常のWindowsユーザーはC:がパーティション管理上の 最初のパーティションのことだと思っていることが多いけど これまったくの勘違いで、二つめや三つ目のパーティションにあることもある。 ですから、一旦Linux上でマウントしてみて 中身を確認してから、そのパーティション番号を覚えておいて あらためてDBANのCDで起動して削除するってのが手堅い方法。 もっとも、現実的には、単純にumountしたそのパーティションを shredコマンドで抹消するだけで、実用上の問題は無いだろうと思っています。 所要時間の長さから、PCをそんな作業のために占有されるのが困るなら shredコマンドのほうが、合理的な選択肢だと思います。 まぁ、PCの性能仕様によっては、shred中に ほかの作業なんかまともにこなせないんですけどね… #具体的でない質問には、網羅的なやたら長い回答が来て、読むのが面倒くさいこともある。

phantom444
質問者

お礼

ありがとうございます

その他の回答 (4)

  • dev_null
  • ベストアンサー率67% (37/55)
回答No.4

デュアルブートのWindowsのパーテションを抹消する必要性が分かりません。 cドライブはもう二度と使用しないってことですか? 要望にあうか分かりませんが、badblocks を書き込みモードでやるくらいじゃだめですか? 米国国防総省式を調べると 3.『データ消去の確認が出来ない場合は、ドライブを破壊しなければならない』 ってことは、物理的に壊せばいいのでは?

参考URL:
http://www.linux.or.jp/JM/html/e2fsprogs/man8/badblocks.8.html
phantom444
質問者

お礼

回答ありがとうございます。 僕にはCドライブを抹消する必要性があります。 抹消したらまたOSをインストール使用と思っています。 物理的に壊したらOSがインストールできません。

  • ya9pon
  • ベストアンサー率34% (88/254)
回答No.3

Linux(UNIX)標準コマンドによるデータ抹消 http://www.cybernetic-survival.net/dd.htm によると。 # dd if=/dev/urandom of=/dev/fd0 ; dd if=/dev/urandom of=/dev/fd0 ; dd if=/dev/zero of=/dev/fd0 乱数→乱数→ゼロの書き込みであり、「NSA方式」の抹消と一応同じになる。 抹消の対象は例1、2と同じで、ゼロではなく乱数を書き込む 乱数の書き込みには、/dev/zeroに替えて/dev/uramdomを使う。 # dd if=/dev/urandom of=/dev/hda (プライマリハードディスク全体) # dd if=/dev/urandom of=/dev/hdb (セカンダリハードディスク全体) # dd if=/dev/urandom of=/dev/sda (1番目のSCSIハードディスク全体) # dd if=/dev/urandom of=/dev/sdb (2番目のSCSIハードディスク全体) # dd if=/dev/urandom of=/dev/hda1 (プライマリハードディスクの第1パーティション) # dd if=/dev/urandom of=/dev/sda1 (1番目のSCSIハードディスクの第1パーティション)

  • cynthia4
  • ベストアンサー率51% (186/358)
回答No.2

読み方によっては File は消去するが、File system は残す とも解釈できますが、 米国国防総省式で、そういうものは知りませんが ハードディスクを完全消去する「DBAN」 http://sourceforge.jp/magazine/09/10/07/0859247 なるものは有ります。 従来の、shred、wipe は、米国国防総省式に 準拠しているかどうか解りません。 その他 Windows も含めて 参照 ファイル等を復元できないように削除するソフトウェア http://www.unixuser.org/~haruyama/security/user_security/sakuzyo_tool.html

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.1

簡単な方法としては、ddを使って 固定パターンを標準出力に出すプログラム | dd of=/dev/Windowsドライブに対応するデバイス 補数のパターンを標準出力に出すプログラム | dd of=/dev/Windowsドライブに対応するデバイス 乱数パターンを標準出力に出すプログラム | dd of=/dev/Windowsドライブに対応するデバイス ということになるかと思います。 (処理時間を短縮するために、バッファサイズを適切に設定するほうがよいかもしれません。) 問題は、パターンを出力し続けるプログラムですが、簡単にCなどで、 #include <stdio.h> main(){ while(1){ putchar(0x55); /*補数のときは0xaa*/ } } みたいなのを作って使ってもよいかと思います。

関連するQ&A

専門家に質問してみよう