Windows TIPS
System Environment
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

Windows 2000が起動不能になったときには

―― [前回正常起動時の構成]を利用する ――

デジタルアドバンテージ
2001/05/15

 今まで何の問題もなく使えていたWindows 2000システムに新しいデバイスを追加したら、起動しなくなってしまった。そんな経験のある読者は少なくないだろう。原因は追加したハードウェア自体にあるのかもしれないし、ハードウェアの追加によって新たにWindows 2000システムに追加されたデバイス・ドライバにあるのかもしれない。しかしこのとき、ユーザーがまず望むのは、追加したデバイスを有効にできなくてもよいから、以前の正常なWindows 2000システムを取り戻すことだ。システム起動後の問題、例えばアプリケーションの問題なら、それを運用で回避することも十分可能だが、こうしたシステムの起動に関連するトラブルでは、それが許されないから厄介である。最悪の場合は、ハードディスクの内容をフォーマットして、Windows 2000システムを再インストールする必要があるかもしれない。

 しかしそのような「最悪のシナリオ」に一足飛びに行く前に、Windows 2000には、このような場合でもシステムを正常起動させるいくつかの方法が用意されている。このうちWindows 2000の初心者ユーザーでも試すことができる最も手軽な方法は、セーフ・モードから[前回正常起動時の構成]を選択してシステムを再起動してみることだ。

レジストリ内に記録された複数のコントロール・セット

 具体的な手順を説明する前に、この機能の背景を理解しておこう。Windows 2000を起動すると、システム構成などに応じて必要なドライバがロードされ、各種サービスが起動されて、ログオン・プロントが表示される。これら、Windows 2000 OSを起動するために必要なドライバやサービスなど一連の情報は、レジストリのHKEY_LOCAL_MACHINE\SYSTEMキーのサブ・キーとして記録されている。これらは「コントロール・セット」と呼ばれる。こうしてレジストリ内に記録されるコントロール・セットは1つではなく、万一に備えていくつかのバックアップが記録されている。以下は、レジストリ・エディタを起動して、HKEY_LOCAL_MACHINE\SYSTEMキーの内容を表示したところである。画面にある[ControlSet001]や[ControlSet003]、[ControlSet004]がそれぞれコントロール・セットだ。この例では、3つのコントロール・セットが記録されているが、システム設定の変更回数などによって、さらに多くのコントロール・セットがレジストリに記録されることもある。逆にコントロール・セットは、最低でも2つ記録されるようになっている。

レジストリ・エディタでHKEY_LOCAL_MACHINE\SYSTEMキーのサブ・キーを表示したところ
Windows 2000システムの起動時にロードされるデバイス・ドライバ、サービスなどの一連の情報は「コントロール・セット」と呼ばれ、レジストリ内に記録されている。万一のトラブル時に備えて、レジストリには複数のコントロール・セットが記録されている。
  このコンピュータのレジストリに記録されているコントロール・セット。このようにレジストリには、複数のコントロール・セットが記録されている。
  現在のコントロール・セットが記録されているキー。コントロール・パネルを使ってシステム構成などを変更すると、このCurrentControlSetキーの値が変更される。
  現在のコントロール・セット、次回の起動時に使用されるコントロール・セット、最後にログオンに成功した時点でのコントロール・セットなどを識別するサブ・キーが含まれる。この画面では[Select]サブ・キーを選択し、右のペインに値を表示させている。
  現在のコントロール・セットを識別するエントリ。この例では、のControlSet004が対象であることを示している。
  次回のWindows 2000の起動時に使用されるコントロール・セットを識別する。この例では、現在のコントロール・セットと同じControlSet004を識別する値が記録されている。
  ユーザーが最後に[前回正常起動時の構成]を指定してコンピュータを起動したときに、の「Default」として識別されていたコントロール・セットを識別する。この例ではControlSet003となっている。
  最後にログオンに成功した段階でのコントロール・セットをバックアップした(コピーした)別のコントロール・セットを識別する。この例ではControlSet001となっている。

 画面からも分かるとおり、レジストリ中に記録された複数のコントロール・セットがどのように使用されるのかは、同じくHKEY_LOCAL_MACHINE\SYSTEM\Selectの各エントリに記録されている。例えばエントリの値が「1」なら、「HKEY_LOCAL_MACHINE\SYSTEM\Select\ControlSet001」を識別し、値が2なら「ControlSet002」を識別するといった具合になる。

