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

注意

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

概要

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

フェーズ ブートプロセス BIOS UEFI
プレ MBR/.PBR (ブートストラップコード) UEFI ファームウェア
両面 Windows ブート マネージャー %SystemDrive%\bootmgr \EFI\Microsoft\Boot\bootmgfw.efi
- Windows OS ローダー %SystemRoot%\system32\winload.exe %SystemRoot%\system32\winload.efi
4d Windows NT OS カーネル %SystemRoot%\system32\ntoskrnl.exe

1. プレブート

PC のファームウェアは、Power On セルフテスト (POST) を開始し、ファームウェア設定を読み込みます。 このプレブートプロセスは、有効なシステムディスクが検出されたときに終了します。 ファームウェアはマスターブートレコード (MBR) を読み取り、Windows ブートマネージャーを起動します。

2. Windows ブートマネージャー

Windows ブートマネージャーによって、windows ブートパーティション上で Windows ローダー (Winload .exe) が検出され、開始されます。

3. Windows オペレーティングシステムローダー

Windows カーネルを起動するために必要な重要なドライバーが読み込まれ、カーネルの実行が開始されます。

4. Windows NT OS カーネル

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

カーネルは、システムセッションを初期化するセッションマネージャープロセス (Sms) に制御を渡し、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 の破損
  • オペレーティングシステムが見つからない
  • ブートセクターが見つからないか壊れています
  • ブートマネージャーが見つからないか壊れている
  • システムハイブが見つからないか破損しているため、起動できない

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

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

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

そのためには、次の手順を実行します。

注意

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

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

  2. [ Windows のインストール] 画面で、[次へ > ] を選択します。

  3. [システム回復オプション] 画面で、 [次 > のコマンドプロンプト] を選びます。

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

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

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

詳細については、「 Stop エラーが発生したか、Windows Vista または windows 7 を起動しようとしたときにコンピューターが応答を停止する」を参照してください。

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

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

BOOTREC /FIXMBR

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

BOOTREC /FIXBOOT

注意

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

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

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

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

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

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

    Bootrec /rebuildbcd
    
  4. 次のいずれかの出力が表示されることがあります。

    Scanning all disks for Windows installations. Please wait, since this may take a while ...
    Successfully scanned Windows installations. Total identified Windows installations: 0
    The operation completed successfully.
    
    Scanning all disks for Windows installations. Please wait, since this may take a while ...
    Successfully scanned Windows installations. Total identified Windows installations: 1
    D:\Windows  
    Add installation to boot list? Yes/No/All:
    

出力に 「windows インストール: 0」と表示された場合は、次のコマンドを実行します。

bcdedit /export c:\bcdbackup

attrib c:\\boot\\bcd -r –s -h

ren c:\\boot\\bcd bcd.old

bootrec /rebuildbcd

このコマンドを実行すると、次の出力が表示されます。

Scanning all disks for Windows installations. Please wait, since this may take a while ...
Successfully scanned Windows installations. Total identified Windows installations: 1
{D}:\Windows
Add installation to boot list? Yes/No/All: Y
  1. システムを再起動してみてください。

方法 4: Bootmgr を置き換える

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

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

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

    attrib -r -s -h
    
  3. Windows (システムドライブ) で同じattribコマンドを実行します。

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

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

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

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

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

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

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

カーネルフェーズ

カーネルフェーズ中にシステムが停止すると、複数の症状が発生したり、複数のエラーメッセージが表示されたりします。 これには、次のようなものがあります。

  • スプラッシュ画面 (Windows ロゴ画面) の後に Stop エラーが表示されます。

  • 特定のエラーコードが表示されます。 たとえば、"0x00000C2"、"0x0000007B"、"アクセス不可能なブートデバイス" などです。 (0x0000007B エラーのトラブルシューティングについては、「エラーコード INACCESSIBLE_BOOT_DEVICE (STOP 0x7B))」を参照してください)。

  • 画面は、"スピンホイール" (ローリングドット) で "システムがビジー状態です" アイコンで止まっています。

  • スプラッシュ画面の後に黒い画面が表示されます。

これらの問題のトラブルシューティングを行うには、次の回復ブートオプションを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)

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

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

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

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

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

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class

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

  6. 類似したアイテムについて、レジストリ全体を検索します。 適切な手順を実行し、レジストリハイブをアンロードします。

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

その他のトラブルシューティング手順については、次の記事を参照してください。

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. 保留中の .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 エラーの根本原因を特定するのに役立ちます。 詳細については、次のサポート技術情報の記事を参照してください。

  • 969028 windows server 2008 および windows Server 2008 R2 でカーネルまたは完全なメモリダンプファイルを生成する方法

Windows 10 または Windows Server 2016 でのページファイルの問題の詳細については、次のサポート技術情報の記事を参照してください。

  • 4133658の長期サービスチャネルでのページファイルの概要と、Windows の半期チャネル

Stop エラーの詳細については、次のサポート技術情報の記事を参照してください。

  • IT 担当者向けの3106831のトラブルシューティング Stop エラーの問題

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

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

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

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

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

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

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

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

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

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