Я хочу создать файл OVF во время ночного процесса сборки. В настоящее время у меня есть этот процесс создания образа qcow2, который я конвертирую в vmdk с помощью qemu.
qemu-img convert -f qcow2 ${image_name} -O vmdk ${image_name}.vmdk
Процесс, который я хочу заменить, - это процесс, в котором я запускаю обновление на виртуальной машине ESx с желаемым образом и использую ovftool для экспорта ovf обновленного образа (при этом мне загружаются ovf, vmdk и mf). Затем я вставляю информацию EULA в ovf, обновляю манифест (mf), который содержит sha1sum для ovf и vmdk. Я собираю mvf, vmdk и mf в ova, которое затем можно доставить и импортировать в виртуальные машины и ESx. Этот процесс работает.
Я надеюсь, что я смогу создать свой vmdk и сгенерировать файлы ovf и mf, которые будут работать с моим vmdk. Однако любой ova / ovf, который я пытаюсь создать, в конечном итоге дает мне ошибку EOF, когда я пытаюсь загрузить его в VirtualBox, который вставлен ниже.
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}
Я могу создать новый образ в VirtualBox, используя созданный мной vmdk, поэтому я не подозреваю, что это проблема. Единственные строки, которые, как я ожидал, мне нужно будет изменить из моего рабочего 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.