起動できないWindowsを復活させよう!!
かなりやばい予感?
奥様のお友達のパソコンが起動しなくなったので、なんとかせいやと奥様からミッションが降ってきた。
- パソコンの電源を入れると起動はする(BIOS画面が表示され、Windowsの起動画面は出る)
- ところが、わけの分からないメッセージが表示され、そのまま固まってしまう
- 電源を強制的に切って再度起動しても全く同じ症状
...かなりやばい予感?ま、なんとかなるかなるかいな?
インターネットで症状を検索してみると、考えられる原因は以下のとおり。
- ハードディスクの故障 → 最近交換したばっかりなので可能性は低いかも
- メモリ周りの不具合 → 怪しいかも
- いわゆるレジストリファイルの破損 → よくわかんない(^^;)
で、早速家庭訪問し、症状を確認...確かに、あまり見慣れないメッセージが表示されている。
これは、やっぱりレジストリファイルの破損ということらしいので、持ち込んだノートパソコンでインターネットに接続し、対処方法を検索してみると...かなり厄介かも。
- 「エラー メッセージ “次のファイルが存在しないかまたは壊れている” が表示され、製品版パッケージの Windows XP を起動できない」という事例がマイクロソフトのサポートオンラインに掲載されているが、対処方法は以下のとおり
- 手順 1 : エラー メッセージをメモする
- 手順 2 : 回復コンソールを起動する
- 手順 3 : エラーのあるファイルを修復する
...こんなんで本当に直せるんかい!!
「この資料は中級レベル以上のコンピューター ユーザーを対象にしています。」と記載されてはいるが、この内容ではいわゆる(自称)中級レベルのユーザーであっても全くちんぷんかんぷんではないかと思った俺様。
さらに性質(たち)の悪いことに、この対処方法は「製品版パッケージのWindowsXP」のみが対象であり、世の中の大多数を占める「プリインストール版のWindowsXP」には使えない...「プリインストール版のWindowsXP」の場合、再インストール以外の手はないっぽい。
...なんだかあまりにも悲惨な状況だが、再インストールだけは避けたいところなので、俺様的に一番楽チンで確実なレジストリファイルの修復方法を試してみることにした。
純正の修復方法
まずはマイクロソフト純正の修復方法の簡単な説明から。
この修復方法は、パソコンが一台しかなく、そのパソコンがぶっ壊れた場合を想定している。
なので、回復コンソールをCD-ROMブートしてから以下の作業が必要となる。ただし、この方法には重大な問題があるようなので、そのまま実行しないように(^^;)。
- 「system32config」に移動
- もともとある「SYSTEM」という名前のファイルを「SYSTEM.bak」という名前にリネーム
- 「….repairsystem」にある「SYSTEM」ファイルを「system32config」にコピーする
- 回復コンソールを終了(exit)し、パソコンを再起動する
- ここで無事に再起動できても、レジストリファイル(この場合は「SYSTEM」)が初期化されている(セットアップ直後の状態に戻っている)ので、復元ポイント(前回の復元ポイント → ここが重要、なぜなら一番新しい復元ポイントはコピーしたレジストリファイルで作成されている)からレジストリファイルを復元してやる
...めんどくせ~(^^;)。
でもって、実はコピーすべきファイルは「SYSTEM」ファイルだけではなく他にも複数あるっぽい。
いちいち回復コンソールを起動するのもかったるいというか、そもそもプリインストールパソコンでCD-ROMブートが可能=回復コンソールが起動可能なリカバリCD-ROMは存在しないのではないかと思う俺様。
ということで、純正の修復方法には手を出さないのが賢明かも。
俺様的修復方法~前準備
それでは、俺様的に一番楽チンで確実なレジストリファイルの修復方法とはどういうものなのか簡単に説明。
要するに、ぶっ壊れたWindowsXPの中にある、最終の復元ポイントに存在している各種レジストリファイルを直接「system32config」にコピーしてやればオッケーだったりする。
なので、この方法はWindowsXPが正常に起動するパソコンと、かつぶっ壊れたパソコンのハードディスクをそのパソコンに外付けで接続できる環境が必要。
具体的には、
- ノートパソコン(当然WindowsXPがインストールされているやつ)
- 外付けのUSBドライブのアダプタ(ハードディスクを接続してUSBドライブとして使用可能なアダプタ)があればオッケー
まずは、ぶっ壊れたパソコンからハードディスクを回収する。
もしかしたらメモリ周りの不具合という可能性も捨てきれないので、Memtest86とかでメモリチェックも行なうこと。当然CD-ROMブート版。
次に、回収したハードディスクをUSBドライブのアダプタに接続し、ノートパソコンに接続してドライブを認識させる。
この場合、ノートパソコンにはAdministratorでログインすること。
通常であればDドライブとして認識されるかと思うが、以下の説明はDドライブということで。
復元ポイントのファイルは、隠しフォルダである「System Volume Information」というフォルダに格納されている。
なので、エクスプローラの「フォルダオプション」→「表示」で以下の設定を行ない、隠しフォルダが見えるようにしておくこと。
- ファイルとフォルダの表示 →「全てのファイルとフォルダを表示する」を選択
- 「簡易ファイルの共有を使用する(推奨)」→ チェックを外す
- 「登録されている拡張子は表示しない」→ チェックを外す
- 「保護されているオペレーティングシステムファイルを表示しない(推奨)」→ チェックを外す
上記の作業でやっとこさDドライブに「System Volume Information」が出現するが、このフォルダを開こうとすると無常にもアクセスが拒否されてしまう場合がある。
これは、NTFSドライブの場合、「System Volume Information」に対するアクセス権がいわゆる「SYSTEM」アカウントのみに割り当てられているためなので、自分のアカウントを追加してやる必要がある。
まずは、Dドライブの「System Volume Information」フォルダを右クリックし、メニューからプロパティを選択し、プロパティシートの中の「セキュリティ」タブを選択する。
で、真ん中にある「追加(D)」のボタンをクリックする。
「ユーザ名またはグループの選択」ウィンドウが表示されるので、「選択するオブジェクト名」のところに、今現在自分がノートパソコンでログインしているアカウント名(Administrator名)を入力し、「OK」ボタンをクリックしてやる。
そうすると、「SYSTEM」アカウントとは別に追加したアカウント名(Administrator名)が表示されているはずなので、その下にある追加したアカウント名のアクセス許可のところの「フルコントロール」の「許可」チェックボックスにチェックを入れ、「適用(A)」ボタンをクリックし、「OKボタンをクリックする。」
これで「System Volume Information」フォルダへのアクセスが可能になるはず。
俺様的修復方法~実作業
それでは、実際の作業の開始。
まずはDドライブの「System Volume Information」フォルダを開いてみる。
そうすると、「_restore{…」という長ったらしい名前のフォルダが入っているはずなので、そのフォルダをさらに開いてみる。
複数の「_restore{…」フォルダが存在する場合は、隠しフォルダ(アイコンが薄い色)で、かつ作成日が最新のやつを開くこと。
「_restore{…」フォルダを開くと、その中に「RP」+「数字」という名前のフォルダが複数入っているはず。
その中で一番新しいフォルダ(「数字」が一番大きいフォルダ)の中に、最終の復元ポイントのファイルが入っている。
...と、その前に、既存のレジストリファイルのバックアップをする。
Dドライブの「WINDOWSsystem32config」というフォルダを開いて、その中にある5個のレジストリファイルのファイル名を変更してやる。
ファイル名は以下のとおりだが、もともと拡張子のついていないファイルなのでお尻に「.bak」という拡張子を追加してやること。
- default
- SAM
- SECURITY
- software
- system
バックアップ(?)が完了したら、以下の作業を行なう。
- Dドライブの「System Volume Information」フォルダを開く
- (新しい方の)「_restore{…」フォルダを開く
- 一番新しい「RP」+「数字」という名前のフォルダを開く
そうすると、「snapshot」というフォルダがあるので、そのフォルダを開く。
「snapshot」フォルダの中にある以下の5個のファイルをクリップボードにコピーする。
- _REGISTRY_MACHINE_SAM
- _REGISTRY_MACHINE_SECURITY
- _REGISTRY_MACHINE_SOFTWARE
- _REGISTRY_MACHINE_SYSTEM
- _REGISTRY_USER_DEFAULT
で、クリップボードにコピーした5個のファイルを、Dドライブの「WINDOWSsystem32config」フォルダにペーストする。
次に、コピーした5個のファイル名を以下のように変更する。
- _REGISTRY_MACHINE_SAM → SAM
- _REGISTRY_MACHINE_SECURITY → SECURITY
- _REGISTRY_MACHINE_SOFTWARE → SOFTWARE
- _REGISTRY_MACHINE_SYSTEM → SYSTEM
- _REGISTRY_USER_DEFAULT → DEFAULT
最後に、Dドライブを切断し、ぶっ壊れたパソコンにハードディスクを取り付けて再起動してみる。
きちんとWindowsが起動できたらめでたしめでたしだが、このエラーはハードディスクの障害が原因で発生する場合も多々あるようなので、念のためハードディスクのバックアップも取っておくのが吉。
ということで、俺様的修復方法をずらずらと書いてみたが、このやり方が一番コスト/手間が掛からないと思う。
メーカーサポートの言いなりでリカバリ/再インストールをする前に、是非とも試して欲しいと思った俺様でしたとさ。