Windows XP 復活

Home

Last update: 2005/01/09


正月早々、XP起動せず。セーフモードもダメ。幸い、数日間の苦闘の末にデータも環境もほぼ問題なく復活できました。お困りの方の参考になればということで、以下にメモ。なお、PCはエプソンのBB100 という機械、OSは XP Home SP2 です。

(このページに書いてある情報が誤ってる可能性はかなりあります。うまくいく保証は何もありませんし、何があっても責任はとれません。あくまでもご参考までということで、よろしくお願いします。)


エラーメッセージ

次のファイルが存在しないかまたは壊れているため、Windows を
起動できませんでした:
¥WINDOWS¥SYSTEM32¥CONFIG¥SYSTEM

オリジナル セットアップ CD-ROM から Windows セットアップ
を起動して、このファイルを修復できます。
修復するには、最初の画面で 'R' キーを押してください。

使ったもの

・MSによる説明書

最初にコレを読んでおけば、と後悔したページです。あとで簡単に説明しますが、よく読んで修復の流れを理解して下さい。

レジストリの破損により Windows XP を起動できなくなった場合の回復方法
http://support.microsoft.com/kb/307545/JA/

・KNOPPIX

データの回収に活躍。CDから起動できるLINUX、KNOPPIX。回収先はUSB接続のHDDを使用 (80GB)。とりあえずCD作って持ってた3.6が役に立った。

KNOPPIX CD(ISO)版ダウンロード
http://unit.aist.go.jp/itri/knoppix/iso/index.html

・XP起動ディスク

「回復コンソール」を使うために必要。 OSがプリインストールだと「オリジナル セットアップ CD-ROM」がない。「リカバリディスク」ではダメ。MSからXP起動ディスクをダウンロード。

Home/Professional や SPなし/SP1/ SP2、日本語版/英語版 など区別あり。ブランクFD6枚必要。

Windows XP のインストール用起動ディスクを入手するには
http://support.microsoft.com/default.aspx?scid=kb;ja;880422

なお、FDが使えないときは下記参照。

CDブートの回復コンソールディスクを作る
http://www7.plala.or.jp/hop-step-jump/kaihuku.html

作業手順

1) データの回収

HDDの不良が考えられるので、とりあえずデータを確保。 KNOPPIXは、CDからブートしてXPのファイルシステム(NTFS)が簡単に読めるので、 こういうときに助かります。 USB接続HDDも問題なし(USBメモリはうまくなかった)。

結果的にはこの作業は必要なかった、ということになったのですが、回収の成功で心理的に非常に楽になりました。

2) レジストリ修復

やることは、壊れたファイルを正しいファイルに置き換える作業です。ただ、問題はWindowsを起動しないでNTFSを読み書きしなければならない、ということで、このために使うのが「回復コンソール」です。

手順はちょっとややこしいです。上にあげたMSの文書を必ず読んでいただきたいのですが、以下の説明を頭に入れておくと理解しやすいかと思います。いくつかのステップがあります。

2-1) 回復コンソールで「レジストリハイブ」を初期化

「ハイブ:hive」なんて初めて見たのですが、辞書を引くと「ミツバチの巣箱」とか、「がやがやと人々の集まる場所」とあります。どうしてそういう名前なのかイマイチつかめませんが、OSが起動するときこのファイルを見てレジストリを設定する、といったファイルみたいです(極めて曖昧ですみません)。

ハイブファイルは1つでなく、5つあります(以下、XPを既定どうりインストールした場合)。

c:¥windows¥system32¥config¥system
c:¥windows¥system32¥config¥software
c:¥windows¥system32¥config¥sam
c:¥windows¥system32¥config¥security
c:¥windows¥system32¥config¥default

これらのファイルは随時更新されていくのですが、これを一番最初の状態に戻します。具体的には、

c:¥windows¥repair¥

というフォルダに、初期状態のものが保存されているので、 c:¥windows¥system32¥config¥ にあるハイブファイルを削除して、それぞれ初期状態のファイルに置き換えます。

ここで注意するのは、MSの文書にもありますが、5つのハイブファイルをすべての初期化することです。エラーメッセージには "SYSTEM" だけ出ていたので、これだけを書き換えたらエライことになりました(後述)。

