什么是OVF/OVA?及转换方法

在虚拟化环境中,我们经常需要导出、分发或部署虚拟机。OVF 和 OVA 就是两种常见的虚拟机打包格式,下面来简单介绍一下它们的区别与转换方法。

OVF 与 OVA 的区别

  • OVF(Open Virtualization Format,开放虚拟机格式)是一种针对虚拟设备(或允许软件运行的虚拟机)进行打包和发布的开放标准。它通常包含多个文件,例如虚拟机描述文件(.ovf)、虚拟磁盘文件(.vmdk)、BIOS 设置文件(.nvram)以及校验文件(.mf)等。
  • OVA 与 OVF 的唯一区别在于,OVA 是一个单文件,它实际上是对 OVF 相关文件进行打包(tarball)后得到的归档文件。

简单来说:OVA 就是把 OVF 的多个文件“压缩”成一个文件,便于分发和传输。

转换方法

方式一:使用 ovftool

ovftool 是 VMware 提供的命令行工具,可以轻松完成 OVF 与 OVA 之间的相互转换。

  • 将 OVF 转换成 OVA

    ovftool /ovfs/my_vapp.ovf /ovfs/my_vapp.ova
  • 将 OVA 转换成 OVF

    ovftool /ovfs/my_vapp.ova /ovfs/my_vapp.ovf

方式二:使用 tar 命令手动打包

通常,从 ESXi 导出的 OVF 模板会包含以下四个文件:

文件名作用
my_vapp.ovf虚拟机描述文件
my_vapp-1.vmdk虚拟磁盘文件
my_vapp.nvramBIOS 设置信息
my_vapp.mfSHA1 校验文件(包含所有文件的校验信息)

重要: 使用 tar 打包成 OVA 时,需要按照一定顺序添加文件:

  1. 第一个文件必须是 .ovf 文件
  2. 然后是 .mf 校验文件
  3. 最后是其他文件(如 .vmdk.nvram 等)

关于文件所有者(可选)

ovftool 打包出来的 OVA 文件,内部所有者和用户组为 someone。如果你希望使用 tar 打包出的文件也具有相同的所有者信息,可以事先创建用户并指定。

  • Linux 创建用户:

    useradd someone
  • Mac 查看用户 ID:

    id -u someone

注意: 这并不是必须的,你可以根据实际情况决定是否指定所有者。

打包命令示例

假设当前目录下已有 *.ovf*.mf*.vmdk 等文件,按以下步骤打包:

  1. 创建 OVA 文件并添加 .ovf 文件(作为第一个文件):

    tar cvf myova.ova *.ovf --owner=someone --group=someone
  2. 追加 .mf.vmdk 等其他文件:

    tar uvf myova.ova *.mf *.vmdk --owner=someone --group=someone
  3. 查看打包后的内容(可选):

    tar tvf myova.ova

完成以上步骤后,myova.ova 就是一个符合规范的 OVA 文件,可以直接用于部署。

最后修改:2026 年 04 月 16 日
如果觉得我的文章对你有用,请随意赞赏