如何安全地逐步删除 RMAN 中的备份
2026-06-12
2026-06-12
2026-06-12
2026-06-11
KVM 和 VMware 使用不兼容的磁盘镜像格式。QCOW2(QEMU 写时复制)是 KVM 虚拟化平台的本地格式,而 VMware 需要 OVA — 一个包含虚拟磁盘(VMDK)、机器配置(OVF 描述符)和清单文件的单一文件包。
大多数团队在将虚拟机从 KVM 环境迁移到 VMware 时会遇到这个问题,要么是为了利用 VMware 的管理工具,要么是为了将基础设施整合到一个单一平台上。
但是,没有单个命令可以直接处理这种转换。该过程包括两个阶段:首先转换磁盘格式,然后将结果打包成符合 OVF 规范的归档文件。
本指南涵盖了 Linux 和 Windows 上的这两个阶段,以及导致迁移失败的最常见错误。

跳过准备工作是虚拟机转换后无法启动的最常见原因。在将 QCOW2 转换为 OVA 之前,需要检查三件事:主机上的工具、客户机操作系统内的驱动程序以及源虚拟机的启动模式。
在运行任何命令之前,请确保满足以下条件:
KVM 虚拟机对存储和网络使用 VirtIO 驱动程序。VMware 无法识别这些驱动程序,因此客户机操作系统需要在转换前安装正确的驱动程序。
检查源虚拟机使用的是 UEFI 还是传统 BIOS。VMware 中的目标虚拟机需要配置为与之匹配。此处的不匹配将导致导入后操作系统无法启动。
Linux 为本过程所需的所有工具提供了原生支持。转换分两个阶段运行:使用 qemu-img 转换磁盘格式,然后使用 VMware OVF Tool 将结果打包成 OVA。
通过发行版的包管理器安装 qemu-img。
对于 Ubuntu 或 Debian:
sudo apt update && sudo apt install qemu-utils
对于 RHEL、CentOS 或 Fedora:
sudo yum install qemu-img
安装后,运行转换:
qemu-img convert -f qcow2 -O vmdk source_image.qcow2 destination_disk.vmdk
结果是一个与 VMware 兼容的虚拟磁盘。这个文件本身并不是 OVA — 它仍然需要导入到 ESXi 中并在接下来的步骤中进行打包。
步骤 2:将 VMDK 导入 VMware ESXi
将转换后的 VMDK 上传到 ESXi 数据存储,然后围绕它构建一个虚拟机。
启动虚拟机并在进入下一步之前验证它是否正常启动。
步骤 3:使用 OVF Tool 将虚拟机导出为 OVA
一旦确认虚拟机可以在 ESXi 中启动,使用 OVF Tool 对其进行打包。此步骤将 VMDK 和 OVF 描述符捆绑到一个便携式归档文件中,使镜像准备好进行克隆或分发。
针对您的 ESXi 主机或 vCenter 运行以下命令:
ovftool vi://username:password@esxi_ip/vm_name output_appliance.ova
将 esxi_ip 替换为您主机的 IP 地址,将 vm_name 替换为虚拟机上在 ESXi 中显示的名称。
对于涉及多个虚拟机的大规模迁移,V2V 迁移工具 可以大大简化过程。
步骤 4:验证 OVA
在部署之前运行探测检查以确认归档文件有效:
ovftool --probe output_appliance.ova
如果该命令没有返回错误,则 OVA 已准备好使用。这可以在文件截断或 OVF 描述符格式错误等问题在生产环境中造成问题之前发现它们。
运行转换
转换命令与 Linux 上的相同。在 Windows 上,对包含空格的任何路径使用双引号:
qemu-img.exe convert -f qcow2 -O vmdk "C:\Source VMs\image.qcow2" "C:\Target VMs\disk1.vmdk"
转换完成后,将 VMDK 上传到您的 ESXi 数据存储并将其配置为虚拟机,按照上面 Linux 部分中介绍的相同步骤操作。
在 Windows 上安装并运行 OVF Tool
从 VMware 网站下载 OVF Tool Windows MSI 安装程序并按照安装提示操作。
一旦虚拟机在 ESXi 中运行,使用 OVF Tool 将其打包为 OVA:
& "C:\Program Files\VMware\VMware OVF Tool\ovftool.exe" vi://root@192.168.1.10/MyMigratedVM "C:\Exports\MyVM.ova"
& 运算符告诉 PowerShell 执行一个路径中包含空格的程序。没有它,PowerShell 会将该路径视为字符串,命令将失败。
大多数转换失败发生在两个点之一:磁盘转换期间,或者虚拟机首次在 VMware 中启动时。以下修复方法涵盖了最常见的原因。
黑屏或“无启动设备”错误通常意味着 VMware 中的固件设置与源 KVM 虚拟机不匹配。转到 虚拟机选项 > 启动选项,确认 固件 设置为与源匹配(UEFI 或传统 BIOS)。如果操作系统仍然无法加载,请检查 VMware 中的 SCSI 控制器类型是否与客户机中安装的驱动程序兼容。
qemu-img 不完全支持某些 VMware 设备使用的 streamOptimized 子格式。添加 -o subformat=monolithicSparse 标志以转换为标准的 monolithic sparse VMDK。如果特别需要 streamOptimized 输出,请在最终导出步骤中使用 OVF Tool 处理该格式。
“Permission denied”错误通常意味着当前用户缺乏对 QCOW2 文件的读取权限或对目标目录的写入权限。运行 ls -l 检查所有权,如果需要,对源文件应用 chmod 644,并确认目标目录对当前用户是可写的。
转换期间的磁盘大小舍入可能导致分区对齐问题,尤其是在 GPT 分区表的情况下。将 VMware 中的目标磁盘大小设置为与源镜像的确切字节数匹配。如果分区仍然无法识别,请从 Live ISO 启动并使用 gdisk 修复 GPT 头。
文件夹名称中的空格被命令行视为参数分隔符,这会导致“意外的参数”错误。将所有文件路径用双引号括起来,例如 "C:\VM Storage\image.qcow2"。
将虚拟机导入 VMware 只是工作的一半。转换后的机器运行后,需要持续的保护,防止意外删除、损坏和硬件故障。您在迁移过程中创建的 OVA 文件是一个时间点快照,而不是备份策略。
i2Backup 通过为 VMware 和其他主流虚拟化平台提供无代理的虚拟机备份来填补这一空白。客户机操作系统内部无需安装代理,备份运行不会对生产工作负载产生任何影响。
与 VMware 环境相关的关键功能:
对于正常运行时间至关重要的环境,i2Availability 通过实时复制和自动故障转移进一步扩展了保护范围,即使在主机宕机时也能保持应用程序运行。如果您的迁移还涉及跨平台的持续数据库复制,i2Stream 可以处理实时数据库同步,支持 Oracle、MySQL、SQL Server 和其他主流系统。
问题 1:我可以直接将 QCOW2 转换为 OVA 吗?
不能。OVA 是一种打包格式,而不是磁盘镜像格式,因此没有单个命令可以处理完整的转换。该过程需要先将虚拟磁盘转换为 VMDK,然后使用 OVF Tool 将其与必要的元数据捆绑在一起。
问题 2:qemu-img 支持 OVA 输出吗?
不支持。qemu-img 仅处理虚拟磁盘格式,例如 VMDK、RAW 和 VHDX。它无法生成定义虚拟设备的 OVF 描述符文件。OVF Tool 负责该步骤。
问题 3:如何在 Windows 上将 QCOW2 转换为 OVA?
使用 Windows 版本的 qemu-img 将 QCOW2 文件转换为 VMDK,将磁盘上传到 ESXi 主机,然后使用 Windows 版本的 OVF Tool 将虚拟机导出为 OVA 归档文件。命令与 Linux 相同;主要区别在于路径语法以及调用可执行文件的方式。
问题 4:OVA 和 OVF 有什么区别?
OVF(开放虚拟化格式)是一组独立的文件:一个描述符文件、虚拟磁盘和一个清单。OVA(开放虚拟化设备)将所有那些文件打包成一个单一的压缩归档文件,以便于分发和便携性。
问题 5:为什么我的虚拟机转换为 OVA 后无法启动?
最常见的原因是固件不匹配。检查 VMware 中的目标虚拟机是否配置为使用与源相同的启动模式,无论是传统 BIOS 还是 UEFI。缺少客户机驱动程序是另一个常见原因,这就是为什么建议在转换前安装 open-vm-tools 或 virtio-win。
将 QCOW2 镜像转换为 OVA 是一个多步骤的过程,但每个阶段都有明确的目的。qemu-img 处理磁盘格式转换,ESXi 为虚拟机提供一个工作环境,而 OVF Tool 将所有内容打包成一个便携式归档文件。在开始之前正确设置启动模式和客户机驱动程序将防止大多数导致迁移失败的错误。
一旦虚拟机在 VMware 中运行,下一步就是确保它得到保护。您创建的 OVA 是一个起点,而不是一个安全网。使用英方软件的 i2Backup 设置定期的无代理备份可以确保您从第一天起就有干净的恢复点。
对于管理较大环境的团队,还需要评估如何备份 ESXi 配置以及您的虚拟机。在故障期间丢失主机级设置可能与丢失工作负载本身一样具有破坏性。
公告
邮件
销售