バグ チェック 0x7B: INACCESSIBLE_BOOT_DEVICE

INACCESSIBLE_BOOT_DEVICE バグ チェックには、0x0000007B の値があります。 このバグ チェックは、起動時に Microsoft Windows オペレーティング システムがシステム パーティションへのアクセスを失っていることを示しています。

重要

この記事は、プログラマー向けです。 コンピューターを使用中に、ブルー スクリーン エラーが表示された場合は、「ブルー スクリーン エラーのトラブルシューティング」を参照してください。

パラメーター

パラメーター 説明
1 UNICODE_STRING 構造体のアドレス、またはマウントできなかったデバイス オブジェクトのアドレス
2 0
3 0
4 0

パラメーター 1 の意味を確認するには、それが指すデータを確認します。 このアドレスの最初の単語 (USHORT) が偶数の場合、パラメーター 1 は Unicode 文字列の先頭です。 このアドレスの最初の単語 (USHORT) が 0x3 の場合、パラメーター 1 はデバイス オブジェクトの最初のフィールド (Type) です。

  • このパラメーターがデバイス オブジェクトを指している場合、ブート デバイスを読み取るはずのファイル システムは初期化に失敗したか、ブート デバイス上のデータをファイル システム構造として認識しませんでした。 この状況では、指定されたデバイス オブジェクトはマウントできなかったオブジェクトです。

  • このパラメーターが Unicode 文字列を指している場合は、このアドレスの最初の 8 バイトを読み取る必要があります。 これらのバイトは、UNICODE_STRING 構造体を形成します。 次の例は、構造体の定義方法を示しています。

    USHORT Length;
    USHORT MaximumLength;
    PWSTR Buffer;
    

    [長さ] フィールドは、文字列の実際の長さを示します。 [バッファ] フィールドは、文字列の先頭を指します。 バッファー は常に少なくとも 0x80000000 です。

    この文字列には、ブートが試行されたデバイスの Advanced RISC Computing (ARC) 仕様名が含まれています。 ARC 名は、ARC 環境内のデバイスを識別するための一般的な方法です。

原因

INACCESSIBLE_BOOT_DEVICE バグ チェックは、多くの場合、ブート デバイスの障害が原因で発生します。 I/O システムの初期化中に、ブート デバイス ドライバーがブート デバイス (通常はハード ディスク) の初期化に失敗した可能性があります。

ブート デバイス上のデータが認識されないため、ファイル システムの初期化に失敗した可能性があります。 システム パーティションの再パーティション、BIOS 構成の変更、ディスク コントローラーのインストールも、このエラーの原因になることがあります。

このエラーは、ディスク ハードウェアに互換性がないために発生する可能性があります。 システムの初期設定でエラーが発生した場合、システムがサポートされていないディスク・コントローラーにインストールされている可能性があります。 一部のディスク コントローラーでは、Windows の起動時に他のドライバーが存在する必要があります。

このエラーは、ストレージ ハードウェアが失敗し、Windows からの要求に応答できない場合に発生する可能性があります。

解決方法

このエラーは、システムの起動時に常に発生します。 このエラーは、デバッガー接続が確立される前に頻繁に発生するため、デバッグが困難になる可能性があります。 OS はアクセスできない可能性があり、エラー ログは空である可能性があります。OS は、これらのサブシステムを起動するのに十分な範囲で起動されていないためです。 次のセクションでは、Windows を起動できない場合と Windows を起動できる場合の両方の状況の解決策について説明します。

Windows を起動できない場合

この停止コードを受け取り、Windows が OS に起動しない場合は、次の解決策を試してください。

  • 最近のハードウェア変更を元に戻します。

    最近追加されたハードウェア (特にハード ディスク ドライブまたはコントローラー) を削除して、エラーが解決されたかどうかを確認します。 問題のあるハードウェアがハード ディスク ドライブの場合、ディスク ファームウェアのバージョンが Windows オペレーティング システムのバージョンと互換性がない可能性があります。 更新プログラムについては、製造元にお問い合わせください。 別のハードウェアを削除し、エラーが解決された場合、IRQ または I/O ポートの競合が存在する可能性があります。 製造元の指示に従って新しいデバイスを再構成します。

    UEFI でコントローラー モードをレガシから AHCI に変更するなど、最近 UEFI (BIOS) 設定を変更した場合は、それらの変更を元に戻します。 詳細については、「高度なホスト コントローラー インターフェイス」を参照してください。

  • ストレージ デバイスの互換性を確認します。

    すべてのハード ディスク ドライバー、ハード ディスク コントローラー、およびその他のストレージ アダプターが、インストールされているバージョンの Windows と互換性があることを確認します。 たとえば、Windows 10 の仕様で互換性に関する情報を取得できます。

  • UEFI (BIOS) とファームウェアを更新します。

    システム UEFI (BIOS) とストレージ コントローラー ファームウェアの更新プログラムの可用性を確認します。

  • Windows メディア作成ツールを使用して、起動可能な USB サム ドライブまたは DVD を作成します。

    別のコンピューターのメディア作成ツールを使用して、起動可能な USB サム ドライブまたは DVD を作成します。 このツールを使用して、セットアップ ファイルを選択するか、USB から起動して、クリーン インストールを実行します。

    詳細については、「Windows 10 を取得する」を参照してください。

    機能を無効にするか、UEFI (BIOS) メニューでブート シーケンスの優先順位を変更して、HDD ではなく USB、FDD (FlashDiskDrive) または DVD から起動することが必要になる場合があります。

    一般的なブート メニュー キー

    ブート メニュー キーは製造元によって異なります。 これらのキーは一般的に使用されます。 PC のドキュメントで、使用されているブート キーを確認してください。

    よく使用されるブート メニュー キーは次のとおりです。
    F12
    ESC
    F9
    F10
    F8

    一般的な UEFI (BIOS) セットアップ キー

    UEFI (BIOS) セットアップ キーは製造元によって異なります。 これらのキーは一般的に使用されます。 PC のドキュメントで、使用されているセットアップ キーを確認してください。

    よく使用される UEFI (BIOS) セットアップ キーは次のとおりです。
    ESC
    DEL
    F2

