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

Virtual Agent を試してみてください 。 一般的な Windows ブートの問題をすばやく特定して修正するのに役立ちます。

注:

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

適用対象: 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. PreBoot: PC のファームウェアは、電源オンセルフ テスト (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 Recovery Environment (Windows RE)」を参照してください。

  1. インストールされているバージョンの Windows のインストール メディアにシステムを起動します。 詳細については、「 Windows 用のインストール メディアの作成」を参照してください。
  2. [Windows のインストール] 画面で、[次の>修復] を選択します。
  3. [ オプションの選択] 画面で 、[ トラブルシューティング] を選択します。
  4. [ 詳細オプション ] 画面で、[ スタートアップ修復] を選択します。
  5. スタートアップ修復後、 シャットダウンを選択し、PC をオンにして、Windows が正常に起動できるかどうかを確認します。

スタートアップ修復ツールは、スタートアップの問題と行われた修復を理解するのに役立つログ ファイルを生成します。 ログ ファイルは、次の場所にあります。

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

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

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

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

BOOTREC /FIXMBR

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

BOOTREC /FIXBOOT

注:

一緒にFixmbr実行するとBOOTREC、マスター ブート コードのみが上書きされます。 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 で問題が解決しない場合は、ドライブ C から System Reserved パーティションに Bootmgr ファイルを置き換えます。 この置換を行うには、次の手順に従います。

  1. コマンド プロンプトで、ディレクトリを System Reserved パーティションに変更します。

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

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

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

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

  6. bootmgr ファイルをコピーし、それを System Reserved パーティションに貼り付けます。

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

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

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

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

注:

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

カーネル フェーズ

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

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

シナリオ 1: コンピューターをセーフ モードまたは最終既知の良好な構成で起動する

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

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

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

    • Microsoft Management Console (MMC) でイベント ビューアー スナップインを起動します。

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

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

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

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

クリーン ブート

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

障害が発生したサービスを無効にし、 通常のスタートアップを選択してコンピューターを再度起動します。

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

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

注:

コンピューターがドメイン コントローラーの場合は、Directory Services 復元モード (DSRM) を試します。

このメソッドは、Stop エラー "0xC00002E1" または "0xC00002E2" が発生した場合の重要な手順です。

警告

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

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

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

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

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

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

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

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class

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

  6. 同様の項目をレジストリ全体で検索します。 必要に応じて処理し、レジストリ ハイブをアンロードします。

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

トラブルシューティングの詳細については、「 Stop error 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. システム ハイブを読み込み、テストという名前を付 けます

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

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TrustedInstaller

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

  11. Hive をアンロードします。

  12. コンピューターを起動してみてください。

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

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

Stop エラーの詳細については、Stop エラーまたはブルー スクリーン エラーの問題に関する高度なトラブルシューティングに関するページを参照してください。

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

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

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

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

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

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

      詳細については、「 SYSTEM File Checker (SFC) を使用した問題の修正」を参照してください。

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

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

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

注:

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