▼ 2008/06/01(Sun) ディスク故障
ブートローダーの復旧
対象のマシンにはHDDを物理的に3台積んでいる。それぞれα、β、γとすることにすると、αが今回インストールしたVista、βが今まで使っていたXP、γが緊急起動用の昔のXPである。
αにインストールしたとき、βのブートセクタを壊してしまったので、αの接続を外してβの起動優先度を1番上にし、回復コンソールをCDブートで起動した。
ここで、ログインするときに何故かCドライブ(β)が確認できない。一応γへの回復コンソールログインが出来るようだったので試してみた。
無事にログインし、DIR C:を試してみると、何故か"列挙できない"という旨のエラーが帰ってきた。
「どーせ、ブートセクタが壊れてるからNTLDRを認識できず、したがって何か微妙な状態になってるんだろう」位にか考えておらず、fixmbrとfixboot c:を試したのだが、その時どちらも正常完了したものの、何故かFATとして認識されていた。
この時点で青ざめたのだが、ブートシーケンスまで行ってみるとNTLDR is missing。
と言う事はブートセクタは直ったわけだ。
ファイル構造がどうなっているかをαに入れたVistaから確認すると……
「10MBのパーティション???しかも、FAT12???」
開いてみると
αのVistaから見ても、γのXPから見ても、βの中には4バイトのファイルが一個あるだけだった。念のためKNOPPIXを試してみたが、パーティションはちゃんとNTFSなものの、中身は文字化けしまくっていて読めない。
えーー!
どうやら
HDDの論理テーブルを壊してしまったようだ……。幸い最重要なMy Documents辺りは95%位バックアップに頼っていいと思うのだが…。200GB近くのデータが失われるのはやっぱり辛い。
となれば復旧
αに入っているけど、とりあえず使い物にならないVistaはフォーマットして、こちらに復旧させる事に。γで起動して、復旧ソフトを立ち上げてみる。
まずは、以前にお世話になった「R-Studio データレスキュー PRO」を試してみる。
以前もシステムディスクが壊れたとき、これにお世話になったが、復旧率は微妙だったかなぁ……。
▼セクタースキャンしてみた。不思議なパーティションが認識されている

今回も試してみたけど、ディスクの最初の方のMFTが壊れてて読めないのか、ルートディレクトリにぶら下がってるディレクトリが読めた程度、ファイル群は全て削除されたものとして点々バラバラに検出された。
ファイルは戻せるかもしれないが、これでは元のディレクトリに戻すのは骨である。
▼ツリーが1階層で切れている……

