如何将VirtualBox VM迁移到Linux中的KVM VM中

时间:2020-03-21 11:44:46  来源:igfitidea点击:

本教程介绍如何将VirtualBox VM迁移到Linux中的KVM VM中。
我们可能在VirtualBox上运行了一些重要的访客计算机。
我们可以轻松地将现有VirtualBox计算机轻松迁移到KVM的新KVM访客,而是如此所述。

将VirtualBox VM迁移到Linux中的KVM VM中

首先,关闭带有KVM和VirtualBox的所有VM的电源。

VirtualBox VM的默认磁盘镜像格式为VDI。

我们可以使用命令找到VirtualBox磁盘镜像及其位置列表:

$vboxmanage list hdds

或者,

$VBoxManage list hdds

示例输出:

UUID:           ecfb6d5c-aa10-4ffc-b40c-b871f0404da8
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/sk/VirtualBox VMs/CentOS 8 Server/CentOS 8 Server.vdi
Storage format: VDI
Capacity:       20480 MBytes
Encryption:     disabled
UUID:           34a5709f-188c-4040-98f9-6093628c3d88
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/sk/VirtualBox VMs/Ubuntu 20.04 Server/Ubuntu 20.04 Server.vdi
Storage format: VDI
Capacity:       20480 MBytes
Encryption:     disabled

如我们所见,我有两个VirtualBox VM。

现在我将使用"vboxManage"命令将CentOS 8计算机磁盘镜像转换为原始磁盘格式:

$vboxmanage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img

或者,

$VBoxManage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img

示例输出:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'RAW'. UUID: afff3db8-b460-4f68-9c02-0f5d0d766c8e

原始镜像太大而无法使用。
在我的情况下,原始镜像比Qcow2镜像大十倍。

$du -h CentOS_8_Server.img 
21G CentOS_8_Server.img

因此,让我们将原始镜像格式转换为KVM磁盘格式:使用qemu-img命令压缩qcow2:

$qemu-img convert -f raw CentOS_8_Server.img -O qcow2 CentOS_8_Server.qcow2

完毕!我们已将VirtualBox磁盘镜像格式VDI转换为KVM镜像格式QCOW2.

检查QCOW2镜像的大小:

$du -h CentOS_8_Server.qcow2 
2.1G CentOS_8_Server.qcow2

看到了吗?
Qcow2远小于原始镜像。

我们现在可以通过从命令行导入虚拟磁盘镜像文件或者使用像right-manager或者cockpitweb控制台等图形KVM管理应用程序来创建新的KVM实例。

故障排除

有时我们可能已删除虚拟磁盘,而不会从VirtualBox Media Manager正确释放它。
当我们尝试从相同的VDI文件创建新的内存镜像时,我们将收到类似"使用UUID已存在的硬盘"的错误。
要解决此问题,我们必须从VirtualBox中释放虚拟磁盘,然后重试转换镜像。