Windows のブート問題に関する高度なトラブルシューティング

仮想エージェント - をお試しください。Windows ブートの一般的な問題をすばやく特定して修正するのに役立つ可能性があります。

注意

この記事は、サポート担当者と IT 担当者による使用を目的としています。 回復オプションに関する一般的な情報については、「Windows 10 の回復オプション」をご覧ください。

要約

Windows ベースのコンピューターで、起動時に問題が発生する理由はいくつか考えられます。 起動の問題をトラブルシューティングするには、まず、次のどのフェーズでコンピューターが停止しているかを判断します。

フェーズ ブート プロセス BIOS UEFI
1 プリブート MBR/PBR (ブートストラップ コード) UEFI ファームウェア
2 Windows ブート マネージャー %SystemDrive%\bootmgr \EFI\Microsoft\Boot\bootmgfw.efi
3 Windows OS ローダー %SystemRoot%\system32\winload.exe %SystemRoot%\system32\winload.efi
4 Windows NT OS カーネル %SystemRoot%\system32\ntoskrnl.exe
  1. プリブート: PC のファームウェアは、Power-On Self Test (POST) を開始し、ファームウェア設定を読み込みます。 このプリブート プロセスは、有効なシステム ディスクが検出されたときに終了します。 ファームウェアがマスター ブート レコード (MBR) を読み取り、Windows ブート マネージャーを起動します。

  2. Windows ブート マネージャー: Windows ブート マネージャーは、Windows ブート パーティションで Windows ローダー (Winload.exe) を見つけて起動します。

  3. Windows オペレーティング システム ローダー: Windows カーネルを起動するために必要な重要なドライバーが読み込まれ、カーネルの実行が開始されます。

  4. Windows NT OS カーネル: カーネルは、システム レジストリ ハイブと、BOOT_START とマークされた他のドライバーをメモリに読み込みます。

    カーネルは、システム セッションを初期化するセッション マネージャー プロセス (Smss.exe) に制御を渡し、BOOT_START とマークされていないデバイスとドライバーを読み込んで起動します。

次に、ブート シーケンスの概要、ディスプレイに表示される内容、シーケンス内のその時点での一般的なブートの問題について説明します。 トラブルシューティングを開始する前に、ブート プロセスの概要と表示状態を理解し、エンゲージメントの開始時に問題が適切に識別されるようにする必要があります。 サムネイルを選択して大きく表示します。

ブート シーケンスのフローチャートの図。

各フェーズでは、トラブルシューティングの方法が異なります。 この記事では、最初の 3 つのフェーズで発生する問題のトラブルシューティング手法について説明します。

注意

コンピューターが回復オプションを繰り返し起動する場合は、コマンド プロンプトで次のコマンドを実行してサイクルを中断します。

Bcdedit /set {default} recoveryenabled no

F8 キーのオプションが機能しない場合は、次のコマンドを実行します。

Bcdedit /set {default} bootmenupolicy legacy

BIOS フェーズ

システムが BIOS フェーズに合格したかどうかを確認するには、次の手順を実行します。

  1. コンピューターに接続されている外部周辺機器がある場合は、それらを取り外します。

  2. 物理コンピューターのハード ディスク ドライブのライトが機能しているかどうかを確認します。 機能していない場合は、起動プロセスが BIOS フェーズで停止していることが示唆れます。

  3. NumLock キーを押して、インジケーター ライトのオンとオフが切り替わるかどうかを確認します。 切り替わらない場合、問題の原因が起動プロセスが BIOS で停止していることが示唆されます。

    BIOS フェーズでシステムが停止している場合は、ハードウェアに問題がある可能性があります。

ブート ローダー フェーズ

黒い画面にカーソルだけが点滅している場合、または次のいずれかのエラー コードが表示される場合は、ブート プロセスがブート ローダー フェーズで停止している状態を示しています。

  • ブート構成データ (BCD) が見つからないか破損している
  • ブート ファイルまたは MBR が破損している
  • オペレーティング システムが見つからない
  • ブート セクターが見つからないか破損している
  • Bootmgr が見つからないか破損している
  • システム ハイブが見つからないか破損しているため起動できない

この問題のトラブルシューティングを行うには、Windows インストール メディアを使用してコンピューターを起動し、Shift + F10 キーを押してコマンド プロンプトを表示し、次のいずれかの方法を使用します。

