共用方式為


Bug 檢查0x7B:INACCESSIBLE_BOOT_DEVICE

INACCESSIBLE_BOOT_DEVICE bug 檢查的值為 0x0000007B。 此 bug 檢查表明 Microsoft Windows作系統在啟動期間失去了對系統分區的訪問許可權。

這很重要

本文適用於程式設計人員。 如果您是在使用計算機時收到藍色螢幕錯誤碼的客戶,請參閱 針對藍螢幕錯誤進行疑難解答

參數

參數 說明
1 UNICODE_STRING 結構的位址,或無法載入的設備對象的位址
2 0
3 0
4 0

要確定 Parameter 1 的含義,請查看它指向的數據。 如果此位址的第一個單詞 (USHORT) 為偶數,則參數 1 是 Unicode 字串的開頭。 如果此位址的第一個字 (USHORT) 為 0x3,則參數 1 是設備物件的第一個字段 (Type)。

  • 如果此參數指向設備物件,則本應讀取引導設備的檔案系統無法初始化或無法將引導設備上的數據識別為檔系統結構。 在這種情況下,指定的設備對像是無法載入的物件。

  • 如果此參數指向 Unicode 字串,則必須讀取此位址處的前 8 個字節。 這些位元組構成 UNICODE_STRING結構。 以下範例顯示如何定義結構:

    USHORT Length;
    USHORT MaximumLength;
    PWSTR Buffer;
    

    Length 欄位提供字串的實際長度。 Buffer 欄位指向字串的開頭。 Buffer 始終至少為 0x80000000。

    該字串包含嘗試引導的設備的 Advanced RISC Computing (ARC) 規範名稱。 ARC 名稱是在ARC環境中標識設備的通用方法。

原因

INACCESSIBLE_BOOT_DEVICE bug 檢查通常是由於啟動設備故障而發生的。 在 I/O 系統初始化期間,引導設備驅動程式可能無法初始化引導設備(通常是硬碟)。

檔系統初始化可能已失敗,因為它無法識別引導設備上的資料。 重新分區系統分區、更改 BIOS 配置或安裝磁碟控制器也可能導致此錯誤。

此錯誤可能是由於磁碟硬體不相容而發生的。 如果在系統的初始設置時發生錯誤,則系統可能已安裝在不受支援的磁碟控制器上。 某些磁碟控制器要求在 Windows 啟動時存在其他驅動程式。

當存儲硬體發生故障,並且無法回應來自 Windows 的請求時,可能會發生此錯誤。

解決辦法

此錯誤始終在系統啟動時發生。 此錯誤經常在建立調試器連接之前發生,因此調試可能很困難。 作系統可能無法訪問,並且錯誤日誌可能為空,因為作系統的啟動距離不足以啟動這些子系統。 以下部分介紹了這兩種情況的解決方案,如果您無法啟動 Windows 並且能夠啟動 Windows。

如果您無法啟動 Windows

如果您收到此停止代碼,但 Windows 未向前啟動到作系統,請嘗試以下解決方法:

  • 還原任何最近的硬體更改。

    刪除任何最近添加的硬體,尤其是硬碟驅動器或控制器,以查看錯誤是否已解決。 如果有問題的硬體是硬碟驅動器,則磁碟韌體版本可能與您的 Windows作系統版本不相容。 請與製造商聯繫以獲取更新。 如果刪除了另一個硬體並且錯誤已解決,則可能存在 IRQ 或 I/O 連接埠衝突。 根據製造商的說明重新配置新設備。

    如果您最近對 UEFI (BIOS) 設置進行了更改,例如在 UEFI 中將控制器模式從舊版更改為 AHCI,請還原這些更改。 有關更多資訊,請參閱 高級主機控制器介面

  • 檢查存儲設備相容性。

    確認所有硬碟驅動程式、硬碟控制器和任何其他儲存適配器都與已安裝的 Windows 版本相容。 例如,您可以在 Windows 10 規範中獲取有關相容性的資訊。

  • 更新 UEFI (BIOS) 和韌體。

    檢查系統 UEFI (BIOS) 和儲存控制器韌體韌體的更新可用性。

  • 使用 Windows Media Creation Tool 建立可啟動的 USB 拇指驅動器或 DVD。

    使用另一台電腦上的媒體創建工具創建可啟動的 USB 拇指驅動器或 DVD。 使用此工具通過選擇安裝檔或從 USB 引導來執行全新安裝。

    有關詳細資訊,請參閱 獲取 Windows 10

    您可能需要禁用功能,或更改 UEFI (BIOS) 功能表中的引導順序優先順序,以便從 USB、FDD (FlashDiskDrive) 或 DVD 而不是 HDD 引導。

    常用啟動功能表鍵

    啟動功能表鍵因製造商而異。 這些鍵是常用的。 查看 PC 文件以確定使用的啟動金鑰。

    常用的啟動功能表鍵有:
    F12
    電調
    F9
    F10 系列
    F8

    常用 UEFI (BIOS) 設定鍵

    UEFI (BIOS) 設定金鑰因製造商而異。 這些鍵是常用的。 查看 PC 文件以確定使用的設定金鑰。

    常用的 UEFI (BIOS) 安裝鍵包括:
    電調
    戴爾
    F2 系列

