hull-au/content/blog/install-virtio-drivers-from-windows-recovery.md

2.7 KiB

title date draft
Installing VirtIO (or any driver) from Windows Recovery 2024-04-23T20:52:20.7148891+08:00 false

Today I was migrating an older Windows VM running under VMware to Proxmox and encountered a frustrating sudden roadblock: no PVSCSI drivers! My newer builds all use VMware PVSCSI, but this VM was an older build still using LSI SAS.

Now staring at the INACCESSIBLE_BOOT_DEVICE BSOD, your options are abort or press ahead. In this article, we charge forward and overcome our lack of preparedness! Screenshot of INACCESSIBLE_BOOT_DEVICE BSOD

Enter Windows Recovery

Reset the VM a few times while at the Windows loading screen and it'll dump you into the recovery environment. From here you can perform an advanced repair and summon a command prompt. It typically takes 2 failed boots to trigger recovery.

Mount an ISO Containing Drivers

In this example, I've neglected to install the VirtIO SCSI driver so I'll mount the VirtIO ISO for Windows. You can grab it from here Screenshot of CD-ROM config with VirtIO ISO mounted

Switch to your disc in the Command Prompt using its drive letter (usually D:) Screenshot showing the directory listing of the VirtIO driver disc

Load the SCSI Driver

Find the driver you wish to load. (vioscsi.inf in my case) Screenshot showing the folder containing the VirtIO SCSI driver

Load the driver by running drvload vioscsi.inf Screenshot demonstrating drvload

List Disks

Use diskpart to list your disks to confirm they're now visible Screenshot of diskpart showing the results of a successful list disk operation

Use list volume to see what drive letter your Windows drive got assigned Screenshot of diskpart showing the results of a successful list volume operation

My Windows partition was now visible on drive letter E: Screenshot showing the contents of my Windows partition

Add the Driver to Windows

Use dism to insert the driver into your Windows install

dism /Image:E:\ /Add-Driver:D:\vioscsi\2k19\amd64\vioscsi.inf

Screenshot of dism adding the vioscsi driver to Windows

Success!

Reboot into Windows and enjoy your new SCSI driver. Screenshot of device manager showing the VirtIO SCSI controller