wiki:レジストリ修復

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

# sgk 2006/7/18

ウィンドウズのウィークポイントはレジストリです。 レジストリについては、皆さんいろいろ文句があるかと思います。 一番の問題は、案外壊れやすいくせに、壊れると起動さえしないってことでしょう。 世の中には「Unknown Hard Error」なんてものまであって、「Hard」は「ハードウェア」じゃなくて、なんだかわからないけど厳しいエラー→あきらめろ、なんだそうな。

今朝、また壊れてしまいました。よりによって、バックアップ作業中に。 しかも、以前のバックアップファイルは上書きされてやがる! 悪いのはウィンドウズだけじゃないんです。 個人の日常環境を偏執狂的にVMwareに入れて毎日持ち歩いている僕が悪い。 いや、VMwareがシャットダウン間際の書き込みをしくじることがあるのと、VMwareがときおりクラッシュするのがいけない。

どうやって治すか。 エラーメッセージには、「回復コンソールで治せる」って書いてあるけど、そんなにお気楽ではない。 検索すると、こんな情報がみつかります。

いずれにも本質的な事は書いてありません。

作業の目的

修理作業の目的は、バックアップから、レジストリのデータベースファイルを復旧することです。 レジストリのデータベースファイルとは、以下の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

注意すべきなのは、これら5個で一組なので、一部分だけ復旧するとおかしくなるということです。つまり、 このページに書いてある手順は間違いです。 これも間違い

課題

一番の課題は、ウィンドウズを起動できないのにどうやって復旧するのかということでしょう。  KB307545に示されている方法では、ウィンドウズのインストール直後の正常なレジストリファイルでいったん復旧し、起動してから、最近のバックアップからレジストリファイルを復旧するという解決方法を採っています。 ただし、OEM版(PCメーカーがプリインストールした版)では、この方法を使ってはいけないそうです。 世の中ほとんどがOEM版なのに、どうしろと言うんでしょうか。曰く「サポートに電話してください」。サポートに電話すると、「それではリカバリCDを用意して…」って言われるんでしょう。

もう一つの課題は、どのバックアップを使うのかということです。 定期的にバックアップを行っているなら、それでいいでしょう。 また、「C:\WINDOWS\REPAIR」フォルダには、ウィンドウズのインストール直後の正常なレジストリファイルが保存されています。「C:\System Volume Information」フォルダ以下には、「システムの復元」機能のためにレジストリファイルが保存されている可能性があります。

解決

PCがもう一台必要です。 別のPCにハードディスクをつないで、C:\System Volume Informationからレジストリファイルを復旧します。 「復元コンソール」なんて使わなくて済むので簡単です。 ただし、PCの自作やメンテナンスに慣れている人じゃないと悩むでしょう。

  • 壊れたPCからハードディスクを取り外す。
  • 取り外したハードディスクを、壊れていないPCに取り付ける。もちろん、2台目以降のドライブとして。
  • 壊れていないPCを起動する。管理者権限のあるユーザでログオンする。
  • 壊れたPCのハードディスクを探して開く。
  • [ツール][オプション]、表示された「フォルダオプション」ウィンドウの「表示」タブ。
    • 「全てのファイルとフォルダを表示する」を選択。
    • 「保護されたオペレーティングシステムファイルを表示しない(推奨)」のチェックをはずす。
  • System Volume Information」フォルダが表示される。
  • このフォルダのプロパティを表示して、セキュリティタブを開き、今ログオンしているユーザがアクセスできるようにする。
  • このフォルダを開く。
  • _restore{XXXXXXXX-XXXX-XXXX-…}」フォルダを開く。XXX…は英数字。
  • RPXXX」フォルダのうち、一番新しい物を開く。XXXの部分は数字。どれが一番新しいかは、更新日時を表示して比べる。
  • snapshot」フォルダを開く。
  • 以下の5個のファイルをデスクトップなど適当な場所にコピーする。
    • _REGISTRY_MACHINE_SAM
    • _REGISTRY_MACHINE_SECURITY
    • _REGISTRY_MACHINE_SOFTWARE
    • _REGISTRY_MACHINE_SYSTEM
    • _REGISTRY_USER_.DEFAULT
  • System Volume Information」以下のフォルダは閉じていい。
  • 先ほどコピーした5個のファイルの名前を、それぞれ以下のように変更する。
    • _REGISTRY_MACHINE_SAMSAM
    • _REGISTRY_MACHINE_SECURITYSECURITY
    • _REGISTRY_MACHINE_SOFTWARESOFTWARE
    • _REGISTRY_MACHINE_SYSTEMSYSTEM
    • _REGISTRY_USER_.DEFAULTDEFAULT
  • 壊れたPCのハードディスクの、「\WINDOWS\SYSTEM32\CONFIG」フォルダを開く。
  • 既存のレジストリファイル(5個)を、名前を変更するなどして保存しておく。
  • 先ほど名前を変更した5個のファイルを、このフォルダに移動する。
  • あとはウィンドウズをシャットダウンし、ハードディスクを元通りにすれば終わり。