參考文獻:
背景:
原先最早是使用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模板
遷移以後的修改
遷移以後,開啟虛擬機器電源,可能會碰到網路卡不適配的問題,請參看另一篇部落格解決: