--- title: "Installing VirtIO (or any driver) from Windows Recovery" date: 2024-04-23T20:52:20.7148891+08:00 draft: 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 prepardness! # 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. # 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](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso) ![Screenshot of CD-ROM config with VirtIO ISO mounted](/images/virtio-drivers/iso-selection.png) Switch to your disc in the Command Prompt using its drive letter (usually `D:`) ![Screenshot showing the directory listing of the VirtIO driver disc](/images/virtio-drivers/virtio-contents.png) # 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](/images/virtio-drivers/driver-folder.png) Load the driver by running `drvload vioscsi.inf` ![Screenshot demonstrating drvload](/images/virtio-drivers/drvload.png) # 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](/images/virtio-drivers/diskpart-disks.png) 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](/images/virtio-drivers/diskpart-volumes.png) My Windows partition was now visible on drive letter `E:` ![Screenshot showing the contents of my Windows partition](/images/virtio-drivers/e-drive.png) # 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](/images/virtio-drivers/dism.png) # Success! Reboot into Windows and enjoy your new SCSI driver. ![Screenshot of device manager showing the VirtIO SCSI controller](/images/virtio-drivers/device-manager.png)