使用场景
OVF 包包含一系列未压缩的文件,对于需要访问文件中各个磁盘映像的用户而言较为方便,而 OVA 包只是一个大型文件。尽管您可以压缩此文件,但它不像一系列文件(如 OVF)那样灵活
OVA 更适用于适合只使用一个文件的特定应用场合(例如创建用于 Web 下载的软件包),这种情况下软件包更易于处理。与 OVF 相比,导出和导入 OVA 包所需的时间更长。
转换
OVA 转 OVF 很简单,使用 tar 解包就行
比如任意解包一个 OVA 文件后会出来 ovf vmdk mf 这三个文件,而且解包出来的顺序也是和 OVA 标准定义的那样,第一个必须未 .ovf 文件。这里我讲的是解包而不是解压,是因为 OVA 和 OVF 里包含的文件,最大的就是磁盘文件,而磁盘文件在导出的时候虚拟机已经进行了压缩,你可以使用 df 命令看看磁盘占用的空间,以及导出的磁盘占用的空间,你就会发现导出的磁盘文件大小远小于系统占用的空间。
XML/HTML代码
- tar -xvf Ubuntu1804.ova
- Ubuntu1804.ovf
- Ubuntu1804-disk1.vmdk
- Ubuntu1804.mf
OVF 转 OVA
按照 OVA 标准的格式,按顺序打包 OVF 包里的文件就行,注意 .ovf 文件一定要在第一个
XML/HTML代码
- tar -cf OP.ova Ubuntu1804.ovf Ubuntu1804-disk1.vmdk Ubuntu1804.mf
主要是为了备份整个虚拟机,通过ESXI图形界面上的导出ovf功能发现不太靠谱,有时能用,有时不能用,能用的时候有时也不太正常;Web Client导出。之前的版本不知道能不能正常导出,ESXI7导出下载会自动中断,只能换下一个方法。
第一步:去vmware官网下载ovf tool工具
最新版本:VMware-ovftool-4.4.1-16812187-win.x86_64
软件下载地址:https://www.aliyundrive.com/s/hYn6SBWtRvp
下载下来之后,一路默认安装,记得把安装路径给记住,一会要用。
第二步:使用ovf tool 工具
通过命令行打开ovf tool的安装路径,然后明确ESXI 主机的IP地址,我这里的环境是192.168.1.254,然后再明确一下VM(就是你将要导出的虚拟机的名字),我这里环境是Debian11,我想要备份到D盘,最后一步就是进行备份了:
XML/HTML代码
- cd C:\Program Files\VMware\VMware OVF Tool
- ovftool vi://root:@192.168.1.254/Debian11 D:\Debian11.ova
输入ESXI 的root密码就会开始运行了,慢慢等待完成。
也可以带密码输入直接导出ova文件
XML/HTML代码
- ovftool vi://root:password@192.168.1.254/Debian11 D:\Debian11.ova
注意:
1.vm虚拟机要关闭电源
2.ESXI 不要打开维护模式,如果打开维护模式也不能通过ovf tool 进行操作的,会报错
3.其实导出成ovf的大小是虚拟机实际的大小,而不是其逻辑大小,这一点需要注意。
XML/HTML代码
- ovftool.exe --sourceType=OVA -n=VM_TEST -ds=Datastorage "c:\tools\Win2019SE.ova" vi://root:"P@ssw0rd"@vms01.com.hk
通过 OVFTOOL 部署虚拟机
XML/HTML代码
- ovftool --sourceType=OVA --acceptAllEulas --X:skipContentLength --disableVerification --noSSLVerify -ds=DataStore -n=NEWVM --net:"network=VM Network" "D:\tmp\OVA_import\a-large-ova-file.ova" vi://root:"P@ssw0rd"@10.10.10.254
XML/HTML代码
- 选项 结论 描述
- ovftool 不适用 调用 OVF 工具的命令。
- --sourceType OVA 指定源文件的类型。在本例中,它是 OVA 文件。
- --acceptAllEulas 不适用 跳过最终用户许可协议 (EULA) 接受提示。
- --X:skipContentLength 不适用 上传期间跳过内容长度检查。
- --disableVerification 不适用 禁用 SSL 证书验证。
- --noSSLVerify 不适用 禁用 SSL 证书验证。
- -ds DataStore 指定目标数据存储的名称。
- -n NEWVM 指定新虚拟机的名称。
- --net "network=VM Network" 指定虚拟机将连接到的网络的名称。
- "D:\tmp\OVA_import\a-large-ova-file.ova" 不适用 指定要导入的 OVA 文件的路径。
- vi://root:"P@ssw0rd"@10.10.10.254 不适用 指定新虚拟机的目标位置。
- DataStore注意: 、NEWVM、VM Network和目标位置的值可能因具体环境和要求而异。
XML/HTML代码
- C:\Program Files\VMware\VMware OVF Tool>ovftool --sourceType=OVA --acceptAllEulas --X:skipContentLength --disableVerification --noSSLVerify -ds=DataStore -n=NEWVM --net:"data=VM Network" --net:"mgmt=VM Network 2" "D:\tmp\OVA_import\a-large-ova-file.ova" vi://root:"P@ssw0rd"@10.10.10.254
总结:
XML/HTML代码
- #导出
- ovftool vi://root:password@192.168.1.254/Debian12 D:\Debian12.ova
- #导入
- ovftool --sourceType=OVA -n=Debian12 -ds=Datastorage "D:\Debian12.ova" vi://root:"password"@192.168.1.254