如果您能夠啟動 Windows

如果您收到此停止代碼並且 Windows 確實啟動,請嘗試以下解決方法:

  • 引導至安全模式,然後正常引導。

    引導至安全模式會載入一組核心儲存驅動程式,這些驅動程式可以允許再次存取記憶體系統。 完成以下步驟以啟動到安全模式:

    1. Settings (設置) 中,選擇 Update and Security(更新和安全)。
    2. 選擇 Recovery > Advanced 啟動 以啟動到維護模式。
    3. 在結果功能表中,選擇 Troubleshoot > Advanced Options > Startup Settings > Restart
    4. Windows 重新啟動至 [ 啟動設定 ] 畫面之後,選取選項 4、5 或 6 以開機至安全模式。

    以安全模式載入 Windows 後,重新啟動您的 PC 以查看是否載入了正確的儲存驅動程式以及是否識別了儲存設備。

    安全模式也可以通過在啟動時按下功能鍵(例如 F8)來使用。 有關特定的啟動選項,請參閱系統製造商提供的資訊。

  • 使用掃描磁碟公用程式來確認沒有文件系統錯誤。 選擇並按住(或右鍵按兩下)要掃描的驅動器,然後選擇 Properties > Tools > 立即檢查

  • 執行病毒偵測程式。 病毒可以感染為 Windows 格式化的所有類型的硬碟,由此產生的磁碟損壞可能會生成系統錯誤檢查代碼。 確保病毒檢測程式檢查主引導記錄中是否有感染。

  • 對於 IDE 設備,將板載 IDE 埠定義為 Primary only (僅主埠)。 還要檢查每個 IDE 裝置是否具有正確的 主/從/獨立 設置。 嘗試刪除除硬碟之外的所有IDE設備。 最後,檢查事件查看器中的系統日誌是否有其他錯誤消息,這些消息可能有助於識別導致錯誤的設備或驅動程式。

  • 確認硬碟上有足夠的可用空間。 操作系統和某些應用程式需要足夠的可用空間來建立交換檔案並執行其他功能。 根據系統設定,確切的需求會有所不同,但最好有 10% 到 15% 的可用空間。

  • 查看 設備管理員 ,查看是否有任何設備標有感嘆號 (!)。 查看驅動程式屬性中顯示的事件日誌,瞭解故障驅動程式。 請嘗試更新相關的驅動程式。

  • 檢查事件查看器中的系統登錄是否有其他錯誤消息,這些消息可能有助於查明導致錯誤的設備或驅動程式。 在與藍色畫面相同的時間範圍內,尋找系統記錄檔中發生的嚴重錯誤。

  • 您可以嘗試執行系統製造商所提供的硬體診斷。

  • 使用系統檔案檢查程式工具來修復遺失或損毀的系統檔案。 系統檔案檢查程式是 Windows 中的公用程式,可讓用戶掃描 Windows 系統檔案中的損毀,並還原損毀的檔案。 使用下列命令來執行系統檔案檢查程式工具 (SFC.exe)。

    SFC /scannow
    

    如需詳細資訊,請參閱 使用系統檔案檢查程式工具來修復遺失或損毀的系統檔案

  • 自動修復后,在 Choose an option (選擇一個選項 ) 螢幕上,選擇 Troubleshoot Advanced options (高級 > 選項 > 故障排除) System Restore(系統還原)。 此選項將您的 PC 傳回到較早的時間點,稱為系統還原點。 當您安裝新應用程式、驅動程式、更新或手動創建還原點時,會生成還原點。 選擇在遇到錯誤之前還原點。

  • 使用內核調試器連接到系統,並進一步分析故障,如備註中所述。

備註

調查存儲系統配置。
要縮小原因範圍,盡可能多地瞭解安裝了 Windows 的啟動設備會很有説明。 例如,您可以調查以下專案:

  • 找出啟動設備連接到的控制器類型,如 SATA 或 IDE。 如果可以引導系統,則可以使用設備管理器檢查控制器和磁碟驅動程序屬性。 您可以看到關聯的驅動程式檔和錯誤事件。

  • 指示其他設備是否連接到啟動設備所在的同一控制器,如 SSD 或 DVD。

  • 請注意驅動器上使用的文件系統,通常為NTFS。

Windows 偵錯工具

要使用內核調試器分析此錯誤,請在調試器中運行 lm (List loaded modules) 命令,以查看載入了哪些模組以嘗試隔離特定驅動程式。 驗證是否已載入以下驅動程式。

磁碟

           
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)

類別 PNP

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) 

可能存在包含 「stor」 的驅動程式,例如 storahci。

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)

在附加了除錯器的情況下啟動。

如果可以在連接除錯器的情況下啟動目標系統,請在發生 bug 檢查時發出 !devnode 0 1 。 您可以看到哪個設備缺少驅動程式或未啟動,並且未啟動的原因可能很明顯。

一個原因可能是 Plug and Play 無法將資源分配給啟動設備。 您可以通過查找服務的條目來驗證此限制。 如果狀態標誌包括 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)