サブ・キー 内容
Current 現在のコントロール・セット、すなわちCurrentControlSetとして現在使用中のコントロール・セットを識別する。システムが正常に起動されると、この値で識別されるコントロール・セットがCurrentControlSetとなる。以後、システムの稼働中にコントロール・パネルやレジストリ・エディタなどで加えられた修正は、このCurrentControlSetに反映される
Default Windows 2000の次回の起動時に使用されるコントロール・セットを識別する。ここには、前回コンピュータをシャットダウンしたときに使用されていたコントロール・セットが保存されている。通常起動では、ここで識別されるコントロール・セットが使用され、システムが起動されることになる
Failed システムが起動不能になったときなど、ユーザーが[前回正常起動時の構成]を指定してコンピュータを起動したときに、「Default」として識別されていたコントロール・セットを識別する。つまり通常は、何らかの障害によって起動に失敗したコントロール・セットになる
LastKnownGood 最後にログオンに成功した段階でのコントロール・セットを別のコントロール・セットとしてバックアップ(コピー)したコントロール・セットを識別する。つまり、コントロール・セットの内容は、正常起動した最後のコントロール・セットと同じになる
HKEY_LOCAL_MACHINE\SYSTEM\Selectサブ・キーのエントリと意味

操作手順と起動のシナリオ

 少々込み入っていて分かりにくいので、ここで具体的な例を想定して、各コントロール・セットがどのように機能するのかを見ると同時に、今回の主題である[前回正常起動時の構成]機能の使い方について説明しよう。

 例えば今、Windows 2000システムが正常に起動され、ログオンした状態にあるとしよう(直前のシャットダウンも正常終了したとする)。この段階では、コントロール・セットは次のようになっているはずだ。

コントロール・セット 状態
Current 現在稼働しているシステムのコントロール・セット
Default 直前にシャットダウンしたときに使用されていたコントロール・セット。直前のシャットダウンが成功しているので、この例ではCurrentのコントロール・セットと同じ
Failed 通常起動なので([前回正常起動時の構成]を選択して起動したわけではないので)、対象となるコントロール・セットはなし(値は0)
LastKnownGood ログオンに成功したときのコントロール・セットを別のコントロール・セットとしてコピーしたもの。内容自体はCurrentのコントロール・セットと同じ
システムが正常に起動した状態での各コントロール・セットの内容

 ここで、何らかの新しいハードウェア・デバイスを追加して、デバイス・ドライバを組み込んだとしよう。新しいデバイスの追加により、システムの再起動が必要になったとする。ここでシステムをシャットダウンすると、コントロール・セットは次のようになる。

コントロール・セット 状態
Current 不定(システムは稼働中でないため)
Default 新しいデバイスの追加情報が反映され、シャットダウン処理時に保存されたコントロール・セット。次回の起動時に使用されるコントロール・セットを識別する
Failed 不定
LastKnownGood 前回のログオンに成功したときのコントロール・セットを別のコントロール・セットとしてコピーしたもの。つまりデバイスの追加情報を含まないコントロール・セットを識別する
デバイスを追加し、システムをシャットダウンした段階での各コントロール・セットの内容

 システムを通常の方法で再起動すると、「Default」で識別されるコントロール・セットが使用される。表中に示したとおり、このコントロール・セットには、直前に追加したデバイス情報が記録されている。しかし、ここで追加したデバイスやデバイス・ドライバに何らかの問題があり、起動途中でハングアップしてしまったとしよう。直前まで正常に利用できていたWindows 2000システムが、新しいデバイスの追加によって起動不能になったのだから、これがハングアップの原因である可能性が極めて高い。原因を究明したいところだが、何はなくとも、システムが起動しなければ、頼みの[デバイス マネージャ]も使えない。

 こんなときには、[前回正常起動時の構成]を選択してシステムを起動してみよう。これにはまず、本体のリセット・ボタンを押し、BIOSの初期化などが完了した後、Windows 2000の起動メニューが表示されたときに、[F8]キーを押す。すると次のような[Windows 2000拡張オプションメニュー]が表示される。

