在日常的虚拟化运维工作中,虚拟机模板导出和备份是一项基础却至关重要的操作。VMware 官方提供的 OVF Tool 是一款功能强大的命令行工具,能够帮助用户将虚拟机导出为开放虚拟化格式(OVF/OVA)包,实现跨平台迁移、模板分发和快速备份。本文将详细介绍 OVF Tool 的安装与使用方法,并重点分享实际操作中容易遇到的“坑”及其解决方案。

一、OVF Tool 简介

开放虚拟化格式(OVF)是一种行业标准,用于以 XML 格式描述虚拟机镜像的元数据。VMware OVF Tool 是一款命令行工具,帮助用户将 OVF 软件包导入和导出到各种 VMware 产品之间。

OVF Tool 提供了以下核心功能:

  • 支持 OVA 包的导入和生成(OVA 是 OVF 标准的一部分,将虚拟机的所有文件打包为单个文件)
  • 在 vSphere、vCloud Director、VMX 和 OVF 等格式之间直接转换
  • 支持从本地文件、HTTP、HTTPS 或 FTP 源访问 OVF
  • 部署前可关闭虚拟机电源,部署后可自动开机
  • 支持 OVF 包的数字签名与验证
  • 提供上下文相关的错误提示,帮助快速定位问题

二、安装 OVF Tool

2.1 下载地址

最新官方下载地址https://developer.broadcom.com/tools/open-virtualization-format-ovf-tool/latest/

OVF Tool 支持 Windows、Linux 和 macOS 三大平台。
私有地址下载 Windows https://hfyunyi.lanzoum.com/isU9Q3nedzva

2.2 Windows 安装

  1. 下载 Windows 安装包(.msi 文件,约 7.3 MB)
  2. 双击安装包,按照默认选项完成安装(一路点击“下一步”)
  3. 默认安装路径为:C:\Program Files\VMware\VMware OVF Tool

建议:为了方便使用,可以将该目录添加到系统环境变量 PATH 中,这样无需每次切换目录即可直接执行 ovftool 命令。

2.3 Linux 安装

Linux 版本下载后解压即可使用。需要注意,新版 Linux 系统可能缺少 libnsl.so.1 库,需要手动安装:

dnf install -y libnsl   # CentOS/RHEL 系
# 或
apt install libnsl1      # Debian/Ubuntu 系

2.4 macOS 安装

macOS 用户需要注意,解压后 ovftool 可能被系统识别为不可信软件,需要先提权并移除隔离标记:

chmod +x ovftool
sudo xattr -r -d com.apple.quarantine "ovftool目录"
# 建议创建软链接到 /usr/local/bin
sudo ln -s ovftool绝对路径 /usr/local/bin/ovftool

2.5 验证安装

安装完成后,运行以下命令验证是否成功:

ovftool --version

三、核心命令格式与参数详解

3.1 基本命令格式

