如何将原始磁盘映像转换为 OVF

如何将原始磁盘映像转换为 OVF

如何将虚拟设备映像从RAW直接格式转换为OVF/OVA格式?

有一种工具叫ovf工具.ovf/.ova/.vmx允许从到 的转换.ovf/.ova/.vmx。但它似乎不支持RAW磁盘作为输入格式。

Virtual Box 还具有 VBoxManage,允许您从 进行转换,VDI|VMDK|VHD|RAWVDI|VMDK|VHD|RAW不涉及OVF/OVA格式。

我正在运行 Ubuntu/Debian GNU/Linux。

答案1

为避免引起混淆,在继续之前我想说的一件事是RAW,、、、都是 (虚拟)硬盘文件,而、、是虚拟机设置文件。文件带有单独的虚拟硬盘(可以是 VMDK 格式,也可以是其他几种VMDK格式之一),而文件则包含在一个虚拟机中。VHDVDI*OVFOVA.VMXOVFOVA

*——大多数都是虚拟的!)

我个人之前从未见过虚拟机从 RAW 驱动器启动。如果您可以使用转换RAW为 ,我建议使用(肯定)或 Virtual Box(不太确定!)来创建新的虚拟机并选择您刚刚转换的文件。VMDKVBoxManageVMWare Player or WorkstationVMDK

再次,我不确定 Virtual Box 使用什么作为其默认设置文件,但我知道 VMWare Workstation 使用VMX,因此您在使用时应该不会遇到任何问题,ovftools因为您将拥有一个具有正确硬盘的新虚拟机。

经过一番寻找,我唯一能找到的工具是实时显示它可以将 Raw 文件转换为 VMDK。

答案2

.ova文件只是一个 Posix tar 文件:

$ file foo.ova
foo.ova:            POSIX tar archive

如果您解压缩它,您将找到一个.ovf描述虚拟机的(XML)文件、一个带有校验和(SHA-1)的文本文件以及一个或多个.vmdk文件:

$ file *                                                                                                                                                                        
foo-disk1.vmdk:                        VMware4 disk image                                                                                                                                                          
foo-disk2.vmdk:                        VMware4 disk image                                                                                                                                                          
foo-disk3.vmdk:                        VMware4 disk image                                                                                                                                                          
foo-disk4.vmdk:                        VMware4 disk image                                                                                                                                                          
foo-disk5.vmdk:                        VMware4 disk image                                                                                                                                                          
foo.ova:                               POSIX tar archive                                                                                                                                                           
foo.mf:                                ASCII text                                                                                                                                                                  
foo.ovf:                               XML 1.0 document, ASCII text, with very long lines

因此,对于 RAW.ova转换,您必须将原始文件转换为.vmdk格式,写入正确的.ovf文件,创建文件.mf,并将所有内容压缩成.ova文件。请注意,后者不包括压缩。.mf文件中的行如下所示:

SHA1(foo.ovf)= e33370daa74544dc30841e1c527628e5c8610c54

它可以很容易地从中获得sha1sum,但是格式不同:

$ sha1sum 'foo.ovf'
e33370daa74544dc30841e1c527628e5c8610c54  foo.ovf

所以:

$ sha1sum *.ovf *.vmdk | awk 'BEGIN { FIELDWIDTHS = "40 2 1024" } { print "SHA1(" $3 ")= " $1 }'
SHA1(HyperFile 3.3.0.ovf)= e33370daa74544dc30841e1c527628e5c8610c54
SHA1(HyperFile_3.3.0-disk1.vmdk)= a60c58d00010bdc715d96e89e34fd45f48a58b4c
SHA1(HyperFile_3.3.0-disk2.vmdk)= 92250a09ef4b924c51c64b37ba6dc7049eb24cc2
SHA1(HyperFile_3.3.0-disk3.vmdk)= aff779bf46c859506606fd8925f79ffb9a86d955
SHA1(HyperFile_3.3.0-disk4.vmdk)= 64dd05f7e5d73929234393c109b2d92d69dedc8e
SHA1(HyperFile_3.3.0-disk5.vmdk)= 157e9f9f6adeabcc41f228cd7b53fc0ef4da43f9

我将让您在这里阅读有关 OVF 格式的信息:https://www.dmtf.org/standards/ovf

答案3

我使用 Vboxmanage 将 raw 转换为 vdi。然后我在 Vbox 中创建一个新机器,使用 vdi 文件作为虚拟磁盘。我启动新机器一次以确保它能正常工作。关机后,我将机器导出为 Ova 文件。大多数 VM 工具(例如 Vbox)都允许导入 ova 并运行机器。

Vboxmanage convertfromraw--格式/vdi

相关内容