2-2) セーフモードでXPを起動

ハイブファイルの初期化ができたら、FDを抜いて、コンピュータを再起動します。最初のエラーメッセージは出なくなりました。MSの文書では、これでセーフモードでの起動ができるような感じに読めますが、私の場合、途中で自動的にリセットされてしまうとかで、まだ起動できないままでした。

しかし、とにかくここでハードディスクからの再起動せずに次の作業をやってもうまくないようです。良く分からないのですが、次項の「復元ポイント」が新しく作られるということのようです。

2-3) 過去の復元ポイントからレジストリファイルをコピー

次に、再びFDを入れてコンピュータを再起動し、回復コンソールを起動します。

XPでは、適当なタイミングで「復元ポイント」が作られ、その時点のレジストリが保存されています。先ほど初期化した5つのハイブファイルのそれぞれを、保存されているレジストリファイルで置き換える作業をするわけです。

具体的には、"c:¥System Volume Information¥"というフォルダに "_restore{D86480E3-73EF-47BC-A0EB-A81BE6EE3ED8}" といった長い名前(これは一例)のフォルダが(1つ以上)あって、更にその中に"RP" + 番号名のフォルダが沢山並んでいます。 "RP"というのは、多分 "Recovery Point" の意味でしょう。この "RP" + 番号 フォルダのそれぞれのなかに "snapshot" というフォルダがあって、そこに各復元ポイントのレジストリが保存されています。"_REGISTRY_..."という名前のファイルです。

どの復元ポイントのファイルを使うかは、「正常に起動した最終のもの」ということで良いと思いますが、一番最後はなんとなく気になったので、もうひとつ古いものを使いました。間違いなく5つのファイルを更新して、コンピュータを再起動。

なお、MSの文書「パート 2」には、「回復コンソールではレジストリファイルにアクセスできない。2-2) の段階で、回復コンソールからアクセスできる場所にコピーしておけ」という意味のことが書いてあります。しかし私の場合、なぜかアクセスできました。

2-4) システムの復元

以上でXPが起動するようになります(感激!)その後、アクセサリ → システムツール にある「システムの復元」で、新しいポイントに復元して修復完了。


いろいろ

こうして書くとすんなり行ったように見えますが、実際はいろいろトラブルがありました。

KNOPPIXでのファイル回収

環境にもよると思いますが、動作がかなり緩慢です。大量にファイル操作をしようとすると、すぐ「ストール」します。これはのんびり待っていればいいのですが、問題なのは、読めないファイルがあると、そこで止まってしまうことです。 必要なデータだけ回収する、というのが適当なの使い方なのでしょう。

しかし今回は不安にかられ、「可能なファイルは全部」とやりました。そうしたら、USB1.1ということもあって、時間がかかることかかること。大体、1時間で1GB という感じで、まる二日近くかかりました。普段からキチンと使うようにしてないとダメですね。

あと、USB接続HDD (FAT32) は問題なく認識され、読めるのですが、そのままでは書き込みができません。マウントしたあとで、ドライブモードを変更する必要があります。アイコンを右クリックして、動作 → Change read/write mode でできます。

もっと基本的なことだと、KNOPPIXをCDに焼く時、普通のファイルと同じようにするとブートしません。例えば、B's Recorder Gold だったら、普通のファイルをドロップする下のほうにある「ウェル」(四角い枠)にISOイメージファイルをドロップします。

回復コンソール

起動のときキーボードを選ぶのですが、指定の通りにしても、キーの刻印と違う文字が入力されました。本来はそんなことはない(修復後確認したら刻印通りでした)のですが、ちゃんと認識されてなかったようです。

Administrator のパスワード入力を求められるのが正しいのですが、そうでない時もありました。この辺、実に挙動不審で、よく分かりません。

フォルダの区切りは、無意識に "¥" でなくて "/" を使ってました。アクセスできていたからいいのか?また、スペースが入ったファイル/フォルダ名は、ダブルコーテーションで囲めば大丈夫でした。


回復コンソールが起動できない!