次に試してみた復旧ソフト
FinalDataという有名すぎる復旧ソフトを試してみた。とはいえ、2006とかもうかなり前のバージョンだけど。こちらはさすがに大御所だけあって、半端ない。
簡易スキャンではさすがに無理だが、パーティション検出をきちんと行って、セクタスキャンさせたところ、わらわらファイル名が出てきて、ディレクトリ構造も検出できている。
あと数時間で全クラスタのスキャンが終わるようだが……。
(追記)
結局ディレクトリ構造やファイル構造まで復元できていたが、ファイルの中身がぐちゃぐちゃで使い物にならなかった。やはり、パーティションタイプがへんちくりんになってしまった以上、どっかで勘違いを起こしたんだな…。
今までのデータにはお別れを告げて、新しいシステムを組もう……(涙
教訓
HDDの値段も下がってきたし、ソフトウェア的にでもミラーリングするシステムを作っておくのが良いかも…。HDDを近日中に買おう……。
とかいって、前同じドライブを2台買ったけど、あればあるようにオリジナルデータを大量に溜め込んでしまうんだよな(汗
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクやはてブしていただけると助かります…。
コメントも歓迎です。
- TB-URL http://mo.kerosoft.com/026/tb/
▼ 2008/06/01(Sun) OSインストとか…
さて、メモリを増設したところでx86からx64に環境を移そうと考えているのだが色々問題が出てきたので解決してみた。
Vista x64で…
Ntfs.sysのBSODが発生することがある。OSのみインストール後、SP1を当てている所で起きた事もあったし、今日なんかはOSインストール中に起こった。
全く不定期に起こるのでよく分からないのだが、ディスク系のトラブル……?ディスク自体は全然元気なのだけど。
Vistaのブートローダー
Vistaからは、XPまでのNTLDRとboot.iniを使う方式は廃止され、BCD*1と言う情報でブート情報を管理するようになりました。具体的にはMBRのコードと、ブートマネージャ*2と、\Boot以下にあるファイル群(BCD及びブートマネージャのローカライズファイル)でデータを保持しているわけですが、インストール時に注意があります。
このBootフォルダが置かれるのはインストールパーティションではなく、1番最初のHDDのパーティションです!
ゆえに、BIOSのハードディスクの起動順序の最初のパーティションのBootディレクトリとMBRが上書きされます!!
ディスクごとにマルチOSを構成している自分のような場合は、うっかりBIOSで起動順序の指定を間違えると、例えばXPが入っているOSのブートローダーをぶっ壊します…orz
とはいっても、ただ壊すわけではありません。
仮に、今Vistaを入れようとしているHDDをα、既存のHDDをβとし、βにはXPが入っているとします。
また起動優先度(BIOSの設定)はβ>αとしていて、DVDブートでVistaをインストールしたとします。
すると、当然のようにVistaはαへインストールされるわけですが、ブートローダー・ブートマネージャはβに入ります。
βのXPが起動しなくなっては困るので、起動エントリにβのXPを起動するエントリを追加します。
整理すると、
- αのMBRには何も入っていない。ブートローダーもブートマネージャもない。*3
- βのMBRにはVistaのブートローダーが居る。これはβ上のブートマネージャを参照する。ブートマネージャはβ上のBCD情報を参照して、そこからαのVistaを起動するか、βのXPを起動するか選ぶ。
このまま運用できなくはないものの、もしβのHDDを取り外してしまったらαのVistaは起動できなくなります。
# まぁ、XPやXP以前の頃も↑のような問題はある上、認識したハード順にドライブレターが振り分けられるため、システムドライブがC:とならない事もある。Vistaでは、システムドライブが常にC:となるようになっただけでも偉いかもしれない。
というわけで、何が言いたかったかと言うと、OSのインストール中は、インストール先HDD以外は物理的に取り外しましょう^^*5
*1 : ブート構成データ
*2 : BCDを呼び出すソフト
*3 : DVDから起動して"修復"を試してみたけど、「ブートマネージャが見つからない」と文句を言われただけで終わった。ブートマネージャをインストールするコマンドは分からない…
*4 : 1ディスクにパーティションを切ってXPを入れている状態で、Vistaを入れたとき、簡単にデュアルブートになるように……とかいうのを意図して作ってあるのだろうが。
*5 : Linuxでもブートローダーが予期せぬ場所に入れられてしまった経験があるので、セットアップは何処にインストールするのか明示すべきだな。
Dynabook
さて、お次はDynabookの話題。↑のように頻繁にOSを入れなおしたり環境を変えるタワーPCとは違い、ノートなのでハードの大きな変化もないし、構成的にも自作よりは安定していると言える。
というわけで、私は未だにDynabook AX1/424CMEを愛用している。メールを見るための安定したマシンとして。
が、最近たまにIDE #1 ERRORというエラーをBIOSのPOSTで吐くようになった。
これをはじめてみたときは、「終にHDDがお亡くなりか!?」と焦ったものだが、HDDは#0である。
つまり#1とは内蔵のCD/DVDドライブが問題ということ。メッセージと同様にアクセスLEDも点灯しっぱなしだし、ディスクイジェクトボタンは効かないし……。
このノートは、稼働中に雨漏り直撃で壊れたのを復活させた時に散々バラし慣れているので、必要最小限で分解し、エアーダスターを少々……。
と、米粒ほどの埃が沸いて出てきたのだ。
取り除いて元に戻すと認識。やったね!
この手のエラー(IDE #1 ERROR)が出るときは、ハードの故障を疑う前に、埃を除去をしてみるといいですよ。
#このノート、事あるごとに「もう買い替えじゃなかろうか…」と思ってしまうけど、結局直ってしまう不思議……。
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクやはてブしていただけると助かります…。
コメントも歓迎です。

1: t98907 2009年09月05日(Sat) 午後0時05分
ブートセクタの壊れ方によっては
fixbootで修復できないということでしょうか。。。
2: Keroberos 2009年09月06日(Sun) 午前0時30分
いえ、そうではないと思います。
基本的に、インストールされているOSのセットアップCD/DVDを使って起動し、回復コンソールから打ってやれば復活するはずです。
が、fixbootがディスクのパーティションを勘違いしてしまうと、↑のような大惨事になるので、実行前に確認を忘れないよう、気を付けてください。