参考文献:
背景:
原先最早是使用 virtualbox 这款免费的虚拟机,后来公司购买了 vmware 产品,因此需要将 virtualbox 上面的虚拟机迁移到 vcenter 当中。我们知道 virtualbox 和 vmware 都可以导入导出 ova/ovf(Open Virtual Machine Format),但是这两个产品都没有严格按照 ovf 标准,因此从 virtualbox 当中导出的 ova 不能直接导入到 vmware 当中。
环境
virtualbox:4.3.8
vmware vCenter Server:5.5
被迁移虚拟机:ubuntu 12.04
问题:
如何将 virtualbox ova 转化成 vsphere vmware ovf?
准备工作:
下载一下工具,其中前连个我已经放到网盘当中。
- Vware OVF Tool: http://pan.baidu.com/s/1c0vjaPa,用于将 ova 文件转换成 vmware ovf 的文件,最后能够得到
- Microsoft Checksum Verify utility : http://pan.baidu.com/s/1qWO6Khu,用户查看文件的 SHA1 值。
- notepad++:用户编辑.ovf 文件。
virtualbox 导出 ova 文件
Vware OVF Tool 转化 ova 文件
安装 Vware OVF Tool 以后,在 cmd 中进入到 Vware OVF Tool 目录,我这里的目录是:C:\Program Files\VMware\VMware OVF Tool,执行命令:
ovftool.exe --lax <source.ova> <destination.ovf>
比如当前我执行的命令如下:
ovftool.exe --lax "D:\OVA_File\ova_file\redmine\redmine.ova" "D:\OVA_File\ova_file\redmine\redmine.ovf"
上述命令执行完毕以后,我们可以得到三个文件
- redmine.mf SHA1 Info File
- redmine.ovf Configuration file
- redmine-disk1.vmdk Virtual Hard drive
修改.ovf 文件使其与 vmware 匹配
我们知道上面通过 Vware OVF Tool 转化得到的.ovf 文件当中记录了虚拟机的各项参数,但是里面的有些参数是与 vmware 不配置的,所以我们需要使用 notepad++ 来修改其中的内容。
修改.ovf 文件,将
<vssd:VirtualSystemType>virtualbox-2.2</vssd:VirtualSystemType>
修改为
<vssd:VirtualSystemType>vmx-07</vssd:VirtualSystemType>
再将
<Item>
<rasd:Address>0</rasd:Address>
<rasd:Caption>sataController0</rasd:Caption>
<rasd:Description>SATA Controller</rasd:Description>
<rasd:ElementName>sataController0</rasd:ElementName>
<rasd:InstanceID>5</rasd:InstanceID>
<rasd:ResourceSubType>AHCI</rasd:ResourceSubType>
<rasd:ResourceType>20</rasd:ResourceType>
</Item>
修改为
<Item>
<rasd:Address>0</rasd:Address>
<rasd:Caption>SCSIController</rasd:Caption>
<rasd:Description>SCSI Controller</rasd:Description>
<rasd:ElementName>SCSIController</rasd:ElementName>
<rasd:InstanceID>5</rasd:InstanceID>
<rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
<rasd:ResourceType>6</rasd:ResourceType>
</Item>
最后一个需要修改的,是我们玩玩没有想到的声卡配置,将
<Item>
<rasd:AddressOnParent>3</rasd:AddressOnParent>
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
<rasd:Caption>sound</rasd:Caption>
<rasd:Description>Sound Card</rasd:Description>
<rasd:ElementName>sound</rasd:ElementName>
<rasd:InstanceID>8</rasd:InstanceID>
<rasd:ResourceSubType>ensoniq1371</rasd:ResourceSubType>
<rasd:ResourceType>35</rasd:ResourceType>
</Item>
修改为
<Item ovf:required="false">
<rasd:AddressOnParent>3</rasd:AddressOnParent>
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
<rasd:Caption>sound</rasd:Caption>
<rasd:Description>Sound Card</rasd:Description>
<rasd:ElementName>sound</rasd:ElementName>
<rasd:InstanceID>8</rasd:InstanceID>
<rasd:ResourceSubType>ensoniq1371</rasd:ResourceSubType>
<rasd:ResourceType>35</rasd:ResourceType>
</Item>
修改.mf 文件.ovf 文件的 SHA1 值
我们知道.mf 文件当中记录了和 redmine-disk1.vmdk 这两个文件的 SHA1 值,只是用于文件校验的,因为之前我们修改过了.ovf 文件,所以.mf 文件中的 SHA1 值与真实的.ovf 文件的 SHA1 值不同,这样在导入 ovf 的时候 vmware 会报错。
这里我们通过 Microsoft Checksum Verify utility 来求.ovf 文件的 SHA1 值。
由上图得知,redmine.ovf 文件的 SHA1 值为:eb32d890a64fa86fcebb8142a197de0d9faabe7a。然后我们打开.mf 文件,如下图所示,
将其中的 SHA1(redmine.ovf) 修改为我们刚刚得到的 SHA1 值。
通过 vSphere Client 将部署 ovf 模板
迁移以后的修改
迁移以后,打开虚拟机电源,可能会碰到网卡不适配的问题,请参看另一篇博客解决:
分享到:
正文完
发表至: 未分类
2015-11-15