ど素人おじさんの報告書 > --「自作PC作成記録」と「PCトラブル対応記録」
▲Index

16_WindowsXP homeが起動しない場合の対処手順(3号機)

2007年5月初旬のことでした。自作PC3号機が起動しなくなりました。
我が家では、リビングの一角に配置されている無線LAN上のPCで、一番利用頻度が高いPCなので、影響はかなり大でした。

このマシンはWindousXp Home sp2 のOSを使っています。
症状はセーフモードでも起動しない状況でした。例のブラックな画面で、「前回の正常な立ち上がり」も動作せず、リセットを繰り返すばかりという深刻な状況でした。
原因は不明ですが、起動時に使用される「レジストリーの破損」の可能性が大です。

WindousXpには、「プログラム」>「アクセサリー」>「システムツール」で「復元」という便利な機能があるのですが、起動しなければ元も子もありません。以前からちょっと気になってはいましたが、起動ディスクは作成していませんでした。
ただインストールCDが起動ディスク替りになること?は理解していました。

WindousXp HomeのインストールCDをBootで立ち上げて、回復コンソールでかろうじて「Dos画面」が立ち上げることはできました。平行して、他のPCでNETの情報を検索しつつ、回復の試みを行っていきました。

再インストールするには、それまで構築した環境に復元するためには、プログラムの再インストールとアップデートを含めかなり膨大な時間が費やされます。数日回復にかかるのは必至です。最終的にどうにもならない場合はしかたありませんけどね。

今回、「回復コンソール」から、かろうじて復活した手順のをレポートしていこうかと思います。

余談ですが、ノートンゴーストというドライブの完全なバックアップを行うソフトがありますが、経済的な理由で導入は行なっていません。あれはいいですよね、本当に。。。。。。

1)状況と推測される原因

WindousXp Homeの立ち上がりで、例のブラックな画面が出る場合は、「前回の正常な立ち上がり」をブラックな画面でセレクトしていけば大抵正常に再起動しますが、今回はダメでした。

WindousXp Homeの立ち上がりは、「レジストリー(ハイブファイル)」というファイルで制御されています。このファイルが何らかの原因で破損しているか、内容の不整合でこのような状況が起きると考えられます。

ファイルの破損は、正しく終了しなかったり、とか、ハードディスクの断片化?などが考えられます。ようは、ちょっと物理的なファイルのアクセス面の不具合などで発生する事象ですね。それは電圧やら複数アクセスやら、原因の特定はかなり難しい部分になると思われます。

内容の不整合は、新しいプログラムのインストールやプログラムのアップデートなどが行なわれた場合の「再起動」の時点でこの症状が出る場合があると考えられます。とくに、現状のアプリケーションプログラムは自動でアップデートしたりする部分が多いので、困ったものです。

回復のへの手順は、ひとことでいうと「正常な立ち上がり時のレジストリー(ハイブファイル)を復元すればよい」ということになります。
WindousXp Homeの立ち上がりで、例のブラックな画面が出る場合に「前回の正常な立ち上がり」でもっと複数の復元ポイントを選択できて完全に復元できればいいのですが、現実はそうは甘くはありません。
2)マイクロソフトホームページによる一般的な回復手順
以前かなり似たような現象があり、このときは、マイクロソフトの
http://support.microsoft.com/kb/307545/JA/
のページの手順で、どうにか上手くいったのですが、今回は、ちょっと違うようでした。

今回も以前と同様(たぶん)
---------------------------------------
次のファイルが存在しないかまたは壊れているため、Windows を起動できませんでした
: \WINDOWS\SYSTEM32\CONFIG\SYSTEM
---------------------------------------
とうエラーメッセージがでていました。
以前の具体的な手順は、

1)WindowsXp起動時に読み込まれるレジストリーファイル(ハイブファイル)をインストール時に戻して、
2)セーフモードで立ち上げて、復元ポイントにたどり着く、

という流れでした。
これはおそらく「定番の手順」のはずです。
なお、ハイブファイルは1つでなく、
一般的に以下のフォルダー(c:\windows\system32\config\)のように5つ存在します。

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\

のはずです。これらの復元手順は「回復コンソール」で行い、

md tmp
copy c:\windows\system32\config\system c:\windows\tmp\system.bak copy c:\windows\system32\config\software c:\windows\tmp\software.bak
copy c:\windows\system32\config\sam c:\windows\tmp\sam.bak
copy c:\windows\system32\config\security c:\windows\tmp\security.bak
copy c:\windows\system32\config\default c:\windows\tmp\default.bak

