How to Solve Windows Server 2012 R2 Installation Issues on KVM: Missing Storage Drivers for Virtio, SATA, and IDE


2 views

When attempting to install Windows Server 2012 R2 on KVM virtualization, many users encounter the infamous "missing storage driver" error during installation. The installer fails to detect available storage devices even when diskpart's list disk command shows physical disks present.

The root cause typically stems from three key factors:

1. Incorrect virtio driver version (must use stable releases)
2. Improper storage controller configuration
3. ISO image verification issues

For Windows Server 2012 R2 specifically, these virtio-win versions have proven stable:

  • virtio-win-0.1.126 (latest stable)
  • virtio-win-0.1.118 (LTS version)

Here's the complete working procedure:

# First create the virtual machine with proper storage controller
virt-install \
--name ws2012r2 \
--ram 4096 \
--disk path=/var/lib/libvirt/images/ws2012r2.qcow2,size=40,bus=virtio \
--vcpus 2 \
--os-type windows \
--os-variant win2k12r2 \
--network bridge=virbr0,model=virtio \
--graphics spice \
--cdrom /path/to/SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_Spanish_-4_MLF_X19-82897.ISO \
--disk /path/to/virtio-win-0.1.126.iso,device=cdrom

During installation:

  1. When prompted for storage drivers, select "Load Driver"
  2. Browse to E:\vioscsi\2k12r2\amd64 (or equivalent path for your virtio ISO)
  3. Install both "Red Hat VirtIO SCSI controller" and "Red Hat VirtIO SCSI pass-through controller"

If disks still don't appear:

# Alternative storage bus configuration (for libvirt XML)

  
  
  
  

For production environments, consider these XML additions:


4


Remember to install the virtio-balloon driver post-installation for optimal memory management.


When attempting to install Windows Server 2012 R2 on KVM virtualization, many users encounter the installer failing to detect storage devices. This typically occurs because:

  • The installer lacks Virtio drivers by default
  • Driver version incompatibilities
  • Incorrect storage controller configuration

First, download the latest stable Virtio drivers from Fedora's repository:

wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-0.1.240.iso

Create your VM with these recommended parameters:

virt-install \
--name win2012r2 \
--ram 4096 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/win2012r2.qcow2,size=40,bus=virtio,format=qcow2 \
--cdrom /path/to/SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_Spanish_-4_MLF_X19-82897.ISO \
--disk path=/path/to/virtio-win-0.1.240.iso,device=cdrom \
--network bridge=virbr0,model=virtio \
--graphics spice \
--os-type windows \
--os-variant win2k12r2

During Windows Setup:

  1. When prompted for storage drivers, click "Load Driver"
  2. Browse to the VirtIO CD-ROM (typically D: or E: drive)
  3. Navigate to: virtio-win-0.1.240\viostor\w8.1\amd64 (use w8.1 drivers for 2012 R2 compatibility)
  4. Select all shown drivers and proceed

If disks still don't appear in the installer:

# Check disk visibility in Windows PE:
diskpart
list disk
select disk 0
clean
create partition primary
format fs=ntfs quick
exit

If Virtio still fails, try these configurations:

  • SATA: Change disk bus to sata in libvirt XML
  • SCSI: Use virtio-scsi controller type
  • IDE: Least performant but most compatible fallback
<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/var/lib/libvirt/images/win2012r2.qcow2'/>
  <target dev='sda' bus='sata'/>
</disk>

After successful installation:

# Install remaining Virtio drivers from device manager
# Mount the VirtIO ISO in the running VM
# Install network, balloon, and QEMU guest agent drivers