I need to migrate a number of virtual machines from VMware ESX to CentOS 6 KVM hypervisors. Ultimately, I wrote an RPM spec file that solved my problem at https://github.com/fasrc/virtio-win/blob/master/virtio-win.spec but I'm not sure if there's another RPM in base CentOS or EPEL (something standard) I should be using instead.
Originally, I was getting this "No root device found in this operating system image" error when attemting to migrate a Window 2008 VM. . .
[root@kvm01b ~]# virt-v2v -ic 'esx://my-vmware-hypervisor.example.com/' \
-os transferimages --network default my-vm
virt-v2v: No root device found in this operating system image.
. . . but I solved this with a simply yum install libguestfs-winsupport
since the docs say:
If you attempt to convert a virtual machine using NTFS without the libguestfs-winsupport package installed, the conversion will fail.
Next I got an error about missing drivers for Windows 2008. . .
[root@kvm01b ~]# virt-v2v -ic 'esx://my-vmware-hypervisor.example.com/' \
-os transferimages --network default my-vm
my-vm_my-vm: 100% [====================================]D
virt-v2v: Installation failed because the following files referenced in
the configuration file are required, but missing:
/usr/share/virtio-win/drivers/amd64/Win2008
. . . and I resolved this by grabbing an iso from Fedora at http://alt.fedoraproject.org/pub/alt/virtio-win/latest/ as recommended by http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers and building an RPM from it with this spec file: https://github.com/fasrc/virtio-win/blob/master/virtio-win.spec
Now, virt-v2v exits without error:
[root@kvm01b ~]# virt-v2v -ic 'esx://my-vmware-hypervisor.example.com/' \
-os transferimages --network default my-vm
my-vm_my-vm: 100% [====================================]D
virt-v2v: my-vm configured with virtio drivers.
[root@kvm01b ~]#
Now, my question is, rather that the virtio-win RPM from the spec file I wrote, is there some other more standard RPM in base CentOS or EPEL that will resolve the error above?
Here's a bit more detail about my setup:
[root@kvm01b ~]# cat /etc/redhat-release
CentOS release 6.2 (Final)
[root@kvm01b ~]# rpm -q virt-v2v
virt-v2v-0.8.3-5.el6.x86_64
See also Bug 605334 – VirtIO driver for windows does not show specific OS: Windows 7, Windows 2003
The fedora project VirtIO drivers are the way to go for any KVM implementation on any linux. There for what you did is the correct approach.