特集
» 2009年07月02日 00時00分 公開

あきらめる前に試すべき5つの対処法:Windows XPが立ち上がらない! そのときの対処法 (5/6)

[井上孝司,著]

復元ポイントの情報を手作業で書き戻す
 再起動後に、再度、Windows XPをセーフモードで起動する。このとき使用するレジストリは、上記の手順でコピーした、セットアップ直後のレジストリだ。

 これによってシステムがセットアップ直後の状態に戻ってしまっており、ハードディスク上に存在する復元ポイントの存在が認識できなくなる。そこで、存在する復元ポイントの情報を含むレジストリを用意して、システムの復元機能による復元を可能にする。ところが、復元ポイントのファイルが置かれている「System Volume Information」フォルダは回復コンソールからアクセスできず、セーフモードでは直接レジストリが置き換えられないため、一時作業用のフォルダに所要のファイルをコピーしておかなければならない。

 これから行う作業はAdministratorアカウントによるログオンが必須となる。

1.セーフモードのログオン画面でAdministratorアカウントを使ってログオンする。

2.Windowsエクスプローラを起動して、[ツール]メニュー以下にある[フォルダ オプション]を選択する。表示されるダイアログで[表示]タブに移動して、以下の設定変更を行う。これは、後述する「System Volume Information」フォルダを画面に表示させて、アクセス権の設定を可能にするために必要な操作だ。

  • [ファイルとフォルダの表示]以下の[すべてのファイルとフォルダを表示する]を選択する。
  • [簡易ファイルの共有を使用する]のチェックを外す。
  • [保護されたオペレーティング システム ファイルを表示しない]のチェックを外し、確認メッセージが表示されたら[はい]をクリックする。

3.Windows XPがセットアップされているドライブの「System Volume Information」フォルダを選択して、プロパティ画面を表示させる。

4.「System Volume Information」フォルダのプロパティ画面を表示して、[セキュリティ]タブに移動する。Administratorユーザーに[読み取り可能]のアクセス権を設定する。

5.System Volume Informationフォルダにあるフォルダ群のうち、作成日時が現在の時刻ではないフォルダを探して開く(時刻が分からない場合、[表示]メニューの[詳細]を選択するか、プロパティ画面で調べる)。目的は、「_restore*\RP*」以下にある、「snapshot」フォルダだ。パスの内容は「C:\System Volume Information\_restore{D86480E3-73EF-47BC-A0EB-A81BE6EE3ED8}\RP1\snapshot」といったものになる。Windows XPが正常に動作していたと確認できる範囲で、できるだけ新しい時点のものを使用するとよいだろう。

システムの復元機能が作成したバックアップの例
システムの復元機能は、「%SystemDrive%\System Volume Information」フォルダ以下に、レジストリなどのバックアップを作成している。
  (1)最上端のフォルダは、Windows XPをセーフモードで起動し直した際に自動作成されたものなので、これは使用しない。
  (2)最新ではなく、かつ正常に動作していたと確認できる範囲でできるだけ新しいものを選択して、そのフォルダの中の「_restore*\RP*\snapshot」フォルダからレジストリのファイルをコピーする。

6. 「snapshot」フォルダから、以下のファイルを「C:\Windows\tmp」フォルダにコピーする。これらは、システムの復元機能が作成したレジストリのバックアップだ。

  • _REGISTRY_USER_.DEFAULT
  • _REGISTRY_MACHINE_SECURITY
  • _REGISTRY_MACHINE_SOFTWARE
  • _REGISTRY_MACHINE_SYSTEM
  • _REGISTRY_MACHINE_SAM
復元ポイントからのファイルの取り出し
上の画面は、復元ポイントに含まれるレジストリのファイルを、一時作業用フォルダにコピーしているところ。復元ポイントが使用する「System Volume Information」フォルダは回復コンソールからアクセスできないため、回復コンソールからアクセスできる一時作業用フォルダに、所要のファイルをコピーする必要がある。

7.「C:\Windows\tmp」フォルダにコピーしたファイルの名前を、以下のように変更する。これにより、ファイル名がバックアップ用のものから通常のものに変わる。

  • _REGISTRY_USER_.DEFAULT → DEFAULT
  • _REGISTRY_MACHINE_SECURITY → SECURITY
  • _REGISTRY_MACHINE_SOFTWARE → SOFTWARE
  • _REGISTRY_MACHINE_SYSTEM → SYSTEM
  • _REGISTRY_MACHINE_SAM → SAM

既存レジストリの削除と復元ポイントの書き戻し
  次に、既存のレジストリを削除して、先に一時作業用フォルダにコピーしておいたレジストリのファイルをコピーする操作を行う。これにより、正常に動作すると確認できている範囲で、できるだけ新しい状態に戻すことができるはずだ。

1.コンピュータを再起動して、回復コンソールを起動し直す。

2.以下のコマンドで既存のレジストリを削除する。

C:\> del c:\windows\system32\config\sam
C:\> del c:\windows\system32\config\security
C:\> del c:\windows\system32\config\software
C:\> del c:\windows\system32\config\default
C:\> del c:\windows\system32\config\system

3.以下のコマンドで、復元ポイントから取り出しておいたレジストリを「C:\Windows\system32\config」フォルダにコピーする。

C:\> copy c:\windows\tmp\software c:\windows\system32\config\software
C:\> copy c:\windows\tmp\system c:\windows\system32\config\system
C:\> copy c:\windows\tmp\sam c:\windows\system32\config\sam
C:\> copy c:\windows\tmp\security c:\windows\system32\config\security
C:\> copy c:\windows\tmp\default c:\windows\system32\config\default

4.「exit」と入力して回復コンソールを終了して、コンピュータを再起動する。

残りの復元作業の実施
 ここまでの作業では、復元ポイントから取り出したのはレジストリだけだ。それ以外の情報については、通常の「システムの復元」機能を使って復元ポイントから書き戻す必要がある。

 復元が成功裏に完了したら、ファイルを読み出すために変更した「System Volume Information」フォルダのアクセス権を元に戻しておこう。何らかの理由でレジストリが破損していたような場合は、これで正常に起動できるようになるはずだ。

MBRの復旧
 レジストリの破損だけでなく、ハードディスクのマスター・ブート・レコード(MBR)に問題が生じた場合にも、Windows XPが起動不可能になる。MBRに問題があると推測された場合、回復コンソールでfixmbrコマンドを実行すると、MBRを書き直して、起動可能な状態に復帰できる。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。