okkyの日記: HDD 交換完了 9
日記 by
okky
ThinkPad T60 のHDDを 160G から 250G に換装した。
但し、バックアップ領域に 40Gbyteを割り当ててあるので、実質使えるのは 210Gbyteだ(前は 32Gbyteを割り当てていた)。
で、取り合えず 160GのHDDはバックアップとして保存するとして、その前の1台…80Gbyteの奴をどうするかが問題になる。
ThinkPadを最後に捨てる際にこいつに戻す…と言うの手ではあるが、多分その前に腐ってしまうだろう。ずーっと動かしていないわけだし。であれば、データを消した上で中古屋に売り払うのも手だ。
問題は「どうやって」データを消すか。
1) 00-FF-00-FF で順に full して
2) エロ画像で一杯にする(ランダムなデータの代わり)
の2ステップにするのが多分正解(?え?)なのだが、いつも思うのは「FF で full する」方法。
00 で full するのは Linux とかの rescue disk で dd if=/dev/zero してやればいいのだが、FF を垂れ流してくれる仮想デバイスが無い。
もちろん、何も考えずにプログラムを書けばいいのだが、それは悔しい。unix なのだから絶対何か手があるはずだと思うのだが…。何か無いだろうか??
GNU shred (スコア:0)
GNU fileutilsに入ってる。FFじゃなくてNULもしくはランダムデータだけど。
/.Jユーザーなら、bananan_w氏 [srad.jp]のkdeshred [osdn.jp]使えという意見もあるだろうが、2.4系Linuxカーネルを使ってる都合上、今時のSATAコントローラには対応してない可能性が高い。
Re:GNU shred (スコア:1)
ただ、私がやりたいのは NSAご推薦の壊し方なんですよ。00-FF-00-FF-Random-Random っていうのは NSA ご推薦のやり方だったかと思います。
# もしかしたら、最初は FF-00-FF かもしれない。
別に「NSAだから安心」という意味ではなく、単に『やってみたい』だけなんですけどね(^^;)。
fjの教祖様
過去ログより (スコア:0)
Re:過去ログより (スコア:1)
dcfldd がまさに欲しいものでした。
fjの教祖様
tr使えば? (スコア:0)
もっと単純に とか。
Re:tr使えば? (スコア:1)
よっしゃ。これで「そこらへんに落ちている distro の recovery disk」だけで、HDDの換装 & 古いHDDの破棄 はほぼ確実にできる。
# dd はともかく、tr はたまに無い奴があるから「ほぼ」。
『cat /dev/zero | tr \000 \377 | dd of=/dev/hda』
であれば、dd を使っているので、obs=64M とかしておけば、きっと書き込みも早いだろう。
fjの教祖様
Re:tr使えば? (スコア:1)
調べてみたら、新しいNSA標準はランダムデータ2回書いた後ゼロクリアという方式みたいです(出典はこのページ [hitachi.co.jp]。日立というのが個人的にツボ)。okkyさんがやりたいのは昔のNSA標準ではないでしょうか。
ついでにGNU shredについても調べてみましたが、#1284530の「FFじゃなくてNULもしくはランダムデータ」 [srad.jp]とは程遠い、偏執狂的に念入りな方法で消去しているようです。
GNU shredのmanページに書いてある元ネタの論文「Secure Deletion of Data from Magnetic and Solid-State Memory [auckland.ac.nz]」を斜め読みしたところ、この論文では符号化された後にプラッタに書き込まれる磁気記録のパターンから逆算した27通りのビットパターン(その前後に4回ずつランダムデータを書き込むので、合計で35pass)を書き込むことで、残留磁気から元のデータを類推される可能性を極力小さくするという方法を提唱しているみたいです。
GNU shredのデフォルトは25passなんで元論文の方法をアレンジしていますが(実際に25pass消去を試してみたら最初のランダムデータ書き込みは1passで終わったし)、それでも十分変態的なレベルです。
ところで、昨今は計算機の性能向上著しいので、ディスク全体にこんな変態じみた消去法を使ったらいくら時間があっても足りない……というわけでもないみたいです。
現在AthlonMP 2800+デュアルのPCを使って、250GB×2 + 320GB×1の計3台の壊れたSATA HDDを全部同時に25passでshredしているんですが、320GBのHDDは3時間で2pass終了してますから、25passにかかる時間は単純計算で1日半ちょっとという計算になります。途中で250GBのディスク2台のshredが完了しますから実際はもっと短くなるかもしれません。
Re:tr使えば? (スコア:1)
計算力はこの場合あまり関係ない気がしますが…HDDも「sequencial write」は結構早くなっていますからね(記録密度が上がったおかげで)。
乱暴な話、同じ 2.5inch 5400rpm のHDD 160Gbyteと250Gbyteでは、後者の方が bit/sec は向上しています。ただし、track数が増えているはずなので、「全trackを書き込むのに、platterが何周する必要があるか(そりゃ最低 track 数 x serface 数だけ回転する必要があるだろう。headは一度に1個しか使えないんだから)」で考えると、時間はかかるようになりますが。
並列度は、SATAとかFCのような通信メディアの速度と、bus速度、メモリの速度の内律速条件がどれかで決まります。P-ATAかS-ATAかなど、通信メディア部分が大抵、一番遅いのでここが律速になります(メモリは一度に1つのメディアしか相手をすることが出来ませんから、1bit送るのに何秒かかるかで制約されます)。
あとは…並列に書き込む場合、ランダムなデータに対するエントロピーが十分供給されるかどうか、ぐらいですかね。HDDの初期化を行う専門のハードが売られていますが、その中には同時に何十個もHDDが繋げるものがあります。が、どうも「全部のHDDに同じビット列を送る」ものがあるようで…10台のHDDが同じ「ランダムデータ」で上書きされたのでは、全HDDを回収するとデータを推測しやすくなる気がします。
fjの教祖様
Re: (スコア:0)
http://www.ultimatebootcd.com/
でisoイメージ拾って、CD-boot
Darik's Boot and Nuke
使ってます。
複数のHDDを同時に消去できるところがうれしい。