How to install Windows 10 on KVM-based virtualization environment
Download virtio-win.iso for KVM drivers
Run qemu manually, don't relay on libvirt
qemu-system-x86_64 --enable-kvm \
-smp 4 -m 4096 -cpu host -vga qxl \
-drive file=/path/to/win10_64.iso,index=1,media=cdrom \
-drive file=/path/to/virtio-win.iso,index=2,media=cdrom \
-drive file=/path/to/win10.img,if=virtio \
-net nic,model=virtio,vlan=0 -net user \
--graphics vnc,listen=127.0.0.1
Install driver from /viostor/w10/amd64 before installation. (You won't see harddrive before this step due to lack of driver)
Finish your Windows installtion process
Let device manager install driver for virtual network interface from virtio drivers automatically.
(Optional) Install /Balloon/w10/amd64/balloon.inf, graphics driver from /qxldod/w10/amd64/qxldod.inf and guest agent from /guest-agent/qemu-ga-x64.msi
Now you can boot this image with other KVM front-end, just remember to set disk type as virtio
(Optional) Set graphics type to qxl and give it at least 64MB of graphics memory
Change KVM clock setting to localtime. ex: <clock offset='localtime'> for libvirt