Fix BSOD 0x0000007B on virtualized Win7 (and Server 2008)

Ran into this problem when I P2V’d my main Win7 box.  It had a broken Intel (software) raid on it (Raid1 with the second drive missing). I don’t know if this is why it was bluescreening, as I had used the heck out of this box for many years and it had every driver under the sun on it, but still, it was the obvious condition.

Basically, you have to start the VM in recovery mode, open a command prompt and run regedit.  Modifiy a few values to start some drivers and you should be good to go.ystem image from a backup or migrate a physical host into the virtualization environment (P2V), the BSOD with error 0x0000007B can appear at the first time you boot Windows Server 2008 R2 or Windows 7.

I was getting a STOP: 0x0000007B code (it was hard to see this as when VM’d, bluescreens only show for a fraction of a second.

This stop code corresponds to the INACCESSABLE_BOOT_DEVICE error and is related to the difference of the hard disk controller of a new server (a computer or a virtual machine) from the original equipment. When booting, the driver necessary to boot from the new controller is not loaded. Windows cannot be started due to it.

In the debug mode you can see that Windows boot stops at the stage of loading the CLASSPNP.SYS driver.

To fix the error 0x0000007B, you need to boot from any Windows installation media (with Windows 7 / 2008 R2 or higher) or a boot disk (for example, DART). Or using the recovery console (this can be added to the image if you use StarWind Converter

In the Registry Editor window, go to the registry hive HKEY_LOCAL_MACHINE and select File -> Load Hive. On the local server drive (don’t confuse it with the WinPE disk), select the file \Windows\System32\config\SYSTEM. This file stores the system part of the registry your local Windows copy.

In the loaded hive, go to registry key HKEY_LOCAL_MACHINE\local_hkey\ControlSet001\services\.

Find these registry keys:

  • Atapi;
  • Intelide;
  • LSI_SAS.

Find REG_DWORD parameters with the name Start in each of these keys and change their values to 0 (0x00000000).

If you had switched your SATA controller mode to AHCI before this error appeared, you should also set Start = 0 in the msahci section.Note. The Start=0 value means that the service will start at Windows startup. Start=3 means that the service will be started manually.

To save the changes in the local registry file on the disk, go to the registry key HKEY_LOCAL_MACHINE\local_hkey and select Unload Hive in the menu.


So I tried this again, after getting it to work, but without having pre-installed Hyper-V Integration Tools (note, I should have simply burnt the tools to a iso and mounted that inside the VM, then installed as described in another post). I decided to wipe out the VM after getting it to work with the above process – space constraints kept me from keeping a copy of the working VM… (mistake #1).

I was not able to get this process to work after multiple attempts the second time around. The same system, with no changes, and I tried both Disk2VHD and StarWind. Every time regedit would error with not being able to load the hive after I entered the key. I even attempted to mount the .vhdx in Windows 10, and regedit it directly as a mounted drive (seems a easier method than using recovery console). Tried copying the backup system hive… Tried everything I could think of. I am at a loss for why this did not work as it did before.

So I went with the more risky proposition of editing the registry of the actual Windows 7 box that I was virtualizing. A simple change of Intelide to 0 (auto start), did the trick. Hours wasted sure, but I think it is always better to try to not modify the source material if possible.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>