把 VM 從 VirtualBox 搬到 VMware ESXi

Jack Yu
6 min readNov 21, 2016

--

這個周末辦公室要換變壓器要大停電,正好趁著沒人用的時候把幾台原本跑在 VirtualBox 上的 build machine VM 搬到 ESXi 上。搬起來比想像中的簡單一些 :D

以下為步驟紀錄

Step 1: VirtualBox 匯出成 ova 格式

  1. 把要匯出的 VM 關機
  2. 檔案 > 匯出應用裝置
  3. 選擇要匯出的 VM,格式選擇 OVF 1. 0 即可
  4. 點選匯出,得到一個 ova 檔

Step 2: 匯入到 VMware ESXi

  1. 透過 vSphere Client 連線到 ESXi 選擇 檔案>部署 OVF 範本,選擇前一步驟匯出的 ova 檔即可匯入
  2. 若遇到各種錯誤,請看下面 Q&A

Step 3: 修改 VM 設定

  1. 移除 VBoxGuestAdditions, Fedora 的 script 放置於 /opt/[VboxAddonsFolder]/uninstall.sh
  2. 重新開機

Q&A

Error 1: 遇到 "Unsupported hardware family virtualbox-2.2" 錯誤

  • 先到 VMware 官網下載 OVF Tool,執行以下指令把 ova 檔轉成 ovf 檔

ovftool.exe — lax source.ova destination.ovf

(注意 lax 前面是兩個 dash,後面 destination 的副檔名一定要是 ovf)

  • 轉換出來會得到一個 mf 檔 (checksum)、ovf 檔 (設定檔) 和 vmdk 檔 (虛擬硬碟),直接把 mf 檔刪掉,避免修改 ovf 設定後造成 checksum 不合
  • 用文字編輯器打開 ovf 檔,並找到內文中的 virtualbox-2.2 改為 vmx-07
  • 繼續部署 OVF 範本流程即可

Error 2: 遇到 "No support for the virtual hardware device type ’20′" 錯誤

  • 同 Error 1,用文字編輯器打開 ovf 檔,替換整段設定檔

<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>

Error 3: 遇到 "No support for the virtual hardware device type ’35′" 錯誤

  • type 35 是音效卡,可以直接先刪除以下整段設定

<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>7</rasd:InstanceID>
<rasd:ResourceSubType>ensoniq1371</rasd:ResourceSubType>
<rasd:ResourceType>35</rasd:ResourceType>
</Item>

Error 4: Fedora 連開機都開不起來遇到 Disk UUID: XXXXXXXXXX can’t find

  • 遇到這個狀況代表有些 UUID 的設定變了
  • 在 grub 畫面改選 rescure 的 image 開機,登入後用 root 身分跑
  • $ blkid // 取得新 UUID
  • 到 /etc/fstab 確認 UUID 對應正確,若有變的就改成新的
  • $ dracut — regenerate-all — force // 重建設定檔
  • $ grub2-mkconfig -o /boot/grub2/grub.conf // 重建 grub 設定
  • 重新開機

--

--