Windows 2000拡張オプションメニュー
Windows 2000の起動時、起動メニューが表示されたときに[F8]キーを押すと、この拡張オプションメニューが表示される。ここでは各種セーフ・モードでの起動が選択できるほか、今回の話題である[前回正常起動時の構成]を選択してシステムを起動することが可能だ。
  デバイスを追加する以前のコントロール・セットを使用してシステムを起動するには、カーソル移動キーを使ってこの項目を反転表示させ、[Enter]キーを押す。

 この[Windows 2000拡張オプションメニュー]では、各種セーフ・モード(起動デバイスを制限してシステム起動を試みるモード)を選択したり、ブート・ログの記録などを指定したりできる。今回の目的である、デバイス追加以前のコントロール・セットでシステムを起動するには、ここで[前回正常起動時の構成]を選択する。このオプションを選択してシステムを起動し、起動に成功してログオンにも成功したとすると、コントロール・セットは次のようになる。

コントロール・セット 状態
Current 直前に[LastKnownGood]のコントロール・セットとして識別されていたコントロール・セットが現在のコントロール・セットとして指定される。つまり、デバイスが追加される以前の、最後にログオンに成功した段階でのコントロール・セットが使われてシステムが起動される
Default 不定(この値はシステムのシャットダウン時に記録されるため)
Failed 直前に[Default]として識別されていたコントロール・セット。つまり、デバイスが追加され、起動不能になったコントロール・セット
LastKnownGood 上のCurrentで使用されているコントロール・セットをコピーした別のコントロール・セット。内容はCurrentのそれと同じ
拡張オプションメニューから[前回正常起動時の構成]を選択してシステムを起動し、ログオンに成功した段階でのコントロール・セットの内容

 こうして、デバイスを追加する以前のコントロール・セットを使ってシステムを再起動できるというわけだ。Windows 2000の起動では、デフォルトの起動(Defaultコントロール・セットを使用して起動)と、[前回正常起動時の構成]を選択して起動(LastKnownGoodコントロール・セットを使用して起動)のいずれかを選択できると言い換えることもできる。

ただし万能ではない

 今回ご紹介したような、デバイスの追加によって起動不能に陥ったという典型的なケースのほか、起動に不可欠なデバイスのドライバを何らかの理由で無効にしてしまったなどの場合には、この方法で再起動できる可能性が高い。ただし、しくみを考えれば自明だが、この場合、追加したデバイスの情報だけでなく、CurrentControlSetに記録された他のレジストリ情報もすべて失われ、[前回正常起動時の構成]に戻ることになる。

 一方、この方法をもってしても、コントロール・セット以外の問題、例えばハードウェア自身が原因になっているトラブルや、デバイス・ドライバ・ファイル自体が破壊されている場合などは再起動には成功しない。

 とはいえ、システムが起動不能に陥ったら、慌ててWindows 2000の再インストールを検討する前に、これを試してみる価値はある。

 なお、この[前回正常起動時の構成]オプションを始め、Windows 2000の各種トラブルシューティングについては、リソースキットに詳しく解説されている。幸運なことに、これについて解説した『Windows 2000 Serverリソースキット2 オペレーションガイド』の「14章 トラブルシューティングの基本方針」については、全ドキュメントがマイクロソフトのTechNet Onlineで公開されている。興味のある方は参照されたい(TechNet OnlineのWindows 2000リソースキット・サンプルのインデックス・ページ)。End of Article

  関連リンク
  TechNet OnlineのWindows 2000リソースキット・サンプルのインデックス・ページ(マイクロソフト)
     
この記事と関連性の高い別のWindows TIPS
デバイスドライバを強制的に変更する方法
接続されていないデバイスの情報を表示させる
マルチブート環境で、デフォルトで起動されるOSを変更する方法
起動時に自動実行される不要なプログラムを「見つける」方法
Windows Update適用後の自動再起動を抑制する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」
 

TechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH