In some cases, to make the Windows installer or Windows recovery environment (WinRE) see the computer’s local disks, you must load additional disk controller drivers. This often occurs on computers with NVMe SSD controllers. In my example, after migrating a virtual machine from VMware ESXi to Proxmox, it turned out that the guest Windows OS was missing the VirtIO drivers that should provide access to the virtual hard disk controller.
As a result, the 0x0000007B (INACESSIBLE_BOOT_DEVICE) error occurred when booting the Windows guest in a virtual machine.
In this article, we’ll look at how to load the disk controller drivers in WinPE or Windows Recovery Environment. Once you see the local hard disk, you can add the controller drivers to the offline Windows image on that disk.
Download the necessary drivers that support the required hard drive controller. In the case of Proxmox, download the ISO image with the VirtIO drivers for Windows. If you are working with a physical computer, mount the ISO image on another computer and copy the driver folders to an external USB flash drive.
Boot the computer into the recovery environment (WinRE or WinPE) using a recovery disk or Windows installation media. Open a command prompt. Run the diskpart command to ensure that WinPE doesn’t see local drives.
diskpart
DISKPART> list disk
There are no fixed disks to show.
Mount the previously prepared driver media (USB flash drive or ISO image).
{ "injection": [ { "parent": "/ISO/win2k22.iso", "archive": "/drivers/virtio-win-drivers.zip" } ] }
Run the following command to find out the drive letter assigned to the connected media:
wmic logicaldisk get caption, volumename
In my example, this is an image with VirtIO drivers for Windows, which is assigned the drive letter D:
. Use the drvload.exe command to load a driver in the WinPE environment. I want to load the VirtIO SCSI driver for Windows Server 2025. Specify the full path to the driver INF file on the media:
drvload d:\vioscsi\2k25\amd64\vioscsi.inf
DrvLoad: Successfully loaded d:\vioscsi\2k25\amd64\vioscsi.inf
DrvLoad: Unable to load D:\...\xxxxx.inf (Error 0x80070002)
Make sure you are loading a compatible driver if this happens. Also, check for other files in the driver directory besides *.INF (there must be at least *.CAT and *.SYS files).
Make sure that the SCSI adapter VirtIO driver is successfully loaded into the WinPE environment memory:
pnputil /enum-drivers
Use diskpart
to verify that the local disks are now visible and accessible.
Now, you can integrate the disk drivers into the offline Windows image (in this example, it is stored on the C: drive). You can add only one driver:
DISM /Image:C:\ /Add-Driver /driver:D:\vioscsi\2k25\amd64\vioscsi.inf
Or recursively install all drivers from the specified folder: :
DISM /Image:C:\ /Add-Driver /driver:D:\ /recurse
To reboot a computer from the WinPE environment, run
wpeutil reboot
The guest Windows should now boot normally, and you should see the Red Hat VirtIO SCSI disk device in the Device Manager.