※本記事はマイクロソフト社員によって公開されております。
こんにちは、日本マイクロソフトの Windows サポートチームです。
前回に続いて今回は OS が起動しなくなる事象の対処方法について紹介させていただきます。なお、前回も記載させていただいておりますが対処方法を実施しても必ず Windows OS が起動できるようになる保証はないことをご注意下さい。最も確実な方法はバックアップから復旧させる方法になります。
OS が起動しなくなる問題が発生した場合の対処方法について – 概要
https://jpwinsup.github.io/blog/2021/05/07/Performance/NoBoot/NoBoot-OutLine/
実際に OS が起動しなくなる事象が発生してしまった場合、いつも使用している Windows OS は起動できないため Windows 回復環境から操作を行い各種の対処策を実施します。対処策はコマンド プロンプトよりコマンドにて実行するため、事前に Windows 回復環境からコマンド プロンプトを起動しておく必要があります。万が一 Windows 回復環境が起動していない場合は、インストール メディアから起動します。お手元にインストール メディアが無い場合は、以下のサイトを参考にインストールメディアの準備をお願いいたします。
Windows 10 のダウンロード
https://www.microsoft.com/ja-jp/software-download/windows10
また、Azure 環境の仮想マシンで発生した場合には、Azure 観点での対処方法なども公開しております。以下につきましてもご参照いただければと存じます。
Azure 上の Windows OS が起動しない場合の情報まとめ (2021 年 5 月 14 日更新版)
https://jpaztech.github.io/blog/vm/windows-noboot-summary/
コマンド プロンプト起動手順
— Windows 回復環境の場合 ——————–
- 現象が発生した後、回復画面が表示されます。
- [オプションの選択] で [トラブルシューティング] を選択します。
- トラブルシューティングの画面で [詳細オプション] を選択します。
- 詳細オプション画面で [コマンド プロンプト] を選択します。
- [コマンド プロンプト] で管理者のアカウントを選択します。
- 管理者のパスワードを入力します。
- コマンドプロンプト(cmd.exe)が表示されます。
— インストール メディアの場合 ——————–
- Windows 8 / Windows Server 2012 以降の OS メディアから起動します。
- [Windows セットアップ] の画面で言語関連の設定を指定し、[次へ] をクリックします。
- ウィンドウ内左下に表示される [コンピューターを修復する] をクリックします。
- [オプションの選択] で [トラブルシューティング] をクリックします。
- [詳細オプション] で [コマンド プロンプト] をクリックします。
また、コマンドでは Windows フォルダーが存在するドライブを指定する場合があるため、以下の手順にて Windows フォルダーが存在するドライブを特定しておく必要があります。
Windows フォルダーが存在するドライブの確認手順
- 起動したコマンド プロンプト上で notepad コマンドを実行し、メモ帳を起動します。
- メモ帳で [ファイル] – [開く…] を実行します。
- [開く] ダイアログで左側の [コンピューター] をクリックし、ドライブ一覧を表示させます。
- X: 以外の各ドライブの内容を確認し、Windows フォルダーが存在するドライブを確認します。
• 多くの場合は C もしくは D ドライブに Windows フォルダーが確認できると思います。下図では D:ドライブに Windows フォルダーが存在していることが確認できます。
• 万が一、Windows フォルダーが存在するドライブを確認できない場合は、ディスクが認識できない・読み取ることができない可能性が考えられます。ハードウェア障害もしくか暗号化ソフトウェアに起因する可能性も考えられるため、PC の製造元様へご確認下さい。
これで対処策を実行するための環境が整いました。この後は以下のいずれかもしくは複数の対処策を実施し、復旧確認を行います。
[1] スタートアップ修復
[2] Boot 構成情報の修正
[3] SFC (System File Checker)
[4] regback を用いたレジストリ復旧
[5] 更新プログラムのアンインストール
[6] ファイル システムの破損チェック
どの対処方法を実施するかは実際の表示内容やエラー情報を参考に行うため一概には言えませんが、一般的にご確認いただく流れとして前回ご紹介しました NoBoot 画面を参考に言うと、大まかに以下のような流れで実施します。
• 全パターン共通
[1] スタートアップ修復
[5] 更新プログラムのアンインストール ※ 更新プログラムのインストール直後に NoBoot になった場合
[6] ファイル システムの破損チェック
• パターン 1 の画面が表示される
[2] Boot 構成情報の修正 ※ Bootmgr / Operating System が見つからない趣旨のメッセージが表示される場合
※ ハードウェア故障と思われるメッセージが表示される場合は PC の製造元様までお問合せ下さい
• パターン 2 の画面が表示される
[2] Boot 構成情報の修正 ※ Boot 構成情報 (BCD : Boot Configuration Data) に問題がある趣旨のメッセージが表示される場合
[3] SFC (System File Checker)
[4] regback を用いたレジストリ復旧
• パターン 3 の画面が表示される
[3] SFC (System File Checker)
[4] regback を用いたレジストリ復旧
[1] スタートアップ修復
[概要]
システム ファイルの欠落や損傷など、Windows の正常な起動を妨げる可能性のある特定の問題を修復します。
[手順]
- コマンド プロンプトより以下のコマンドを実行します。コマンド実行後は、”PC を診断中” と表示されます。
X:\Sources\Recovery\StartRep.exe
< 補足 >
[オプションの選択] 画面から [トラブル シューティング] -> [詳細オプション] -> [スタートアップ修復] でも実行可能です。
- スタートアップ修復完了後、[シャットダウン] を選択してコンピューターの電源を切り、再度電源を入れ、Windows OS が起動することを確認します。
スタートアップ修復のログは以下に記録され、修復状況を確認することが可能です。
%WINDIR%\System32\LogFiles\Srt\SrtTrail.txt
[2] Boot 構成情報の修正
[概要]
MBR (master boot record) やブートセクター、Boot 構成情報 (BCD:Boot Configuration Data) の破損を検知し修復します。
[手順]
- コマンド プロンプトより以下のコマンドを実行します。
Bootrec /RebuildBcd
- コマンド完了後、コマンド プロンプトを終了し、[続行] を選択します。Windows OS が起動することを確認します。
参考情報:
“Bootmgr is missing Press Ctrl+Alt+Del to restart” error when you start Windows
https://support.microsoft.com/en-us/help/2622803/bootmgr-is-missing-press-ctrl-alt-del-to-restart-error-when-you-start
Use Bootrec.exe in the Windows RE to troubleshoot startup issues
https://support.microsoft.com/en-us/help/927392/use-bootrec-exe-in-the-windows-re-to-troubleshoot-startup-issues
[3] SFC (System File Checker)
[概要]
SFC は System File の整合性をスキャンし、破損が見つかった場合は %WinDir%\WinSxS フォルダー配下の情報をコピーして修復します。
[手順]
※ Windows フォルダーが存在するドライブを D: とします。
- コマンド プロンプトより以下のコマンドを実行します。
set windows_tracing_logfile=D:\sfc.log
sfc /scannow /offbootdir=D:\ /offwindir=D:\Windows
- コマンド完了後、コマンド プロンプトを終了し、[続行] を選択します。Windows OS が起動することを確認します。
SFC のログは以下に記録され、修復状況を確認することが可能です。
< Windows フォルダーが存在するドライブ>:\sfc.log
参考情報:
Use the System File Checker tool to repair missing or corrupted system files
https://support.microsoft.com/en-us/help/929833/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system
[4] regback を用いたレジストリ復旧
[概要]
Windows OS では 10 日おきにレジストリ情報 (レジストリ ハイブ) を以下のフォルダーにバックアップします。このため、正常に OS が起動していたレジストリのバックアップデータにて現在のレジストリ情報を上書きいただくことで、OS が起動できる可能性があります。
%SystemRoot%\System32\config\RegBack
[注意事項]
SYSTEM、Software レジストリ ハイブ全体を置き換えることになるため、レジストリ のバックアップが採取された以降に変更された情報(各種インストール情報や設定変更など)は破棄されます。
また、システム レジストリは、Windows 10 Version 1803 より自動バックアップされなくなりました。
参考情報:
The system registry is no longer backed up to the RegBack folder starting in Windows 10 version 1803
https://docs.microsoft.com/en-US/troubleshoot/windows-client/deployment/system-registry-no-backed-up-regback-folder
[手順]
※ Windows 回復環境起動時、Windows フォルダーが存在するドライブを D: とします。
- コマンド プロンプトより以下のコマンドを実行し、現在のレジストリハイブのコピーを作ります。
copy d:\Windows\System32\config\SYSTEM d:\Windows\System32\config\system.bak
copy d:\Windows\System32\config\SOFTWARE d:\Windows\System32\config\software.bak
- コマンド プロンプトより以下のコマンドを実行し、レジストリ ハイブを Regback フォルダーから復元します。
copy d:\Windows\System32\config\RegBack\SYSTEM d:\Windows\System32\config
copy d:\Windows\System32\config\RegBack\SOFTWARE d:\Windows\System32\config
- コマンド完了後、コマンド プロンプトを終了し、[続行] を選択します。Windows OS が起動することを確認します。
[5] 更新プログラムのアンインストール
[概要]
何らかの理由により更新プログラムが期待通りインストールされていない場合、直近でインストールした更新プログラムをアンインストールすることで復旧できる場合があります。
[手順]
※ Windows 回復環境起動時、Windows フォルダーが存在するドライブを D: とします。
コマンド プロンプトより以下のコマンドを実行し、更新プログラムのパッケージの一覧を表示します。
dism /image:D:\ /get-packages
各パッケージ情報が以下の書式で表示されます。パッケージ ID の KBxxxxxxx の部分で、直近にインストールした更新プログラムを特定します。またインストール時刻も参考にすることが可能です。
– [表示例] ————-
パッケージ ID : Package_for_KB4343669~31bf3856ad364e35~amd64~~17134.165.1.1
状態 : インストール済み
リリースの種類 : Update
インストール時刻 : 2018/07/12 22:23
————————
以下のコマンドを実行してパッケージを削除します。2 で確認したパッケージ ID 情報を PackageName オプションの引数として渡します。例えば、下記では KB4343669 をアン インストールしています。
dism /image:D:\ /remove-package /PackageName:Package_for_KB4343669~31bf3856ad364e35~amd64~~17134.165.1.1
< 補足 >
更新プログラム適用中に問題が発生していた場合、パッケージ情報の “状態” が “インストールの保留中” と表示される場合があります。この場合は以下のコマンドを実行してロールバックすることで保留状態を解除します。
Dism /Image:D:\ /Cleanup-Image /RevertPendingActions
コマンド完了後、コマンド プロンプトを終了し、[続行] を選択します。Windows OS が起動することを確認します。
参考情報:
DISM オペレーティング システム パッケージ (.cab または .msu) サービスのコマンド ライン オプション
https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn898551(v=vs.85).aspx
[6] ファイル システムの破損チェック
[概要]
ファイル システムが破損していることにより、OS のブートに必要なファイルを正常に読み込めていない可能性があります。そのため、chkdsk を実行して破損のチェックを行い、破損が見つかった場合には、chkdsk に /f オプションを付与して修復します。
[手順]
※ Windows 回復環境起動時、Windows フォルダーが存在するドライブを D: とします。
- コマンド プロンプトより以下のコマンドを実行し、ファイル システムの破損をチェックします。
chkdsk D:
- 問題が見つかった場合には、コマンド プロンプトより以下のコマンドを実行し、ファイル システムを修復します。
chkdsk D: /f
参考情報:
Chkdsk の動作について
https://social.technet.microsoft.com/Forums/windows/ja-JP/fcbe1747-6ee0-4614-bd53-b0bd94753efc/chkdsk-12398212052031612395123881235612390?forum=Wcsupportja
上記対処策を実施しても復旧しない場合は、Windows OS の起動に必要なドライバ ファイルの破損や 3rd Party 製ドライバーの影響を受けて発生している可能性があります。切り分けとして [スタートアップ設定] 画面から以下の両方をお試しいただき、Windows OS が起動できるかをご確認下さい。なお、Windows OS 標準の設定から設定変更されている環境では [スタートアップ設定] 画面を表示できない場合があります。
[A] セーフモード
[B] ドライバ署名の強制を無効
[c] 3rd Party 製ドライバーを無効
スタートアップ設定
- [オプションの選択] で [トラブルシューティング] を選択します。
- [トラブルシューティング] の画面で [詳細オプション] を選択します。
- [詳細オプション] の画面で [スタートアップ 設定] を選択します。
- [再起動] ボタンをクリックします
- [スタートアップ設定] 画面から、任意のボタンをクリックします。
ボタンと項目の対応はお使いの環境によって異なる場合があります。例えば、以下の画面が表示された場合は下記ボタンを押下します。
F4 キー:セーフモード起動
F7 キー:ドライバ署名の強制を無効して起動
参考情報:
Windows のスタートアップ設定 (セーフ モードなど)
https://support.microsoft.com/ja-jp/help/17076/windows-8-startup-settings-safe-mode
[A] セーフ モード
ドライバーとサービスの最小のセットで Windows をセーフ モードで起動して、問題をトラブルシューティングすることができます。PC をセーフ モードで起動して問題が再現しなければ、既定の設定および基本的なデバイス ドライバーとサービスを、可能性のある原因から除外できます。直近でインストールしたソフトウェアがある場合は、そのソフトウェアをアンインストールします。
[B] ドライバー署名の強制を無効にする
不適切な署名が含まれているドライバーのインストールを許可します。NoBoot 時の切り分けとして本設定の無効化により起動できる場合は、ドライバの署名情報が正しく取得できていない可能性が高く、その多くの場合はカタログ ファイルの破損によって引き起こされます。
Windows OS 起動時に各ドライバから参照されるカタログ ファイルは以下の場所に保存されています。そのため、同様の構成の環境がある場合は正常な PC から上記フォルダをコピーいただくことで復旧できる可能性もあります。
<Windows フォルダーが存在するドライブ>:\Windows\System32\CatRoot{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
[C] 3rd Party 製ドライバーを無効
3rd Party 製のフィルタードライバーによって起動が妨げられている可能性があります。そのため、OS 起動時にフィルタードライバーが動作しないようにレジストリを編集します。弊社過去事例におきましては、ウイルス対策ソフトのフィルタードライバーの影響を受けて発生した事例がありますので、ウイルス対策ソフトを導入されている場合には、以下の手順にて停止することをご検討ください。どのようなドライバーが
動作しているのかは各製品のベンダ様へご確認いただけますと幸いです。
[手順]
回復オプションより、[トラブルシューティング] - [コマンド プロンプト] を起動します。
コマンド プロンプトが起動しましたら、D:\Windows\System32\config の “SYSTEM” ファイル (拡張子なし) を copy コマンドでコピーして、バックアップを取っておきます。(例、SYSTEM.bak)
※ OS が格納されているドライブ (Window フォルダーが含まれるドライブ)がDドライブの例となります。適宜変更してください。
コマンドプロンプト上で regedit コマンドを実行し、[レジストリ エディター] を起動します。
[レジストリ エディター] の左ペインで、”HKEY_LOCAL_MACHINE” を選択した状態で、[ファイル] メニュー - [ハイブの読み込み] を選択します。
OS が格納されているドライブの中から、以下のファイルを選択し、[開く] をクリックします。
D:\Windows\System32\config フォルダー内 の “SYSTEM” ファイル (拡張子なし)
[ハイブの読み込み] にて、キー名 に “temp” と入力し [OK] をクリックします。
HKEY_LOCAL_MACHINE\temp 配下の Select キーの Current 値を確認します。
次のレジストリ キーまで移動します。
HKEY_LOCAL_MACHINE\tempSYSTEM\ControlSet00X (X は Current の値)\Services
Services 配下から起動を無効にするサービスおよびフィルター ドライバーを見つけます。
サービス名のキー直下に存在する Start 項目の値を 4 に変更します。作業が終わりましたら、”HKEY_LOCAL_MACHINE\temp” を選択した状態で、[ファイル] メニュー - [ハイブのアンロード] を選択してください。ハイブのアンロードの確認メッセージが表示されますので、[はい] をクリックします。
参考情報:
Windows でカーネル モード フィルター ドライバーを一時的に非アクティブ化する方法
https://docs.microsoft.com/ja-JP/troubleshoot/windows-server/performance/deactivate-kernel-mode-filter-driver
これまでの対応策でも復旧できない場合は、時間をかけて更に詳細な調査が必要となります。
なお、優先事項がデータの抽出であれば、(ディスクにアクセスできる場合は) コマンド プロンプトからコピー関連のコマンドをお使いいただくことで、データを異なるストレージ領域にコピーが可能です。
参考情報:
copy
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/copy
xcopy
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/xcopy
また、PC のリフレッシュ機能をご利用いただくことでもユーザー データをある程度残したまま Windows OS を復旧させることも可能です。更新プログラムや各種ソフトウェアの再インストールは必要となる場合がありますが、Windows OS をクリーン インストールするよりは少ないコストで Windows OS の再インストールが実現可能です。
• 万が一に備え、重要なデータについては必ずバックアップをご採取ください。
• 各 PC 製造元様のアプリケーションの保持状況などは PC 製造元様までご確認下さい。
• 企業様によっては専用の Windows OS イメージをご利用いただいている場合もございますため、IT 管理者様にご確認下さい。
• 実行手順や保持されるデータなど、詳細につきましては下記サイトをご参考下さい。
PC のリカバリー機能のしくみ
https://msdn.microsoft.com/ja-jp/library/windows/hardware/mt210509(v=vs.85).aspx
ストレージがネットワーク上に配置されることが多くなった今日、ローカルで必要としているデータは意外と少ない場合もあります。また現在の Windows Update は累積更新のパッケージがあるため更新プログラムの適用もスムーズではないかと思います。現在お使いの環境が復旧できるのが理想ではありますが、復旧が困難な場合は環境を再構築した方が結果的に少ないコストで状況を復旧できる場合もありますため場合によっては有効な対処方法にもなり得ます。
以上、2 回に渡り OS が起動しなくなる事象の概要および対処方法についてご紹介させていただきましたが、いかがでしたでしょうか。本ブログが少しでも皆様のお役に立てますと幸いです。