Windowsの詳細ブートオプションの一つである「前回正常起動時の構成(Last Known Good Configuration)」は、前回正常起動したときのシステム設定を使用してWindowsを起動するオプションです。Windowsの正常起動を阻む何らかの理由を排除して、正常起動できる可能性があります。最近、このオプションを目にしたことはありますか?
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Windows Serverには「前回起動時の構成」は引き続き存在しており、もちろん利用可能です。Windowsが正常に起動しない場合は「詳細ブートオプション」を開き、「前回起動時の構成(詳細)」を選択して起動することで、問題を回避して正常起動できる場合があります(画面1)。
以下の画面2は、「Windows 10」の最新バージョンにある同等のブートオプションメニューですが、「前回起動時の構成(詳細)」に相当するものはありません。最新の「Windows 11」も同様です。もっと言えば、「Windows 8」からこのようになっています。
実は、高速スタートアップが導入され、電源投入直後の[F8]キーによる「詳細ブートオプション」へのアクセスが廃止され、モダンなブートメニュー(青い背景のメニュー)が導入されたWindows 8で、「前回起動時の構成」オプションは既定で無効化されたのです(後述するように有効化できます)。以下のドキュメントにあるように、「Windows 7」までは確かに「前回起動時の構成」オプションは存在し、利用可能でした。
Windowsはドライバやサービスの構成を含むシステム設定の多くを、レジストリの「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet」キーに格納しています。このキーは、物理的には「C:\Windows\System32\Config」ディレクトリにあるレジストリハイブのファイル「SYSTEM」から読み込まれたものです。
ただし、レジストリハイブ「SYSTEM」に「CurrentControlSet」というキーが存在するわけではありません。これは通常起動したWindowsの場合であり、過去に「前回正常起動時の構成」オプションで起動したことがない場合は、「ControlSet001」が「CurrentControlSet」になります。
「ControlSet001」と「CurrentControlSet」の実体は同じで、“パスの別名”といった方が分かりやすいかもしれません。「CurrentControlSet」の配下に対する変更は、「ControlSet001」を変更します。逆も同様です。例えば、「レジストリエディター」で「CurrentControlSet\Policies\demo」キーを作成してみてください。表示を更新すれば、「ControlSet001¥Policies\demo」キーが出現するはずです。
以下の画面3の左側は通常起動した「Windows Server 2022」の「CurrentControlSet」周辺のキー、右側はWindows 10 バージョン21H1の「CurrentControlSet」周辺のキーを示しています。通常起動した場合、前述したように「CurrentControlSet」は「ControlSet001」そのものです。
「前回正常起動時の構成」オプションを利用可能なWindows Server 2022には、「ControlSet001」だけでなく、「ControlSet002」もあります。
正常起動すると、これまでの「ControlSet001」は「ControlSet002」になり、正常起動した一世代前のセットということになります。つまり、「前回正常起動時の構成」オプションによるWindowsの起動は、一世代前のセットである「ControlSet002」を「CurrentControlSet」として起動するというわけです。
それが正常起動すると、「ControlSet002」が既定となり、一世代前のセットは「ControlSet003」になります。なお、正常起動しなかった「ControlSet001」は使用されなくなります。現在のセット、既定のセット、失敗したセット、「前回正常起動時の構成」のセットは、それぞれ「HKEY_LOCAL_MACHINE\SYSTEM\Select」キーの「Current」「Default」「Failed」「LastKnownGood」レジストリ値に保持されています。
最近のWindowsは、「Windows回復環境」(Windows Recovery Environment、WinRE)に、システムの復元や更新プログラムのアンインストール、PCのリセット、バックアップのリストアなど、さまざまな復旧オプションを用意しているため、「前回正常起動時の構成」オプションの出る幕はあまりないかもしれません。しかし、この機能を復活しておくと、何かトラブルが発生した場合に復旧オプションが1つ増えることになります。
「前回正常起動時の構成」を有効化するには、以下のレジストリ値を作成します(画面4)。
コマンドプロンプトを管理者として開き、次の2行のコマンドラインを実行すれば、簡単に設定できます。
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager" /v "BackupCount" /t REG_DWORD /d 1 /f REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood" /v "Enabled" /t REG_DWORD /d 1 /f
なお、現在サポートされているバージョンのWindows/Windows Serverでは、「設定」の「セキュリティと更新」にある「回復」から再起動を開始し(または[Shift]キーを押しながらの再起動操作)、「オプションの選択」→「トラブルシューティング」→「詳細オプション」→「スタートアップ設定」とページを移動して「再起動」をクリックすることで、「スタートアップ設定」またはWindows Serverの「詳細ブートオプション」を開くことができます。
しかし、その操作は正常に起動された状態からの操作で、その状態は次に起動するときの「前回正常起動時の構成」になります。そのため、本来の目的で「前回正常起動時の構成」でブートしたいのなら、起動失敗を繰り替えした後の自動修復から「スタートアップ設定」または「詳細ブートオプション」に入る必要があります。マルチブートシステムなら起動後の「オペレーティングシステムの選択」メニューが表示されているタイムアウトまでの間に、「既定の起動設定やその他のオプションの変更」から入ることもできます。
岩手県花巻市在住。Microsoft MVP 2009 to 2022(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.