方法 1: スタートアップ修復ツール

スタートアップ修復ツールは、多くの一般的な問題を自動的に修正します。 また、このツールを使用すると、より複雑なスタートアップの問題をすばやく診断して修復できます。 コンピューターでスタートアップの問題が検出されると、スタートアップ修復ツールが起動します。 ツールが起動すると、診断が実行されます。 これらの診断には、スタートアップ ログ ファイルの分析による問題の原因の特定が含まれます。 スタートアップ修復ツールによって原因が特定されると、ツールは自動的に問題の修正を試みます。

スタートアップ修復ツールを呼び出すこのタスクを実行するには、次の手順に従います。

注意

WinRE を起動するその他の方法については、「Windows 回復環境 (Windows RE)」を参照してください。

  1. インストールされているバージョンの Windows のインストール メディアでシステムを起動します。 詳しくは、「Windows 用のインストール メディアの作成」を参照してください。

  2. [Windows のインストール] 画面で、[次へ] > [コンピューターの修復] の順に選びます。

  3. [オプションの選択] 画面で、[トラブルシューティング] を選択します。

  4. [詳細設定] 画面で、[スタートアップ修復] を選択します。

  5. スタートアップ修復が終了したら、[シャットダウン] を選び、続いて PC の電源を入れて Windows が正常に起動するかどうかを確認します。

スタートアップ修復ツールを使用すると、起動時の問題と修復を理解するのに役立つログ ファイルが生成されます。 ログ ファイルは、次の場所で確認できます。

%windir%\System32\LogFiles\Srt\Srttrail.txt

詳細については、「ブルー スクリーン エラーのトラブルシューティング」をご覧ください。

方法 2: ブート コードを修復する

ブート コードを修復するには、次のコマンドを実行します。

BOOTREC /FIXMBR

ブート セクターを修復するには、次のコマンドを実行します。

BOOTREC /FIXBOOT

注意

BOOTRECFixmbr を同時に実行すると、マスター ブート コードだけが上書きされます。 MBR の破損がパーティション テーブルに影響を与える場合、Fixmbr を実行しても問題が解決しない可能性があります。

方法 3: BCD エラーを修正する

BCD 関連のエラーが表示された場合は、次の手順を実行します。

  1. インストール済みのすべてのシステムをスキャンします。 これを行うには、次のコマンドを実行します:

    Bootrec /ScanOS
    
  2. コンピューターを再起動して、問題が修正されているかどうかを確認します。

  3. 問題が解決しない場合は、次のコマンドを実行します:

    bcdedit /export c:\bcdbackup
    
    attrib c:\boot\bcd -r -s -h
    
    ren c:\boot\bcd bcd.old
    
    bootrec /rebuildbcd
    
  4. システムを再起動します。

方法 4: Bootmgr を置き換える

方法 1、2、3 で問題が解決しない場合は、Bootmgr ファイルを C ドライブからシステム予約されたパーティションに置き換えます。 この置き換えを行うには、次の手順に従います:

  1. コマンド プロンプトで、ディレクトリをシステムで予約済みのパーティションに変更します。

  2. attrib コマンドを実行してファイルを再表示します。

    attrib -r -s -h
    
  3. システム ドライブに移動し、同じコマンドを実行します。

    attrib -r -s -h
    
  4. bootmgr ファイルの名前を bootmgr.old に変更します。

    ren c:\bootmgr bootmgr.old
    
  5. システム ドライブに移動します。

  6. bootmgr ファイルをコピーし、システムで予約済みのパーティションに貼り付けます。

  7. コンピューターを再起動します。

方法 5: システム ハイブを復元する

Windows がシステム レジストリ ハイブをメモリに読み込めない場合は、システム ハイブを復元する必要があります。 この手順を実行するには、Windows RE を使用するか、システム修復ディスク (ERD) を使用して C:\Windows\System32\config\RegBack ディレクトリから C:\Windows\System32\config にファイルをコピーします。

問題が解決しない場合は、システム状態のバックアップを別の場所に復元してから、置き換えるレジストリ ハイブを取得できます。

注意

