メインマシンのDynabooksがトラブルを

FedoraとかVMwareとかXenの実験用のInspiron 1501とは別に、普段、仕事やメールで使っているDynabookがトラブルに見舞われた。

元々はVMware Playerを動かすにあたり、仮想マシンのディスク用ファイルはフラグメントしない方が良いだろうと思い、デフラグを動かしたことが原因のようだ。パラノイアの私としてはデフラグは2回以上実行する。2回目に実行する前に「分析」でディスクの状態を表示したら、80Gの内40G程度しか使っていないのに80%位のエリアにファイルが存在するように表示された。「デフラグってファイルがある部分だけ拡大して表示してくれる機能とかあったんだ」などと呑気なことを思いつつ、つい「実行」を押してしまった。1回デフラグを行なった後なので、程なく作業は終わったがリブートしようとすると「ntoskrn.exeが無いか見つからない」というメッセージが出てWindows XPが立ち上がらなくなってしまった。困った、仕事で使っているマシンだし、メールも全てこのマシンに保存されている。金曜日には重要なプレゼンが控えているのに。

焦ってInspironはそっちのけでDynabookの復旧に没頭することになる。

Windows XPの復旧機能を使えないか?

メッセージからしMBRかブート関係のファイルが壊れた(多分、デフラグ時に壊れた?)可能性が高い。ならば、HDDの内容の殆どは無事の可能性がある。とすると、行き成り再インストールをするよりは何とか壊れた部分を復旧することを考えてもよさそうだ。

確かWindows XPのインストールCDでインストールするときに「復旧しますか」とかいう質問があったので、それが使えないか試してみる。DynabookのXPは購入時にバンドルされたもので、再インストール用のCDを確認したところ、なんとディスクイメージの形で納められている。これは使えないので正規版のXPのCDをセットしてマシンを立ち上げようとした。

私としてはXPのインストール画面(ドライバなどをロードする最初の青い画面)が出てくることを期待していたのが、なんと(ラッキーなことに)DynabookにインストールしてあるXPが立ち上がった。最初、CDをセットしてスイッチをONして、ちょっと席を離れた、これが良かった。XPのインストールCDとかはHDDにWindowsがインストールしてあると、キーボードから何らかのキーを押さない限り、HDDにインストールされているOSで立ち上がる。その際にHDDがわでntoskrnl.exeが見つからなかったので、CDから必要なファイルをロードして立ち上がったようだ。WindowsのインストールCDはここまで想定してデザインされていたのだろうか。ちょっと感心してしまった。

「ひょっとして」と淡い期待をしつつ、CDを取り除いてリブートしてみたが、やはり「ntoskrnlがない」と言って立ち上がらなかった。仕方ないが、少なくともXPのインストールCDがセットされている限りは、元の状態で立ち上がってくれる。(と言っても、これから先ズーっとCDドライブを持ち運んで仕事をする訳にもいかない。)

CDからntoskrnl.exeを戻してみる

まず、試みたのがntoskrnl.exeをインストールCDから\WINDOWS\system32へコピーしてみることだ。その前にファイルが存在するかどうかを確認。確かに\WINDOWS\system32\ntoskrnl.exeは存在するし、特段壊れているようにも思えない。一応、CDからntoskrnl.ex_をexpandコマンドを使って展開して\WINDOWS\system32へコピー、そしてリブート。

しかし状況は同じだった。「ntoskrnlがない」と文句を言って来る。

回復コンソールをインストールする

Webで調べていくと「回復コンソール」というものがあるらしい。これをインストールしてみる。だたし、手元にあるXPのCDがSP2ではないので、マイクロソフトのホームページからSP2を生成するキットをもってくる。(参考:SP2 にアップグレード後、Windows XP CD から回復コンソールをインストールできない

回復コンソールをインストールして「fixboot」と「fixmbr」を実行してみた、が、結局これも効果なし。

インストールCDの回復機能を使う

いよいよ、XPのインストールCDの回復機能を使ってみることにした。兎に角、今はCDからのブートが可能なので、今の内にバックアップを取っておく。ネットワークを介して別のサーバへバックアップをとる。バックアップの最後に回復用のフロッピーを作るかと聞いてくるので、一応作っておいた。

さて、バックアップを取り終わってからXPのインストールCDをセットして、今度はインストーラを起動する。そうすると回復目的かどうか聞いてくるところがあるので、ここで先程作ったフロッピーを読み込ませる。(回復機能なんて初めて使うので、ここでフロッピーが必要になるとは思っていなかったが。)

さて、何が始まるのか? XPをインストールするパーティションを聞いてくる。勿論、現在使っているパーティションを指定した。そしたらなんと、インストーラのヤツ、行き成りフォーマットを始める。「おいおい、俺は回復させたのに」と思ったが既に遅い。さて、中断するかどうか考えてみたが、取りあえずそのまま続行した。そしたら、一旦、サラのXPをインストールした後、自動的にバックアップユーティリティが立ち上がって、ロッピーディスクの情報に従ってファイルをリストアしようとする。なる程、回復とはこう言う手続きを言っていたのか。し・か・し、私はネットワーク経由で(マイクロソフトのファイル共有で)他のサーバ上のファイルとしてバックアップを取っていた。一方、インストーラから起動した状態ではネットワークが使える環境ではない。結局、サーバにアクセスできずに「回復」は中断せざる終えなかった。

オリジナルのHDDからコピー

さらにラッキーなことに、Dynabookに元々ついていたのは(勿論、東芝製の)40GBのHDDなのだが、2ヶ月程前に40GBが一杯になってしまい、手元に余っていた日立製の80GBのHDDに交換していた。その際、40GBのHDDから80GBのHDDへはDriveCopy plusというユーティリティを使ってコピーしたのだが、元の40GBのHDDをそのまま取ってあった。ラッキーである。2ヶ月前に状態まではもう一度HDDをコピーすれば戻せる。そして、さっき取ったバックアップを使えば、何とか復旧できそうだ。

40GBのHDDから丸ごと全部コピーして、次にXPを立ち上げてバックアップユーティリティを使ってファイルを元に戻す。勿論、ネットワークは使えるので(過去2ヶ月に設定を変更したネットワーク情報だけを設定しなおして)リストアする。その際に、同じファイルがあった時に「現在のファイルより新しい場合にだけ更新する」を選らんでリストアする。そうすれば、(先程のバックアップに含まれている)デフラグで壊されたと思われるファイルはリストアされない。

以上で何とか、ほぼトラブル発生の直前の状態まで復旧することができた。しかし、今回はラッキーが2つもあり助かった。