はるかぜ

気ままてきとう雑記。 本HPは左のHP紹介欄バナーから。

GNU ddrescueとか、editBCDとか……

 少しだけ久しぶりに、調子が悪いと人様のパソコンを預かったら、
見事にHDDが「不良セクタ」の嵐だったので、複製作業をしていました。
クローンですね……ただ、リカバリ領域やWindowsRE環境などでいろいろあったので、
備忘録に書いておこうと、そういう記事です。
誰の役に立つんだか。

 「修復がどうのって出る」ということで、預かってきたのは、
ONKYOのEGPNR4515A3PO、OSはWindows7です。
起動させてみると、読み込みが遅い……HDDランプが5秒点灯一瞬消灯の繰返し。
そのうち、一瞬ブルースクリーンが出て起動できず、
コンピュータの修復に回されて、リカバリ画面が出てきました。
CHKDSKをかけると、エラーで進めないくらいの状態でした。

 CHKDSKで修復をかける前に、ddrescueでクローンを作っておきました。
使ったのは、System Rescue CDというディスクで、はじめっからGNU ddrescueが同梱されています。
コピー先とコピー元を間違えないように……
そののち、ひたすらCHKDSK /Rで修復をかけてみました。
6回くらいで、エラーなく進むようになりましたが、まあ遅いこと……
それでも、Cドライブは軽傷だったようで、なんとか起動までこぎつけました。

 CrystalDiskInfoで情報を見ると、代替保留中のセクタが山のようにありました。
ただ意外なことに、代替処理済みのセクタがひとつもありませんでした。
どうせHDD交換になると思い、もう一度ddrescueで複製。
……うちに、320GBに足るHDDがなかったので、Cドライブを縮小し、
状態が酷い上、バックアップしか入っていなかったDドライブを見捨てて、
複製が未割当領域で終わるようにしました。
そして、複製先でいろいろしようと思ったのが、事の始まりだったのでした。

 旧HDDでは起動していたのに、新HDDで起動しない……!
Windows7はおろか、コンピュータの修復も起動しない……
 
 単純思考の私は、BOOTRECで/FIXMBR・/FIXBOOT・/RebuildBCDをやったのでした。
前ふたつをして再起動するも変化がなく、
RebuildBCDなんかは、なまじっか情報があるせいか、追加するOSがないときた。
うんうん考えて、BCDの名前をいったん変えてからRebuildBCDをすればどうかと思って、
やってみたら、起動しました。
よしよし……と思ったのも束の間。
F8起動で、「コンピュータの修復」が選択肢にない。
リカバリ出来ひんやん……
調べに調べて行きついたのがここ……BCDの調整が必要なんですね……
もともとのBCDの情報をBCDEDIT /ENUM ALLで出してメモ帳に貼り付け、
それをもとに、自分でエントリを作りました。
一覧になくて、追加しなければならなかったのは、

よくわからないけれど(汗)、デバイス オプションを、
BCDEdit /Create /d "Ramdisk Device Options" /device

WindowsRE環境を、
BCDEdit /Create /d "Windows Recovery Environment" /application osloader

そして、
BCDEdit /set {ID} ~
で項目を設定して再起動をかけると、やっとこさ回復環境が起動しました。
調べるの大変だった……

 システムファイルチェッカーをかけると、修復できないファイルがありました。
やはり、読めないファイルがあったようでした。
どうしたもんかなーと思っていたのですが、
SP1その他もろもろを当てているうちに、ファイルが埋められたようで、
更新を一通り終えてから再びSFCをかけたら、整合性違反を検出しませんでした。


 余興ですが、
旧HDDは、さきのディスクでshuredをかけてみました。
3回乱数を書いてもらい、そのうえでゼロフィルをしてもらいました。
その後、新HDDを旧HDDに複製し、もともとのBCDファイルを戻したら、あっさり起動しました。
いったん別なHDDに複製し、また元のHDDにそっくり戻すと、
BCDの情報も、以前と同じく使えることが分かりました。
あと……代替保留中のセクタ数が0になりました(笑
全部書けたんかい!
ただ、やはり使っていると、まただんだんと代替保留中のセクタ数が増えてきたので、
どうあがいても、もうこのHDDは寿命のようでしたとさ。