Windows 10 バージョン 1803 以降では、Windows はシステム レジストリを RegBack フォルダーに自動的にバックアップしなくなりました。この変更は仕様によるものであり、Windows の全体的なディスク使用量を削減することを目的としています。 レジストリ ハイブが破損しているシステムを回復するには、システムの復元ポイントを使用することをお勧めします。 詳細については、「Windows 10 バージョン 1803 以降、システム レジストリは RegBack フォルダーにバックアップされなくなりました」を参照してください。

カーネル フェーズ

システムがカーネル フェーズ中に停止した場合は、複数の現象が発生するか、複数のエラー メッセージが表示されます。 これらのエラー メッセージには、次の例が含まれますが、これらに限定されるものではありません:

これらの問題のトラブルシューティングを行うには、次の回復ブート オプションを一度に 1 つずつ試してください。

シナリオ 1: セーフ モードまたは前回正常起動時の構成でコンピューターを起動する

[詳細ブート オプション] 画面で、セーフ モード、または セーフ モードとネットワークでコンピューターを起動します。 これらのオプションのどちらかが機能する場合は、イベント ビューアーを使用して、起動の問題の原因を特定して診断します。 イベント ログに記録されているイベントを表示するには、次の手順を実行します。

  1. 次のいずれかの方法を使用して、イベント ビューアーを開きます。

    • [スタート] メニューに移動し、[管理ツール][イベント ビューアー] の順に選択します。

    • Microsoft 管理コンソール (MMC) でイベント ビューアー スナップインを開始します。

  2. コンソール ツリーで、[イベント ビューアー] を展開し、表示するログを選択します。 たとえば、[システム ログ] または [アプリケーション ログ] を選択します。

  3. 詳細ウィンドウで、表示するイベントを開きます。

  4. [編集] メニューの [コピー] を選択します。 イベントを貼り付けるプログラムで新しいドキュメントを開きます。 たとえば、Microsoft Word などです。 次に、[貼り付け] を選択します。

  5. 上方向キーまたは下方向キーを使用して、前または次のイベントの説明を表示します。

クリーン ブート

サービスに影響する問題のトラブルシューティングを行うには、システム構成 (msconfig) を使用してクリーン ブートを実行します。 [スタートアップのオプションを選択] を選び、サービスを 1 つずつテストして、問題の原因となっているサービスを特定します。 原因が見つからない場合は、システム サービスを含めて試してください。 ただし、ほとんどの場合、問題のあるサービスはサードパーティです。

エラーが検出されたサービスを無効にし、[通常スタートアップ] を選んでコンピューターを再起動します。

詳しい手順については、「Windows でクリーン ブートを実行する方法」を参照してください。

コンピューターがドライバー署名の無効化モードで起動する場合は、コンピューターを "ドライバー署名の強制を無効にする" モードで起動し、次の記事に記載されている手順に従って、ドライバー署名の強制が必要なドライバーまたはファイルを特定します: 「ドライバー署名がないために発生するブート問題のトラブルシューティング (x64)

注意

コンピューターがドメイン コントローラーの場合は、ディレクトリ サービス復元モード (DSRM) を試してください。

この方法は、STOP エラー "0xC00002E1" または "0xC00002E2" が発生した場合の重要な手順です。

警告

レジストリ エディターなどを使用してレジストリを誤って変更すると、重大な問題が発生する場合があります。 このような問題では、オペレーティング システムの再インストールが必要になることもあります。 Microsoft では、このような問題の解決に関しては保証できません。 レジストリの変更は各自の責任で行ってください。

エラー コード INACCESSIBLE_BOOT_DEVICE (STOP 0x7B)

この STOP エラーのトラブルシューティングを行うには、次の手順に従ってドライバーをフィルター処理します。

  1. システムの ISO ディスクをディスク ドライブに挿入して、Windows 回復環境 (WinRE) に移動します。 ISO は、同じバージョンの Windows またはそれ以降のバージョンである必要があります。

  2. レジストリを開きます。

  3. システム ハイブを読み込んで、test という名前を付けます。

  4. 次のレジストリ サブキーで、Microsoft 以外のドライバーの下位フィルター項目と上位フィルター項目を確認します。

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class

  5. 特定したサードパーティのドライバーごとに、上位または下位のフィルターを選択し、値データを削除します。

  6. レジストリ全体で類似のアイテムを探します。 適切な手順を実行し、レジストリ ハイブをアンロードします。

  7. サーバーを通常モードで再起動します。

その他のトラブルシューティング手順については、「STOP エラー 7B または Inaccessible_Boot_Device の高度なトラブルシューティング」を参照してください。

