修復:Windows 上的 BSOD 錯誤 0x0000007B (INACCESSABLE_BOOT_DEVICE)

Jacki

錯誤0x0000007B(無法訪問的啟動設備)計算機啟動時表示 Windows 無法訪問啟動驅動器,因為缺少所需的驅動程序或磁盤已損壞。

管理員可能會遇到0x0000007B以下情況會出錯

  • 當您將 Windows 從備份恢復到另一台物理計算機或 Hyper-V、VMware 或 VirtualBox 虛擬機(或在裸機恢復方案中恢復到其他硬件)時;
  • 在 P2V 或 V2V 遷移期間;
  • 將 Windows 移動(克隆)到新的硬盤或計算機後;
  • 如果您使用 Windows 映像遷移物理機(例如,使用 disk2vhd)並從該 VHD 映像部署新虛擬機;
  • 將 BIOS 中的 SATA 控制器模式從 AHCI 切換為 IDE/RAID 或反之亦然(在這種情況下,只需打開 BIOS 設置並恢復原始 SATA 設置即可);
  • 更換主板和/或硬盤控制器時;
  • BIOS/UEFI 固件更新或設置更改後。

最常見的是,我在使用 VMware vCenter Converter 將運行 Windows Server 2008 R2 或 Windows 7 的物理計算機轉換為虛擬機後遇到錯誤 0x7b。轉換完成後,Windows 將無法在新虛擬機上啟動,並且屏幕上將出現帶有停止代碼的 BSOD(藍屏死機):

STOP: 0x0000007B (0xFFFFF880009A9928, 0xFFFFFFFFC0000034, 0x0000000000000000, 0x0000000000000000).

本例中的INAACCESSABLE_BOOT_DEVICE錯誤是由於新服務器(計算機或虛擬機)的硬盤控制器與原始硬件不同而導致的。例如,大多數虛擬機管理程序默認使用 SCSI 或 SAS 控制器來連接虛擬硬盤,而 Windows 中默認禁用該控制器。 lsi_sas.sys 驅動程序已安裝,但其運行的服務被禁用。因此,操作系統將無法加載所需的控制器驅動程序,Windows 將停止啟動並出現 BSOD。

在調試模式下,您可以看到 Windows 啟動停止在 CLASSPNP.SYS 驅動程序加載階段。

要修復 0x0000007B 錯誤,您需要從任何 Windows 安裝介質或啟動磁盤(例如 MsDaRT)啟動。如果您已從安裝介質啟動計算機,則需要按Shift + F10在安裝嚮導的第一個屏幕上(然後選擇語言和鍵盤佈局)。將出現命令提示符窗口,您需要運行以下命令:

Regedit.exe

導航至HKEY_LOCAL_MACHINE註冊表配置單元並選擇文件->負載高度我在註冊表編輯器窗口中。選擇WindowsSystem32configSYSTEM本地服務器驅動器上的文件(不要將其與 WinPE 驅動器混淆)。該文件存儲 Windows 註冊表的系統部分。

這些步驟會將您的系統註冊表配置單元從硬盤驅動器安裝到註冊表編輯器中。輸入新註冊表配置單元的臨時名稱(例如,使用名稱 local_hkey)。

前往HKEY_LOCAL_MACHINElocal_hkeyControlSet001services您已安裝的配置單元中的註冊表項。

找到這些註冊表項:

建議閱讀:如何修復 Windows 中的 0x0000007E 和 0x00000050 BSOD 錯誤

  • 頂上;
  • 理解;
  • LSI_SAS。

找到名為 REG_DWORD 的參數開始並將其更改為0(0x0000000000) 在每個鍵中。

筆記。 Start=0 值表示該服務(以及相應的驅動程序)將在 Windows 啟動時加載。 Start=3 的值表示應手動啟動該服務。

如果您在發生此錯誤之前已將 SATA 控制器模式設置為 AHCI,則還應在 msahci 部分中設置 Start = 0。

要將更改保存到磁盤上的本地註冊表文件中,請選擇註冊表項 HKEY_LOCAL_MACHINElocal_hkey 並單擊卸載配置單元從菜單中。

現在您可以重新啟動服務器。 Windows 應正常啟動。它將自動搜索並安裝新磁盤控制器的驅動程序。

如果進行這些更改後,您的 Windows 仍然無法啟動,並出現相同的 INACCESSABLE_BOOT_DEVICE 錯誤,則意味著您正在使用某種其他類型的磁盤控制器。

嘗試改變的值開始中的參數HKEY_LOCAL_MACHINElocal_hkeyControlSet001services密鑰根據下表。

Windows 服務名稱 VMWare 或 Hype-V 虛擬機 使用本機 SATA 適配器運行 Windows x64 的物理 PC 帶 RAID 控制器的物理 PC
阿利德 3 3 3
阿姆迪德 3 3 3
頂部 0 0 0
西米德 3 3 3
亞斯托夫 3 3 3
理解 0 3 3
姆薩赫奇 3 0 0
酰亞胺 3 0 3
惡棍 3 3 3
LSI_SAS 0 3 3

出現INAACCESSABLE_BOOT_DEVICE錯誤時如何手動安裝驅動

您可以手動將驅動程序安裝到脫機 Windows 映像中。例如,執行 P2V 主機遷移後,您可以將 VMware SCSI 磁盤控制器或 VirtIO 驅動程序(用於 KVM 虛擬化)安裝到脫機 Windows 映像。為此,請將必要的驅動程序複製到可啟動 USB 閃存驅動器,從中啟動,然後打開命令提示符。

要將驅動程序安裝到脫機 Windows 映像(在此示例中位於 F: 驅動器上),請運行以下命令

dism /image:f: /add-driver /driver:vioscsi.inf

某些組織已配置組策略來限制在 Windows 上安裝第三方驅動程序。例如,在計算機配置 -> 管理模板 -> 系統 -> 設備安裝 -> 設備安裝限制下使用以下選項:

  • 阻止安裝與任何這些設備 ID 匹配的設備
  • 防止使用與這些設備安裝程序類匹配的驅動程序安裝設備
  • 防止安裝可移動設備
  • 防止安裝其他策略設置未描述的設備

如果啟用這些策略,Windows 無法自動安裝控制器驅動程序。

在這種情況下,您將需要:

  1. 從啟動媒體啟動計算機並加載WindowsSystem32configSYSTEM來自本地驅動器的註冊表配置單元(如上所述);
  2. 然後導航到以下註冊表​​項HKEY_LOCAL_MACHINElocal_hkeySystemControlSet001ControlPn
  3. 改變禁用CDDB不要啟動原始設備註冊表值0
  4. 卸載註冊表配置單元並重新啟動計算機。