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

仮想エージェントを試す - Windows のブートに関する一般的な問題をすばやく特定して修正するのに役立ちます。

注:

この記事は、サポート エージェントおよび IT プロフェッショナルが使用することを前提としています。 回復のオプションに関する一般的な情報をお探しの場合は、「Windows 10 の回復オプション」を参照してください。

適用対象: Windows 10

概要

Windows ベースのコンピューターのブート時に問題が発生する理由はいくつかあります。 ブートに関する問題のトラブルシューティングを行うには、まずコンピューターがスタックするフェーズを以下から見つけます。

段階 ブート プロセス BIOS UEFI
1 プレブート MBR/PBR (ブートストラップ コード) UEFI ファームウェア
2 Windows Boot Manager %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 のファームウェアが電源オンセルフ テスト (POST) を開始し、ファームウェア設定を読み込みます。 このプロセスは、有効なシステム ディスクが検出されると終了します。 ファームウェアはマスター ブート レコード (MBR) を読み取り、Windows Boot Manager を起動します。

  2. Windows Boot Manager: Windows Boot Manager は、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 回復環境を使用するか、緊急修復ディスク (ERD) を使用して、C:\Windows\System32\config\RegBack ディレクトリから C:\Windows\System32\config にファイルをコピーします。

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

注:

Windows 10 Version 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」が発生した場合の重要な手順です。

警告

レジストリ エディタや他の方法を使用してレジストリを変更する際、適切に変更しないと重大な問題を引き起こす可能性があります。 場合によっては、オペレーティング システムの再インストールが必要になります。 マイクロソフトは、このような問題の解決に関して、一切責任を負わないものとします。 レジストリの変更はユーザー自身の責任において行ってください。

エラー コード 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
      

      詳細については、「Using system file checker (SFC) to fix issues」を参照してください。

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

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

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

注:

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