修复0x0000007B错误

1.概要:

计算机启动时出现0x0000007B错误(INACCESSABLE_BOOT_DEVICE)表示Windows无法访问启动驱动器,因为缺少所需的驱动程序或磁盘已损坏。

2.操作步骤/更多信息:

在以下情况下,可能会遇到0x0000007B错误。

  • 将Windows备份还原到另一台物理计算机或Hyper-V、VMware、VirtualBox虚拟机(或在系统恢复方案中还原到其他硬件)时。
  • 在P2V或V2V迁移期间。
  • 将Windows移动(克隆)到新的硬盘驱动器或计算机。
  • 使用Windows映像迁移物理机(如使用disk2vhd)并使用该VHD映像部署新虚拟机。
  • 将BIOS中的SATA控制器模式从AHCI切换到IDE/RAID后,反之亦然(在这种情况下,只需打开BIOS设置并恢复原始SATA设置)。
  • 更换主板或硬盘控制器。
  • 更新BIOS/UEFI固件或更改设置后。

最常见的是,是使用P2V工具将物理计算机转换为虚拟机后,启动时遇到了0x7b错误,Windows无法在新 VM 上启动。

在这种情况下,INACCESSABLE_BOOT_DEVICE错误是由于新服务器(计算机或虚拟机)的硬盘控制器与原始硬件不同而导致的。例如,默认情况下,大多数虚拟机管理程序使用SCSI或SAS控制器来连接虚拟硬盘,而这些驱动程序在Windows中默认是禁用的。

lsi_sas.sys驱动程序被安装,但它运行的服务被禁用。因此,操作系统将无法加载所需的控制器驱动程序,Windows启动时出现蓝屏错误。

要修复0x0000007B错误,使用三方PE工具或者安装镜像启动到WinPE系统。

1)运行regedit打开注册表编辑器。

2)导航到HKEY_LOCAL_MACHINE注册表配置单元,然后在注册表编辑器窗口中选择“文件”→“加载配置单元”。

3)选择本地服务器驱动器上的\Windows\System32\config\SYSTEM文件(不要将其与 WinPE 驱动器混淆)。此文件存储Windows注册表的系统部分。输入新注册表配置单元的临时名称(例如,使用名称offline)。

4)导航到已装载的配置单元中的HKEY_LOCAL_MACHINE\offline\ControlSet001\services\ 注册表项。

找到以下注册表项:

  • Atapi
  • Intelide
  • LSI_SAS

5)找到名为 Start 的REG_DWORD参数,并在每个键中将其更改为0(0x0000000000)。

如果在发生此错误之前已将SATA控制器模式设置为AHCI,则还应在msahci部分中设置Start=0。

值Start=0表示此服务(和相应的驱动程序)将在Windows启动时加载,值Start=3表示应手动启动服务。

6)选择注册表项 HKEY_LOCAL_MACHINE\offline,然后从菜单中单击“卸载配置单元”。

发生INACCESSABLE_BOOT_DEVICE错误时手动安装驱动程序

可以手动将驱动程序安装到脱机Windows映像中。例如,在执行P2V主机迁移后,可以将VMware SCSI磁盘控制器或VirtIO驱动程序(用于KVM虚拟化)安装到脱机的Windows映像中。将必要的驱动程序复制到可启动的USB驱动器,从该驱动器启动后,打开命令提示符。

若要将驱动程序安装到脱机Windows映像中(如它位于E:驱动器上),请运行以下命令:

dism /image:E:\ /add-driver /driver:vioscsi.inf