Windows を起動できる場合

この停止コードが表示され、Windows が起動する場合は、次の解決策を試してください。

  • セーフ モードで起動し、通常どおりに起動します。

    セーフ モードで起動すると、ストレージ システムにもう一度アクセスできるストレージ ドライバーのコア セットが読み込まれます。 セーフ モードで起動するには、次の手順を実行します。

    1. [セキュリティ][更新とセキュリティ] を選択します。
    2. [回復]>[高度なスタートアップ] の順に選択してメンテナンス モードで起動します。
    3. 結果のメニューで、[トラブルシューティング]>[高度なオプション]>[スタートアップ設定]>[再起動] の順に選択します。
    4. Windows が再起動して [スタートアップ設定] 画面が表示されたら、オプション 4、5、または 6 を選択してセーフ モードで起動します。

    Windows が セーフ モードで読み込まれたら、PC を再起動して、適切なストレージ ドライバーが読み込まれ、ストレージ デバイスが認識されているかどうかを確認します。

    セーフ モードは、起動時にファンクション キー (F8 キーなど) を押すことで使用できる場合もあります。 特定のスタートアップ オプションについては、システムの製造元からの情報を参照してください。

  • スキャン ディスク ユーティリティを使用して、ファイル システム エラーがないことを確認します。 スキャンするドライブを長押し (または右クリック) し、[プロパティ]>[ツール]>[今すぐ確認] の順に選択します。

  • ウイルス検出プログラムを実行します。 ウイルスは、Windows 用にフォーマットされたあらゆる種類のハード ディスクに感染する可能性があり、その結果、ディスクが破損すると、システム バグ チェック コードが生成される可能性があります。 ウイルス検出プログラムによって感染のマスター ブート レコードがチェックされていることを確認します。

  • IDE デバイスの場合は、オンボード IDE ポートをプライマリとしてのみ定義します。 また、適切な [マスター/下位/スタンドアロン] 設定のために各 IDE デバイスをチェックします。 ハード ディスクを除くすべての IDE デバイスを削除してみてください。 最後に、イベント ビューアーのシステム ログを確認して、エラーの原因となっているデバイスまたはドライバーを特定するのに役立つ可能性があるその他のエラー メッセージを特定します。

  • ハード ドライブに十分な空き領域があることを確認します。 オペレーティング システムと一部のアプリケーションでは、スワップ ファイルを作成したりその他の関数を実行したりするための十分な空き領域が必要です。 システム構成に基づいて、正確な要件は異なりますが、10% から 15% の空き領域を確保しておくことをお勧めします。

  • デバイス マネージャーで、感嘆符 (!) が付いているデバイスがないかどうかを確認します。 ドライバーのプロパティに表示されるイベント ログで、障害が発生しているドライバーを確認します。 関連するドライバーを更新してみます。

  • イベント ビューアーのシステム ログを確認して、エラーの原因となっているデバイスまたはドライバーを特定するのに役立つ可能性があるその他のエラー メッセージを確認します。 詳しくは、イベント ビューアーの使用に関するページをご覧ください。 ブルー スクリーンと同じ時間枠で発生したシステム ログで、重大なエラーを探します。

  • システムの製造元から提供されているハードウェア診断を実行してみることができます。

  • システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復します。 システム ファイル チェッカーは、Windows システム ファイルの破損をスキャンし、破損したファイルを復元できる Windows のユーティリティです。 次のコマンドを使用して、システム ファイル チェッカー ツール (SFC.exe) を実行します。

    SFC /scannow
    

    詳細については、「システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復する」を参照してください。

  • 自動修復後、[オプションの選択] 画面で、[トラブルシューティング]>[高度なオプション]>[システムの復元] の順に選択します。 このオプションでは、PC をシステム復元ポイントと呼ばれる以前の時点に戻します。 復元ポイントは、新しいアプリ、ドライバー、更新プログラムをインストールするとき、または復元ポイントを手動で作成するときに生成されます。 エラーが発生する前の復元ポイントを選択します。

  • カーネル デバッガーを使用してシステムにアタッチし、備考で説明されているようにエラーをさらに分析します。