ovftool <源位置> <目标位置>
  • 源位置:可以是 ESXi/vCenter 上的虚拟机(使用 vi:// 协议)、本地 VMX 文件,或已有的 OVF/OVA 文件
  • 目标位置:本地文件路径(OVA/OVF),或目标 ESXi/vCenter 主机

3.2 导出虚拟机的核心命令

ovftool vi://用户名:密码@ESXi_IP/虚拟机名称 本地存放路径/文件名.ova

示例(在 OVF Tool 安装目录下执行):

.\ovftool.exe vi://root@192.168.5.5/debian C:\Users\admin\Desktop\ova\debian.ova

导出为 OVF 格式(多文件)的示例

.\ovftool.exe vi://root@192.168.222.8/CentOS7.4 D:\OVF\CentOS7.4-out.ovf

3.3 常用参数说明

参数说明
--noSSLVerify跳过 SSL 证书验证(内网环境推荐)
--powerOffSource导出前自动关闭虚拟机电源,确保数据一致性
-o / --overwrite目标文件已存在时自动覆盖
--compress=9对导出的 OVA 文件进行压缩(1~9,值越大压缩率越高但速度越慢)
--acceptAllEulas自动接受所有最终用户许可协议
--name=<新名称>导入时指定虚拟机的新名称
--datastore=<存储名>导入时指定目标数据存储
--powerOn导入完成后自动开机

3.4 密码中的特殊字符处理

当密码包含 @\ 等特殊字符时,需要 URL 编码:

  • @%40
  • \%5c

示例(密码为 Admin@123,用户名为 administrator@vsphere.local):

ovftool "vi://administrator%40vsphere.local:Admin%40123@192.168.25.100/Datacenter/vm/workspace/Rocky9.6" 本地路径.ova

如果不希望在命令行中明文显示密码,可以省略密码部分,系统会交互式地提示输入。

四、实战:导出虚拟机为 OVA 模板

4.1 操作前准备

  1. 确认虚拟机状态:导出前建议关闭虚拟机电源,或使用 --powerOffSource 参数确保数据一致性
  2. 检查并卸载系统镜像:⚠️ 关键步骤!如果虚拟机的光驱中还挂着 ISO 镜像文件,导出的模板会尝试一并导出该镜像;在导入时若找不到该镜像文件,会导致导入失败
  3. 确保磁盘空间充足:建议预留虚拟机实际占用空间的 1.5 倍
  4. 确认访问权限:确保对 ESXi 主机具有虚拟机导出权限(至少只读)

4.2 完整导出步骤

步骤一:打开命令提示符(CMD),切换到 OVF Tool 安装目录:

cd C:\"Program Files"\VMware\"VMware OVF Tool"

步骤二:执行导出命令:

.\ovftool.exe --noSSLVerify --powerOffSource -o vi://root@192.168.5.5/Ubuntu22.04 D:\backup\Ubuntu22.04.ova

命令解析

  • --noSSLVerify:跳过 SSL 证书验证,避免证书问题中断导出
  • --powerOffSource:自动关闭虚拟机电源后再导出,确保数据完整性
  • -o:如果目标文件已存在,自动覆盖
  • vi://root@192.168.5.5/Ubuntu22.04:源 ESXi 主机上的虚拟机
  • D:\backup\Ubuntu22.04.ova:本地导出路径和文件名

4.3 OVF 与 OVA 格式的选择

  • OVA(Open Virtual Appliance) :单文件包,将 .ovf、.vmdk 等文件打包为一个 .ova 文件,便于分发和传输
  • OVF:多文件形式,包含 .ovf(描述文件)、.vmdk(磁盘文件)等,适合需要单独管理磁盘文件的场景

选择建议:日常备份和迁移推荐使用 OVA 格式,管理方便;需要单独处理磁盘文件时再选择 OVF 格式。

4.4 查看导出的模板信息

导出完成后,可以使用以下命令查看 OVA/OVF 文件的详细信息:

ovftool D:\backup\Ubuntu22.04.ova

输出内容包括:虚拟机名称、操作系统类型、CPU/内存配置、磁盘容量、网络配置等。

4.5 压缩导出文件

如果导出的 OVA 文件体积较大,可以通过 --compress 参数进行压缩:

ovftool --compress=9 "Ubuntu22.04.ova" "Ubuntu22.04_compressed.ova"

--compress=9 表示最高压缩比,文件体积最小但处理速度较慢,可根据实际需求调整压缩等级(1~9)。

五、常见错误与解决方案

5.1 ❌ Error: Failed to open file stream: xxx.iso

原因:虚拟机的光驱中还挂着 ISO 镜像文件,导出时工具尝试一并导出该镜像,但在目标位置找不到该文件。

解决方案

  1. 登录 vSphere Client
  2. 编辑虚拟机设置,找到 CD/DVD 驱动器
  3. 将设备状态设置为“已断开连接”或将介质从 ISO 镜像改为“客户端设备”
  4. 重新执行导出命令

预防措施:在导出任何虚拟机模板之前,养成检查并卸载光驱镜像的好习惯。

5.2 ❌ 导出过程中 vmdk 文件下载失败,提示网络错误

原因:常见于 ESXi 6.7.0 版本,可能是网络传输不稳定或 API 兼容性问题。

解决方案

  • 确保使用 --noSSLVerify 参数跳过 SSL 验证
  • 尝试在本地网络环境较好的时间段执行导出
  • 确保 OVF Tool 版本不低于 4.3.0

5.3 ❌ ovftool: command not found

原因:系统环境变量未配置,或未在 OVF Tool 安装目录下执行。

解决方案

  • 方法一:切换到安装目录执行

    cd "C:\Program Files\VMware\VMware OVF Tool"
    .\ovftool.exe <参数>
  • 方法二:将安装目录添加到系统 PATH 环境变量中

5.4 ❌ 创建目录失败 / 权限不足

原因:输出目录不存在,或当前用户对目标文件夹没有写入权限。

解决方案

  • 预先创建输出目录
  • 以管理员身份运行命令提示符
  • 检查目标文件夹的写入权限

5.5 ❌ 密码包含特殊字符导致认证失败

原因:密码中的 @\ 等字符未被正确转义。

解决方案

  • @ 替换为 %40\ 替换为 %5c
  • 或省略密码部分,让系统交互式提示输入

六、小结

OVF Tool 是 VMware 官方提供的一款轻量级但功能强大的虚拟机导出/导入工具。相比 vSphere Web Client 的图形化导出功能,OVF Tool 具有以下优势:

  1. 自动化友好:可通过脚本批量导出,适合定期备份任务
  2. 跨平台:支持 Windows、Linux 和 macOS
  3. 灵活的输出格式:支持 OVF 和 OVA,满足不同场景需求
  4. 版本兼容性好:不严格依赖 ESXi 版本,可在不同版本间迁移

核心要点回顾

  • ✅ 导出前务必卸载 ISO 镜像,否则导入时必然报错
    e7fdaae8-2457-4de7-8047-578be1711ec7.png
  • ✅ 使用 --noSSLVerify 避免证书问题
  • ✅ 使用 --powerOffSource 或手动关机后再导出
  • ✅ 密码中的特殊字符需要 URL 编码
  • ✅ OVA 格式便于分发,OVF 格式便于管理磁盘文件
最后修改:2026 年 04 月 16 日
如果觉得我的文章对你有用,请随意赞赏