Windows 更新プログラムのインストール後に発生する問題を解決するには、次の手順を実行して、保留中の更新プログラムを確認します。

  1. WinRE でコマンド プロンプト ウィンドウを開きます。

  2. 次のコマンドを実行します。

    DISM /image:C:\ /get-packages
    
  3. 保留中の更新プログラムがある場合は、次のコマンドを実行してアンインストールします。

    DISM /image:C:\ /remove-package /packagename: name of the package
    
    DISM /Image:C:\ /Cleanup-Image /RevertPendingActions
    

    コンピューターを起動してみます。

コンピューターが起動しない場合は、次の手順を実行します:

  1. WinRE でコマンド プロンプト ウィンドウを開き、メモ帳などのテキスト エディターを起動します。

  2. システム ドライブに移動し、windows\winsxs\pending.xml を探します。

  3. pending.xml ファイルが見つかった場合は、ファイル名を pending.xml.old に変更します。

  4. レジストリを開き、テストとして HKEY_LOCAL_MACHINE にコンポーネント ハイブを読み込みます。

  5. 読み込まれたテスト ハイブを強調表示し、pendingxmlidentifier 値を探します。

  6. pendingxmlidentifier 値が存在する場合は、値を削除します。

  7. テスト ハイブをアンロードします。

  8. システム ハイブを読み込み、test という名前を付けます。

  9. 次のサブキーに移動します。

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TrustedInstaller

  10. 開始値を 1 から 4 に変更します。

  11. ハイブをアンロードします。

  12. コンピューターを起動してみます。

STOP エラーがスタートアップ プロセスの後半で発生した場合、または STOP エラーがまだ生成されている場合は、メモリ ダンプをキャプチャできます。 適切なメモリ ダンプは、STOP エラーの根本原因を特定するのに役立ちます。 詳細については、「カーネル ダンプまたは完全なクラッシュ ダンプを生成する」を参照してください。

Windows 10 または Windows Server 2016 でのページ ファイルの問題の詳細については、「ページ ファイルの概要」を参照してください。

STOP エラーの詳細については、「STOP エラーまたはブルー スクリーン エラーの高度なトラブルシューティング」を参照してください。

ドライバーに関連するエラーがダンプ ファイルに表示される場合があります。 たとえば、windows\system32\drivers\stcvsm.sys が見つからないか破損している場合などです。 この例では、次のガイドラインに従います。

  • ドライバーによって提供される機能を確認します。 ドライバーがサードパーティのブート ドライバーである場合は、その動作を理解していることを確認してください。

  • ドライバーが重要なものではなく、依存関係がない場合は、システム ハイブを読み込み、ドライバーを無効にします。

  • STOP エラーがシステム ファイルの破損を示している場合は、オフライン モードでシステム ファイル チェックを実行します。

    • この操作を実行するには、WinRE を開き、コマンド プロンプトを開き、次のコマンドを実行します。

      SFC /Scannow /OffBootDir=C:\ /OffWinDir=C:\Windows
      

      詳細については、「システム ファイル チェッカー (SFC) を使って問題を修正する」を参照してください。

    • ディスクが破損している場合は、次のチェック ディスク コマンドを実行します。

      chkdsk /f /r
      
  • STOP エラーが一般的なレジストリの破損を示している場合、または新しいドライバーまたはサービスがインストールされたと思われる場合は、次の手順を実行します。

    1. WinRE を起動し、コマンド プロンプト ウィンドウを開きます。
    2. メモ帳などのテキスト エディターを起動します。
    3. C:\Windows\System32\Config\ に移動します。
    4. 名前に .old を追加して、5 つのハイブの名前を変更します。
    5. Regback フォルダーからすべてのハイブをコピーし、Config フォルダーに貼り付け、コンピューターを通常モードで起動します。

注意

Windows 10 バージョン 1803 以降では、Windows はシステム レジストリを RegBack フォルダーに自動的にバックアップしなくなりました。この変更は仕様によるものであり、Windows の全体的なディスク使用量を削減することを目的としています。 レジストリ ハイブが破損しているシステムを回復するには、システムの復元ポイントを使用することをお勧めします。 詳細については、「Windows 10 バージョン 1803 以降、システム レジストリは RegBack フォルダーにバックアップされなくなりました」を参照してください。