解説

ストレージ システムの構成を調査します。
原因を絞り込むには、Windows がインストールされているブート デバイスについて可能な限り把握しておくと便利です。 たとえば、次の項目を調査できます。

  • SATA や IDE など、ブート デバイスが接続されているコントローラーの種類を確認します。 システムを起動できる場合は、デバイス マネージャーを使用して、コントローラーとディスク ドライバーのプロパティを調べることができます。 関連付けられているドライバー ファイルとエラー イベントを確認できます。

  • SSD や DVD など、ブート デバイスがオンになっているのと同じコントローラーに他のデバイスが接続されているかどうかを示します。

  • ドライブで使用されるファイル システム (通常は NTFS) に注意してください。

Windows デバッガー

カーネル デバッガーを使用してこのエラーを分析するには、デバッガーで lm (List loaded modules) コマンドを実行して、特定のドライバーを分離するために読み込まれているモジュールを確認します。 次のドライバーが読み込まれたことを確認します。

disk

           
0: kd> lm m disk
Browse full module list
start             end                 module name
fffff806`bd0b0000 fffff806`bd0cd000   disk       (deferred)

partmgr

0: kd> lm m partmgr
Browse full module list
start             end                 module name
fffff806`bc5a0000 fffff806`bc5c1000   partmgr    (deferred)

NTFS

0: kd> lm m ntfs
Browse full module list
start             end                 module name
fffff806`bd3f0000 fffff806`bd607000   NTFS       (deferred)

classpnp

0: kd> lm m classpnp
Browse full module list
start             end                 module name
fffff806`bd0d0000 fffff806`bd131000   CLASSPNP   (deferred)

pci

0: kd> lm m pci
Browse full module list
start             end                 module name
fffff806`bc440000 fffff806`bc494000   pci        (deferred) 

コントローラー ドライバーが読み込まれていることを確認します。 たとえば、SATA RAID コントローラーの場合、ドライバーは iaStorA.Sys ドライバーであるか、EhStorClass ドライバーである可能性があります。

0: kd> lm m EhStorClass
Browse full module list
start             end                 module name
fffff806`bcbb0000 fffff806`bcbcb000   EhStorClass   (deferred) 

storahci などの「stor」を含むドライバーが存在する可能性があります。

0: kd> lm m stor*
Browse full module list
start             end                 module name
fffff806`bcb00000 fffff806`bcb23000   storahci   (deferred)             
fffff806`bcb30000 fffff806`bcbaa000   storport   (deferred)             
fffff806`c0770000 fffff806`c0788000   storqosflt   (deferred)

デバッガーがアタッチされた状態で起動します。

デバッガーが接続された状態でターゲット システムを起動できる場合は、バグ チェックが発生したときに !devnode 0 1 を発行します。 不足しているデバイス、起動しないデバイスまたは起動しない理由を確認できます。

原因の 1 つは、プラグ アンド プレイがブート デバイスにリソースを割り当てることができない可能性が挙げあれます。 この制限は、サービスのエントリを見つけることで確認できます。 状態フラグに DNF_INSUFFICIENT_RESOURCES が含まれている場合、または DNF_STARTED または DNF_ENUMERATED が含まれていない場合は、問題が発生している可能性があります。 デバイス ツリー全体をダンプするのではなく、時間を節約するために !devnode 0 1 storahci を試行します。

0: kd> !devnode 0 1 storahci
Dumping IopRootDeviceNode (= 0xffffb9053d94d850)
DevNode 0xffffb9053e8dea50 for PDO 0xffffb9053e8da060
  InstancePath is "PCI\VEN_8086&DEV_3B22&SUBSYS_304A103C&REV_05\3&21436425&0&FA"
  ServiceName is "storahci"
  State = DeviceNodeStarted (0x308)
  Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0xffffb9053e88db30 for PDO 0xffffb9053e890060
    InstancePath is "SCSI\Disk&Ven_&Prod_ST3500418AS\4&23d99fa2&0&000000"
    ServiceName is "disk"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0xffffb9053e88d850 for PDO 0xffffb9053e88e060
    InstancePath is "SCSI\CdRom&Ven_hp&Prod_DVD-RAM_GH60L\4&23d99fa2&0&010000"
    ServiceName is "cdrom"
    TargetDeviceNotify List - f 0xffffdf0ae9bbb0e0  b 0xffffdf0aea874710
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)