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:

. . . 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

See also Bug 605334 – VirtIO driver for windows does not show specific OS: Windows 7, Windows 2003

  • See also [CentOS-virt] Where should CentOS users get /usr/share/virtio-win/drivers for virt-v2v? - lists.centos.org/pipermail/centos-virt/2012-June/002927.html – Philip Durbin Jun 4 '12 at 13:34
  • I don't have an answer but I'm working on this too...will probably just end up digging up our Redhat license/login to get the official RPM, because virt-v2v seems to rely heavily on exact file locations. I end up with this error having just copied some files around from the ISO. # virt-v2v -ic esx:// -o libvirt -os virtimages win7convert win7basev1_convert_vmwarewin7-Windows7Base9-v1_esx: 100% [=============================================================================================]D 0h23m04s cp: cp: cp: cannot stat `/sysroot/transferOHZCOb/usr/sh` – curtis Oct 24 '12 at 1:57

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.