VirtualBox是我非常喜爱的虚拟化软件,其简单方便,单不是强大的配置让我很喜欢,特别是在网络的配置上,更是灵活多变。
不过最近要测试KVM,想把之前的VirtualBox跑的vm迁移到KVM上来,重要的是迁移镜像文件了,配置文件目前似乎没有什么好的办法。
基本上是照着这篇文章来做的,只是我按照它的方法,在第一步出了状况,修改了一下,下面是详细步骤:
将vdi镜像文件转换成裸格式文件
# VBoxManage clonehd axs3.vdi /home/wgzhao/axs3.img --format RAW如果你的转换很顺利,那没有什么好说的,但是如果你获得类似我这样的错误:ERROR: Cannot register the hard disk '/home/wgzhao/.VirtualBox/HardDisks/axs3/axs3.vdi' with UUID {873a8c98-23d1-4294-b2aa-d7d65239ee37} because a hard disk '/home/wgzhao/.VirtualBox/HardDisks/axs3/axs3.vdi' with UUID {873a8c98-23d1-4294-b2aa-d7d65239ee37} already exists in the media registry ('/root/.VirtualBox/VirtualBox.xml') Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports Context: "OpenHardDisk(Bstr(szFilenameAbs), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), srcDisk.asOutParam())" at line 624 of file VBoxManageDisk.cpp
那么你可以尝试用下面的方法:
# VBoxManage clonehd 873a8c98-23d1-4294-b2aa-d7d65239ee37 \
/home/wgzhao/axs3.img --format RAW
VirtualBox Command Line Management Interface Version 3.0.0
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'RAW'. UUID:
fc88e910-2919-4dc0-bce2-08b10ad409fc
上面是在我机器上的实际转换输出,其中uuid的来源就是第一个命令失败给出的输出里的uuid号。我发现如果你指定镜像文件的全路径,是不会出现上面的问题的。
- 将裸镜像文件转换成qcow格式镜像文件
#kvm-img convert -f raw axs3.img -O qcow2 axs3.qcow
如果没有报错,就算成功了。你可以测试一把:#kvm -hda axs3.qcow就知道结果了。
当然以上方法也是适合qemu的。