我需要将一些虚拟机从 VMware ESX 迁移到 CentOS 6 KVM 虚拟机管理程序。最终,我编写了一个 RPM 规范文件,解决了我的问题https://github.com/fasrc/virtio-win/blob/master/virtio-win.spec但我不确定基本 CentOS 或 EPEL(某种标准)中是否有其他 RPM 可供我使用。
最初,当我尝试迁移 Windows 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.
。。。但我用一个简单的yum install libguestfs-winsupport
方法解决了这个问题文档说:
如果您尝试使用未安装 libguestfs-winsupport 包的 NTFS 转换虚拟机,则转换将失败。
接下来我收到有关缺少 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
。。。我通过从 Fedora 获取 iso 解决了这个问题http://alt.fedoraproject.org/pub/alt/virtio-win/latest/按照建议http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers并使用此 spec 文件从中构建一个 RPM:https://github.com/fasrc/virtio-win/blob/master/virtio-win.spec
现在,virt-v2v 没有错误地退出:
[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 ~]#
现在我的问题是,来自我编写的 spec 文件的 virtio-win RPM, 基础 CentOS 或 EPEL 中是否存在其他更标准的 RPM 可以解决上述错误?
以下是有关我的设置的更多细节:
[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
也可以看看Bug 605334 – Windows 的 VirtIO 驱动程序未显示特定操作系统:Windows 7、Windows 2003
答案1
Fedora 项目 VirtIO 驱动程序是任何 Linux 上任何 KVM 实现的必经之路。因此,您所做的是正确的方法。