delete c:\windows\system32\config\system
delete c:\windows\system32\config\software
delete c:\windows\system32\config\sam
delete c:\windows\system32\config\security
delete c:\windows\system32\config\default

copy c:\windows\repair\system c:\windows\system32\config\system
copy c:\windows\repair\software c:\windows\system32\config\software
copy c:\windows\repair\sam c:\windows\system32\config\sam
copy c:\windows\repair\security c:\windows\system32\config\security
copy c:\windows\repair\default c:\windows\system32\config\default

となりますが、、これをTXT化(regcopy1.txt)して batch regcopy1.txt というコマンド入力で、一括実行が可能です。

これで、再起動してWindowsXpセーフモードが立ち上がるはずなのですが、今回は起動画面で「リセットの繰り返し」で症状が基本的に変わりませんでした(泣)。
おそらく、初期設定では不具合な環境になってしまっているからでしょうけど。。。

3)今回の復元手順:初期ファイルではなく、実績のある適切なレジストリーファイルを復元する。

マイクロソフトの
http://support.microsoft.com/kb/307545/JA/
のページの手順1で、
再起動してWindowsXpのセーフモードが立ち上がるはずなのですが、今回は起動画面で「リセットの繰り返し」で症状が基本的に変わりませんでした(泣)。
初期設定では不具合な環境ということなんですね。

初期設定では不具合な環境ということは、どういうことなんでしょう?
一瞬途方にくれましたが。気を取り直して、本当に正しく動作していたであろう実績のある復元ポイントを復元することにしました。

やはりマイクロソフトの
http://support.microsoft.com/kb/307545/JA/
のページを参考に「手順のパート2」をパスして、手動「回復コンソール」で「手順のパート3」をやることにしました。
XPでは、適当なタイミングで「復元ポイント」が作られ、その時点のレジストリが保存されています。前項目で初期化した5つのハイブファイルのそれぞれを、「保存されているレジストリファイルの中から正しく動作していたと思われるレジストリファイル」に置き換える作業をするわけです。

具体的な手順は、
c:\System Volume Information\"というフォルダの中に、
"_restore{87BD3667-3246-476B-923F-F86E30B3E7F8}" のような「 _restore {GUID} 」フォルダが 1 つ以上含まれています。
さらにその中に「RP + 番号フォルダ」が並んでいます。
「RP」というのは、おそらく 「Recovery Point」 の意味です。
この 「RP + 番号フォルダ」のそれぞれには、さらに「snapshot」というフォルダがあって、そこに各復元ポイントのレジストリが保存されています。「_REGISTRY_○○」という名前のファイルです。

どの復元ポイントのファイルを利用するかは、「正常に起動した最終のもの」ということになりますが、念のため今回は「最終のもの」より一つ前ものを利用しました。
ここで、例の5つの「レジストリーファイル(ハイブファイル)」をコピーして、renameしてコンピュータを再起動しました。

? _REGISTRY_MACHINE_SECURITY を SECURITY に変更します。
? _REGISTRY_MACHINE_SOFTWARE を SOFTWARE に変更します。
? _REGISTRY_MACHINE_SYSTEM を SYSTEM に変更します。
? _REGISTRY_MACHINE_SAM を SAM に変更します。

こうして、自作3号機マシンはWindowsXPをやっと立ち上げることが出来ました。

その後は、アクセサリ → システムツール→システムの復元で、あらためて「正しく動作したいポイントに復元」して修復完了となりました。あとは、ディスクの最適化を念のために行ないました。

あれれ、変ですね。
こういうことなら、最初からいきなり「復元ポイントからコピー」すればいいことになる気がしますが。。。。??
なるべくセーフモードから作業することが「推奨」ということなのでしょうか??

なお、MSの文書「パート 2」には、「回復コンソール」ではレジストリファイルを操作できない、というようなことが記述してあります。しかし私の場合は、なぜか問題ありませんでした。
その場合の対処についても、MSの文書では「記述」もしくは、「他の文書へのリンク」が貼られています。 しかし、今ひとつやり方が不明確な感じです。今後「レジストリファイルを操作できない」場面に遭遇したときは苦労しそうです。

あともうひとつ、重要なことがあります。
スペースが入ったファイル名やフォルダ名は、ダブルコーテーションで囲む必要があります。

ということで、今回は、一件落着しましたが、どうも「レジストリファイルを操作できない」が頭の隅に引っかかっています。
2007/6/15 (金) 14:00:42

▲Index


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送