我试图使用OVFTool将VMX转换为OVF格式,如下所示,但是它给出了错误:
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
如果您有任何解决方案,请告诉我。
我有一个类似的问题,OVFTool尝试导出到OVF格式。
Export failed: Failed to open file: C:\Virtual\test\test.vmx.
首先,我在编辑器中打开.VMX文件(它是一个文本文件),并确保设置如
scsi0:0.fileName = "test.vmdk"
nvram = "test.nvram"
extendedConfigFile = "test.vmxf"
提到正确的文件名。然后我注意到这一行:
.encoding = "windows-1251"
这是西里尔语代码页,所以我将其修改为使用西方代码页
.encoding = "windows-1252"
然后,运行OVFTool会产生不同的错误
Export failed: Failed to open disk: test.vmdk.
要修复它,我必须在HEX编辑器中打开.VMDK文件(因为它通常是一个大的二进制文件),在那里找到了字符串
encoding = "windows-1251"
(它位于文件开头的某个地方),并将“1251”替换为“1252”。
它成功了!
我在vmware融合中有类似的情况试图使用可能在Windows上创建的.vmx。我可以启动虚拟机,但任何尝试使用ovftool导出计算机或使用vmware-vdiskmanager进行轰炸:
Error: Failed to open disk: source.vmdk
Completed with errors
diskname完全有效,路径有效,权限有效,唯一的线索是运行ovftool:
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条其他线索:
encoding="windows-1252"
createType="monolithicSparse"
# Extent description
RW 16777216 SPARSE "source.vmdk"
所以首先我将monolithicSparse vmdk转换为“预先分配的2GB文件中的虚拟磁盘”:
vmware-vdiskmanager -r source.vmdk -t3 foo.vmdk
然后我可以编辑“foo.vmdk”来改变编码,现在看起来像:
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之后:
scsi0:0.fileName = "foo.vmdk"
利润:
ovftool source.vmx dest.ova
...
Opening VMX source: source.vmx
Opening OVA target: dest.ova
Writing OVA package: dest.ova
Transfer Completed
Completed successfully
在我的情况下,需要在将'abc.vmx'转换为'abc.ovf'之前修复磁盘'abc.vmdk'。
用于Linux:
$ / usr / bin / vmware-vdiskmanager -R /home/user/VMware/abc.vmdk
在Windows和Linux中查看此链接https://kb.vmware.com/s/article/2019259以解决已解决的问题
尝试按如下所述运行。
C:\ Program Files \ VMware \ VMware OVF工具> ovftool C:\ Win-Test \ Win-Test.vmx(vmx文件的位置)C:\ Win-Test \ win-test.ovf(destination)
也许ovftool
无法识别你给出的路径。
尝试使用以下命令:
ovftool --eula@=[path to eula] --X:logToConsole --targetType=OVA --compress=9 vi://[username]:[ESX address] [target address]
提供ESX地址后,它将列出您在ESX框中创建的文件夹。然后,您可以使用附加文件夹名称再次触发上述命令。
如果您的框中没有文件夹层次结构,那么它只会列出虚拟机名称。
重试附加[foldername]/[vmname no vmx file name required]
的相同命令
ovftool --eula@=[path to eula] --X:logToConsole --targetType=OVA --compress=9 vi://[username]:[ESX address]/[foldername if exist]/[vmname no vmx file name required] [target address]
我有同样的问题。在我的情况下,我打开了VMX文件,从文件中删除了IDE和声音控制器并保存。然后,我可以使用标准语法的工具将所有内容转换为OVA。
例如我放弃了:
ide1:0.present = "TRUE"
ide1:0.deviceType = "cdrom-image"
和:
sound.present = "TRUE"
sound.fileName = "-1"
sound.autodetect = "TRUE"
这允许我像平常一样转换文件。
对我来说,打开.vmx并删除以下行:
sata0:1.deviceType = "cdrom-image"
就我而言,这有效:
ide1:0.present = "TRUE"
ide1:0.deviceType = "cdrom-image"
我确实将true
更改为false
并且工作正常,因为cdrom-image
不存在,此更改允许格式转换。