Error 0x0000007B (INACCESSABLE_BOOT_DEVICE) at computer startup indicates that Windows cannot access the boot drive because a required driver is missing or the disk is corrupt.
An administrator may encounter the 0x0000007B
error in the following cases
- When you restore Windows from a backup to another physical computer or to a Hyper-V, VMware, or VirtualBox virtual machine (or in bare metal recovery scenarios to other hardware);
- During P2V or V2V migrations;
- After moving (cloning) Windows to a new hard drive or computer;
- If you are using a Windows image to migrate a physical machine (for example, using disk2vhd) and deploying a new virtual machine from that VHD image;
- After switching the SATA controller mode in BIOS from AHCI to IDE/RAID or vice versa (in this case, simply open the BIOS settings and restore the original SATA settings);
- When replacing a motherboard and/or hard disk controller;
- After the BIOS/UEFI firmware has been updated or the settings changed.
Stop Error 0x0000007B After Converting Physical Host to Virtual Machine
Most commonly, I encountered the error 0x7b after converting a physical computer running Windows Server 2008 R2 or Windows 7 to a virtual machine using VMware vCenter Converter. After the conversion is complete, Windows won’t boot on the new VM and a BSOD (Blue Screen of Death) with a stop code will appear on the screen:
STOP: 0x0000007B (0xFFFFF880009A9928, 0xFFFFFFFFC0000034, 0x0000000000000000, 0x0000000000000000).
The INACCESSABLE_BOOT_DEVICE error in this case is caused by the fact that the hard disk controller of the new server (computer or virtual machine) is different from the original hardware. For example, most hypervisors by default use a SCSI or SAS controller to connect virtual hard disks, which is disabled in Windows by default. The lsi_sas.sys driver is installed, but the service it runs is disabled. As a result, the operating system won’t be able to load the required controller driver, and Windows will stop booting with a BSOD.
In debug mode, you can see that Windows boot stops at the CLASSPNP.SYS driver loading stage.
To fix the 0x0000007B error, you need to boot from any Windows installation media or a boot disk (for example, MsDaRT). If you have booted your computer from the install media, you will need to press Shift + F10
on the first screen of the installation wizard (then you select a language and keyboard layout). The command prompt window will appear and you will need to run the command:
Regedit.exe
Navigate to the HKEY_LOCAL_MACHINE registry hive and select File -> Load Hive in the Registry Editor window. Select the \Windows\System32\config\SYSTEM file on the local server drive (don’t confuse it with the WinPE drive). This file stores the system part of your Windows registry.
These steps will mount your SYSTEM registry hive from your hard drive into Registry Editor. Enter a temporary name for the new registry hive (for example, use the name local_hkey).
Go to the HKEY_LOCAL_MACHINE\local_hkey\ControlSet001\services\ registry key in the hive that you have mounted.
Find these registry keys:
- Atapi;
- Intelide;
- LSI_SAS.
Find the REG_DWORD parameter called Start and change it to 0 (0x0000000000) in each of these keys.
If you had set your SATA controller mode to AHCI before this error occurred, you should also set Start = 0 in the msahci section.
To save the changes in the local registry file on the disk, select your registry key HKEY_LOCAL_MACHINE\local_hkey and click Unload Hive from the menu.
Now you can restart your server. Windows should boot normally. It will automatically search for and install drivers for your new disk controller.
If after making these changes your Windows still does not boot with the same INACCESSABLE_BOOT_DEVICE error, it means you are using some other type of disk controller.
Try to change the value of the Start parameter in the HKEY_LOCAL_MACHINE\local_hkey\ControlSet001\services
key according to the table below.
Windows Service Name | VMWare or Hype-V Virtual Machine | Physical PC Running Windows x64 with Native SATA Adapter | Physical PC with RAID Controller |
aliide | 3 | 3 | 3 |
amdide | 3 | 3 | 3 |
atapi | 0 | 0 | 0 |
cmdide | 3 | 3 | 3 |
iastorv | 3 | 3 | 3 |
intelide | 0 | 3 | 3 |
msahci | 3 | 0 | 0 |
pciide | 3 | 0 | 3 |
viaide | 3 | 3 | 3 |
LSI_SAS | 0 | 3 | 3 |
How to Manually Install the Driver When an INACCESSABLE_BOOT_DEVICE Error Occurs?
You can manually install the drivers into your offline Windows image. For example, after performing a P2V host migration, you can install the VMware SCSI Disk Controller or the VirtIO driver (for KVM virtualization) to an offline Windows image. To do this, copy the necessary drivers to a bootable USB flash drive, boot from it, and open a command prompt.
To install the driver to an offline Windows image (in this example it is on the F: drive), run the command
dism /image:f:\ /add-driver /driver:vioscsi.inf
Some organizations have configured Group Policies that restrict installing third-party drivers on Windows. For example, with the following options under Computer Configuration -> Administrative Templates -> System -> Device Installation -> Device Installation Restrictions:
- Prevent installation of devices that match any of these device IDs
- Prevent installation of devices using drivers that match these device setup classes
- Prevent installation of removable devices
- Prevent installation of devices not described by other policy settings.
Windows cannot install the controller driver automatically if these policies are enabled.
In this case, you will need:
- Boot your computer from the boot media and load the
\Windows\System32\config\SYSTEM
registry hive from the local drive (as described above); - Then navigate to the following registry key
HKEY_LOCAL_MACHINE\local_hkey\System\ControlSet001\Control\Pn
P - Change the DisableCDDB and DontStartRawDevices registry values to
0
- Unload the registry hive and restart your computer.