我很快就需要经常来回切换操作系统和虚拟机管理程序。
主要用例主要是从 Windows 转换为 Linux,以及从 VirtualBox (.vdi)、VMWare Workstation (.vmdk) 和 Hyper-V (.vhd) 转换为 QEMU (.qcow2)。虽然有时我不得不反过来操作,但我也愿意在 Windows 上尝试 QEMU(它在 Windows 上仍处于试验阶段吗?)。
这些 VM 文件本身通常有 10 多个快照,我也会来回恢复到以前的状态。为了让事情更有趣,其中一些甚至有子分支。
现在,尽管我进行了网络搜索,但我在网上找到的所有信息都是关于丢失对这些文件所做的快照,或者只合并最后一个快照。但必须有一种不丢失任何快照的方法,或者至少有一种非常繁琐的方法来正确处理问题,我愿意忍受。
我确实也考虑过使用 .ova 文件将 VM 文件转换为 .qcow2 作为中间步骤,但同样,没有任何信息告诉我它会保留曾经制作的每个快照。
现在,由于压缩,.qcow2 往往比较慢。但是,从命令行创建新的 .qcow2 文件时没有出现问题create
,现在看起来似乎没有办法告诉转换过程禁用压缩。必须有一种方法可以防止转换时也进行压缩。
我也知道 QEMU 仍然无法对基于 UEFI 的虚拟机进行快照,但只要我仍然可以拥有 .qcow2 版本的虚拟机文件及其所有快照,就可以了。
所以那是问题:如何将具有快照的 .vhd、.vdi 或 .vmdk 转换为 .qcow2 以及反之亦然,而不会丢失任何快照?
答案1
您可以尝试使用 virt-v2v。它可能支持使用快照进行转换。
https://libguestfs.org/virt-v2v.1.html
https://bugzilla.redhat.com/show_bug.cgi?id=1172425
我自己从未尝试过,但你可以测试一下。作为另一种选择,你可以尝试使用 StarWind V2V 转换器。它支持转换实时虚拟机,因此它可能会在转换过程中进行一些整合。https://www.starwindsoftware.com/starwind-v2v-converter
无论如何,我更喜欢在转换之前整合所有快照。我有备份,可以用来恢复到某个点。