使用生成的 vmdk 创建 OVF headless

使用生成的 vmdk 创建 OVF headless

我希望在夜间构建过程中创建一个 OVF 文件。目前,我已通过此过程创建 qcow2 映像,然后使用 qemu 将其转换为 vmdk。

qemu-img convert -f qcow2 ${image_name} -O vmdk ${image_name}.vmdk 

我想要替换的过程是,我在具有所需映像的 ESx VM 上运行更新,并使用 ovftool 导出更新映像的 ovf(这会下载 ovf、vmdk 和 mf)。然后,我将 EULA 信息插入 ovf,更新包含 ovf 和 vmdk 的 sha1sum 的清单 (mf)。我将 mvf、vmdk 和 mf 打包成一个 ova,然后可以将其交付并导入 VM 和 ESx。这个过程有效。

我希望能够创建我的 vmdk 并生成可与我的 vmdk 配合使用的 ovf 和 mf 文件。但是,当我尝试将其加载到 VirtualBox 中时,我尝试创建的任何 ova/ovf 最终都会出现 EOF 错误,该错误粘贴在下面。

Could not create the imported medium '/home/shayne/VirtualBox VMs/disk1.vmdk' (VERR_EOF).


Result Code: 
VBOX_E_FILE_ERROR (0x80BB0004)
Component: 
ApplianceWrap
Interface: 
IAppliance {8398f026-4add-4474-5bc3-2f9f2140b23e}

我能够使用我生成的 vmdk 在 VirtualBox 中创建新映像,因此我怀疑这不是问题所在。我认为我需要从现有已加载 VM 生成的工作 ovf 中更改的唯一行是以下内容。

将字段 ovf:size 更新为 vmdk 的新大小

<File ovf:href="disk1.vmdk" ovf:id="file1" ovf:size="3144482816"/>

将字段 ovf:format 更新为单片稀疏,这是我的 vmdk 的新格式。

<Disk ovf:capacity="8" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized"/>

如果我能从 qcow2 转到 ova,我将非常感谢您的任何帮助。

相关内容