次の方法で共有


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

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

概要

この記事は、Windows の正常な起動を妨げる問題の診断と修正に役立ちます。 スタートアップ プロセスのさまざまなフェーズ (PreBoot、ブート マネージャー、OS ローダー、またはカーネル) と、影響を受けるフェーズを特定する方法について説明します。 各フェーズについて、この記事では、スタートアップの問題を特定して修正するために使用できるツールの詳細なガイダンスと概要を示します。

注:

この記事は、サポート エージェントおよび 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. PreBoot プロセス: PC のファームウェアが電源オンセルフ テスト (POST) を開始し、ファームウェア設定を読み込みます。 このプロセスは、ファームウェアが有効なシステム ディスクを検出すると終了します。

    • BIOS ベースのコンピューターがこのフェーズに入ると、ファームウェアはマスター ブート レコード (MBR) をメモリに読み込み、Windows ブート マネージャーを起動します。
    • UEFI ベースのコンピューターがこのフェーズに入ると、ファームウェアは Windows ブート マネージャー EFI アプリケーションを読み込んで起動します。
  2. Windows ブート マネージャー: Windows ブート マネージャーは、Windows ブート パーティションで Windows ローダー (Winload.exe) を見つけて起動します。

  3. Windows オペレーティング システム ローダー: 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 フェーズでスタックしている場合は、ハードウェアの問題が発生している可能性があります。

ブート ローダー フェーズの問題のトラブルシューティング

画面が点滅しているカーソルを除いて黒い場合、または次のいずれかのエラー コードを受け取った場合、起動プロセスはブート ローダー フェーズで停止します。

  • Boot Configuration Data (BCD) missing or corrupted
  • Boot file or MBR corrupted
  • Operating system Missing
  • Boot sector missing or corrupted
  • Bootmgr missing or corrupted
  • Unable to boot due to system hive missing or corrupted

この問題をトラブルシューティングするには、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 -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 バージョン 1803 以降では、Windows はシステム レジストリを RegBack フォルダーに自動的にバックアップしなくなりました。 この変更は設計上のものであり、Windows の全体的なディスク 占有領域のサイズを減らすことを目的としています。 レジストリ ハイブが破損しているシステムを回復するには、システム復元ポイントを使用することをお勧めします。 詳細については、「システム レジストリが、Windows 10 バージョン 1803 以降の RegBack フォルダーにバックアップされなくなりました」を参照してください。

カーネル フェーズでの問題のトラブルシューティング

カーネル フェーズでシステムがスタックすると、複数の症状が発生したり、複数のエラー メッセージが表示されたりします。 その例としては以下のものがあります (以下に限定されるものではありません)。

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

方法 1: コンピューターをセーフ モードまたは最後の既知の正常な構成で起動する

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

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

    • [スタート] メニューに移動し、[管理ツール>Event Viewer] を選択します。
    • Microsoft 管理コンソール (MMC) でイベント ビューアー スナップインを起動します。
  2. コンソール ツリーで、[イベント ビューアー] を展開し、表示するログを選択します。 たとえば、[システム ログ] または [アプリケーション ログ] を選択します。

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

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

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

方法 2: "クリーン スタート" を実行する

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

問題があるサービスを無効にし、[通常スタートアップ] を選択してコンピューターをもう一度起動します。

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

コンピューターがドライバー署名の無効化モードで起動する場合は、ドライバー署名の強制を無効にするモードでコンピューターを起動します。 次に、次の記事の手順に従って、ドライバー署名の適用が必要なドライバーまたはファイルを特定します。 ドライバー署名の不足によるブートの問題のトラブルシューティング (x64)

注:

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

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

一般的な問題と解決策

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

Important

このセクション、メソッド、またはタスクには、レジストリを変更する方法を示す手順が含まれています。 ただし、レジストリを誤って変更した場合、重大な問題が発生する可能性があります。 したがって、これらの手順を注意深く守ってください。 保護のために、レジストリを変更する前にレジストリをバックアップして、問題が発生した場合にレジストリを復元できるようにします。 レジストリのバックアップと復元方法の詳細は、「Windows のレジストリのバックアップおよび復元の方法」を参照してください。

この 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 更新プログラムのインストール後に発生する問題

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
    
  4. コンピューターを起動してみます。

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

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

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

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

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

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

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

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

  8. システム ハイブを読み込み、 テストに名前を付けます。

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