実は、最初MSの文書を見てなかったので、"SYSTEM" だけを初期化しました。すると、回復コンソール自体が起動できなくなってしまいました。 パスワードが違うとはねられたり、「lsass.exe のエラー」が出て自動的に再起動をくり返すとかするのです。

結局、KNOPPIX でNTFS書き込みをして 上記 2-1)の初期化を実行。これで回復コンソールが使えるようになったのですが、これがまたなかなか分かりませんでした。以下にメモを書いておきます。

KNOPPIXでのNTFS書き込み

まず、NTFS書き込みをサポートしているのは、KNOPPIX3.4以降です。

それから、サポートしているものでも、ブートしたままでは書き込みできません。windows の中にあるNTFS関係のドライバを利用する captive というプログラムを使います。少々込み入ってますが、手順は次の通り。

  1. KNOPPIXメニューの[Utilities]-[Captive NTFS]を実行
  2. group, user の設定
  3. mount

1. のやり方は以下が分かりやすいと思います。

http://buxus.s31.xrea.com/pukiwiki/pukiwiki.php?cmd=read&page=Captive&word=captive

ところが、早々にトラブル。SP2のせいか、必要なドライバを見つけてくれません。 結局MSから持ってきて解決しました。以下のところにあります(KNOPPIX 3.7ではSP2対応してる?)。

Windows XP Service Pack 1a Checked Build (32 ビット)
http://www.microsoft.com/japan/windowsxp/pro/downloads/servicepacks/sp1/checkedbuild.asp

なお、このファイルを実行するとシステムにインストールされて、多分まずいことになります。 必要なのは解凍して出てくる沢山のファイルのうちの4個、 cdfs.sys, fastfat.sys, ntfs.sys, ntoskrnl.exe だけです (最初の二つもなくて良い模様。ext2fsd.sys はないので入れなかった)。 解凍はCABが開けるものならOKです(LHMelting + cab32.dll など)が、 一度解凍すると "_" がついた拡張子のファイルができて、それを再び解凍しないといけないももあるので注意します。

2. の操作は以下の通りです。コンソールで行います。

$ sudo -s
# rm /etc/gshadow
# cp /KNOPPIX/etc/gshadow /etc
# addgroup --system captive
# adduser --system --no-create-home --home /var/lib/captive captive

user, groupに 'captive' を登録する、という作業です。下記、news/2004-12-22 knoppix_v3.7_20041208-20041221 リリース 参照。

Knoppix Temporary Directory
http://buxus.s31.xrea.com/pukiwiki/pukiwiki.php

3. のマウントはこんな感じ。これもコンソールから。

# mkdir /mnt/captive-LABEL_C
# mount -t captive-ntfs /dev/hda1 /mnt/captive-LABEL_C -o rw

下記ページ参照。ただし、/mnt/hda1 にマウントしたらダメ、 -o rw も念のためつけました。

コンピュータ系blog ● 動かしてみる (Windows XPのドライバで)
http://kinshachi.ddo.jp/kurage/html/MT/comp/archives/000439.html

以上、なんか間違ったこともしてるかもしれませんが、とりあえずこれでNTFS書き込み可、となりました。ただ、ファイルコピーなどの操作も、GUIでなくてコンソールからコマンドを打って行うのが無難みたいです。

なお、NTFSの仕様は公開されてないので、Windows以外で書き込みはしないのが安全、と聞きます。確かにちょっと不安定な感じもしました。でも背に腹はかえられないというところです。


後記

復旧したあと chkdsk したところ、ディスクの一部に不良が見つかりました。 本格的に壊れる前にディスク交換しようと思ってますが、 とりあえず、パーティション丸ごとバックアップできるツールを導入しました。 バックアップをとって、様子を見ています。

なお、MSの文書に、警告 : コンピュータのオペレーティング システムが OEM によってインストールされている場合、この資料に記載されている手順を使用しないでください。 という文言があり、 OEM のインストール上のシステム ハイブでは、それ以前に存在していなかったパスワードとユーザー アカウントが作成されます。と続きます。

lsass.exe のメッセージとか、そのあたりで出た模様です。今回はなんとかなってしまいましたが、運が良かっただけかも知れません。 …ということで、データを回収した上で、ダメもとでやってくださいね。


公開: 2005/01/09