修复:在windows7和server2008r2上启动时出现BSOD错误0x0000007B

时间:2020-01-09 10:46:13  来源:igfitidea点击:

当我们更换计算机或者服务器硬件(主板、驱动器控制器等)、从备份还原系统镜像或者将物理主机迁移到虚拟化环境(P2V)时,第一次启动Windows server 2008 R2或者Windows 7时,可能会出现错误为0x0000007B的BSOD。

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

此停止代码对应于 无法访问的启动设备INACCESSABLE_BOOT_DEVICE错误,并与新服务器(计算机或者虚拟机)的硬盘控制器与原始设备的差异有关。引导时,没有加载从新控制器引导所需的驱动程序。因此无法启动Windows。

在以下情况下,管理员可能会遇到错误0x0000007B:

将操作系统从备份恢复到另一台物理计算机或者Hyper-V/VMware/VirtualBox虚拟机时(从裸机恢复恢复到另一个硬件,视具体情况而定);

使用计算机镜像(例如使用disk2vhd创建)迁移物理系统并从该镜像部署新的虚拟机时;

将BIOS中的SATA控制器模式从AHCI切换到IDE后,或者反之亦然;

更换主板和/或者硬盘驱动器控制器时。

在我的例子中,问题出现在将运行WindowsServer2008R2的物理服务器迁移到VMWare环境中时。蓝屏出现在虚拟机第一次启动时。

在调试模式下,我们可以看到Windows启动在加载的阶段停止PNP.SYS类司机。

要修复错误0x0000007B,我们需要从任何Windows安装介质(使用Windows 7/2008 R2或者更高版本)或者引导磁盘(例如,DART)引导。如果我们使用Windows安装盘,请在第一个安装屏幕上按 Shift+F10(然后选择语言和键盘布局)。将出现命令提示符窗口,我们必须其中执行命令:

Regedit.exe

在注册表编辑器窗口,进入注册表配置单元 HKEY U LOCAL_MACHINE并选择 文件-> 加载配置单元。在本地服务器驱动器上(不要将其与WinPE磁盘混淆),选择文件*Windows\System32\config\SYSTEM* 。此文件存储注册表的系统部分本地Windows副本。

因此,我们将把系统的注册表配置单元从硬盘驱动器挂载到注册表编辑器(例如,以local_key)。

在加载的配置单元中,转到注册表项 **HKEY U LOCAL_MACHINE\LOCAL_HKEY\ControlSet001\services\”

查找以下注册表项:

Atapi;

Intelide;

LSI_SAS.

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

如果我们在出现此错误之前已将SATA控制器模式切换到AHCI,则还应在 msahci部分设置Start=0。

。Start=0值表示服务将在Windows启动时启动。Start=3表示将手动启动服务。

要将本地注册表文件中的更改保存到磁盘上,请转到注册表项HKEY U local U MACHINE\local U HKEY,并在菜单中选择 卸载配置单元

现在可以重新启动服务器了。Windows应该正常启动。它将搜索并安装新驱动器控制器的驱动程序。

对于VMWare,我们只需安装VMWare工具。

如果在这些更改之后,Windows在引导时仍然返回相同的错误unaccessible_BOOT_DEVICE,则表示我们正在使用其他类型的磁盘控制器。根据下表,尝试更改HKEY U LOCAL U MACHINE\LOCAL U HKEY\ControlSet001\services中Start参数的值。