首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OVFtool将VMX转换为OVF

使用OVFtool将VMX转换为OVF
EN

Stack Overflow用户
提问于 2015-06-09 01:04:32
回答 8查看 42.5K关注 0票数 9

我尝试使用OVFTool将VMX转换为OVF格式,如下所示,但是它给出了错误:

代码语言:javascript
复制
C:\Program Files\VMware\VMware OVF Tool>ovftool.exe
vi://vcenter.com:port/folder/myfolder/abc.vmx abc.ovf
Error: Failed to open file: https://vcenter.com:port/folder/myfolder/abc.vmx
Completed with errors

如果您有任何解决方案,请告诉我。

EN

回答 8

Stack Overflow用户

发布于 2016-03-19 04:45:07

我在尝试将OVFTool导出为OVF格式时遇到了类似的问题。

代码语言:javascript
复制
Export failed: Failed to open file: C:\Virtual\test\test.vmx.

首先,我在编辑器中打开.VMX文件(它是一个文本文件),并确保如下设置

代码语言:javascript
复制
scsi0:0.fileName = "test.vmdk"
nvram = "test.nvram"
extendedConfigFile = "test.vmxf"

提到正确的文件名。然后我注意到这一行:

代码语言:javascript
复制
.encoding = "windows-1251"

这是西里尔文代码页,所以我将其修改为使用西方代码页

代码语言:javascript
复制
.encoding = "windows-1252"

然后,运行OVFTool给出一个不同的错误

代码语言:javascript
复制
Export failed: Failed to open disk: test.vmdk.

为了修复它,我不得不在十六进制编辑器中打开.VMDK文件(因为它通常是一个大的二进制文件),在那里找到了字符串

代码语言:javascript
复制
encoding = "windows-1251"

(它位于文件开头的某个位置),并将"1251“替换为"1252”。

它成功了!

票数 7
EN

Stack Overflow用户

发布于 2017-01-11 10:30:07

在尝试使用可能是在windows上创建的.vmx时,我在vmware fusion中遇到了类似的情况。我可以启动虚拟机,但任何使用ovftool或使用vmware-vdiskmanager导出机器的尝试都会失败:

代码语言:javascript
复制
Error: Failed to open disk: source.vmdk
Completed with errors

磁盘名称完全有效,路径有效,权限有效,唯一的线索是使用以下命令运行ovftool:

代码语言:javascript
复制
ovftool --X:logToConsole --X:logLevel=verbose source.vmx dest.ova

Opening VMX source: source.vmx
verbose -[10C2513C0] Opening source
verbose -[10C2513C0] Failed to open disk: ./source.vmdk
verbose -[10C2513C0] Exception: Failed to open disk: source.vmdk. Reason: Disk encoding error
Error: Failed to open disk: source.vmdk

按照其他人的建议,我偷看了一下.vmdk。在其中我发现了另外3条线索:

代码语言:javascript
复制
encoding="windows-1252"
createType="monolithicSparse"
# Extent description
RW 16777216 SPARSE "source.vmdk"

因此,首先我将monolithicSparse vmdk转换为“预分配的虚拟磁盘,分成2 2GB的文件”:

代码语言:javascript
复制
vmware-vdiskmanager -r source.vmdk -t3 foo.vmdk

然后我可以编辑"foo.vmdk“来更改编码,现在看起来像这样:

代码语言:javascript
复制
encoding="utf-8"
createType="twoGbMaxExtentFlat"
# Extent description
RW 8323072 FLAT "foo-f001.vmdk" 0
RW 8323072 FLAT "foo-f002.vmdk" 0
RW 131072 FLAT "foo-f003.vmdk" 0

最后,在修复source.vmx之后:

代码语言:javascript
复制
scsi0:0.fileName = "foo.vmdk"

利润:

代码语言:javascript
复制
ovftool source.vmx dest.ova
...
Opening VMX source: source.vmx
Opening OVA target: dest.ova
Writing OVA package: dest.ova
Transfer Completed
Completed successfully
票数 7
EN

Stack Overflow用户

发布于 2018-10-03 21:25:45

在我的例子中,在将'abc.vmx‘转换为'abc.ovf’之前,需要修复磁盘‘abc.ovf’。

在Linux上使用以下代码:

主目录$ /usr/bin/vmware-vdiskmanager -R /

/user/VMware/abc.vmdk

查看此链接https://kb.vmware.com/s/article/2019259以了解Windows和Linux中已解决的问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30715081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档