如何將 OVA/OVF 檔案轉換為 Hyper-V 虛擬機器
微軟的 Hyper-V 是 Windows 的原生虛擬化平台,也就是說,您可以使用它來執行搭載不同客體作業系統的虛擬機器 (VM)。與 VMware 的虛擬化平台產品不同,您無法直接從 OVA 格式部署虛擬機器,因為 Hyper-V 不支援 OVA 檔案格式,且無法直接將 OVA 匯入 Hyper-V。這篇部落格文章將說明如何將 OVA 轉換為 Hyper-V 格式並部署虛擬機器的步驟。
什麼是 OVA?
OVA 檔案是一種用於在不同環境中更方便地分發和部署虛擬機器的容器。虛擬機器被封裝成 OVA 檔案,這些檔案屬於 TAR 格式的壓縮檔,可預先配置以實現便捷且快速的部署。
OVA 代表"開放虛擬化歸檔"(Open Virtualization Archive)或"開放 VA (virtual appliance)"。 從 OVA 匯入虛擬機器時,虛擬化平台軟體會提取 OVA 檔案的內容,並根據 OVA 封裝中定義的設定建立虛擬機器,無需手動建立和設定每個元件。
OVA 檔案可視為包含以下內容的壓縮檔:
- 虛擬磁碟映像檔,例如 VMDK
- 一個 OVF 描述檔,其格式為類似 XML 的文字檔案
- ISO 虛擬 DVD 映像檔
- MF – 包含 OVA 或 OVF 虛擬機器套件中所含檔案資訊的清單檔案
- 證書
- 其他檔案
OVA 範本檔案具有平台獨立性,並受到 VMware ESXi 等虛擬化平台(hypervisor)的支援, VMware 工作站, Oracle VirtualBox, QEMU,以及其他產品。與前述的虛擬化平台不同,Microsoft Hyper-V 不支援從 OVA/OVF 範本部署虛擬機器,也不支援將虛擬機器匯出為 OVA 範本。

將 OVA 匯入 Hyper-V 的工作流程包含三個主要步驟:
- 從 OVA 提取 VMDK(從 OVA 範本中提取虛擬磁碟檔)。
- 將 VMDK 轉換為 VHD 或 VHDX.
- 在 Hyper-V 中建立一台虛擬機器,並匯入現有的虛擬磁碟(即先前已轉換的虛擬磁碟)。
如您所見,目前尚無通用的 OVA 轉 Hyper-V 轉換工具,能夠直接將 OVA 檔案轉換為 Hyper-V 格式。
提取 OVA 內容
解壓縮 OVA 範本的內容。您可以像使用 7zip 等壓縮軟體開啟 tar 或 zip 壓縮檔一樣,開啟 OVA 檔案。當您從 OVA 範本中解壓縮檔案時,會得到一個包含檔案的 OVF 範本(也就是將 OVA 轉換為 OVF)。 您無需從 OVF 範本中解壓縮內容,該範本通常會與虛擬磁碟檔及 VM 範本的設定檔一同存放於獨立目錄中。
我們在 C:tempvm 目錄下建立 OVF 子目錄,並將 OVA 範本的內容解壓縮至此。首先,我們需要將 OVA 中的 VMDK 解壓縮至此目錄。

轉換虛擬磁碟
第二步是將虛擬磁碟從 VMDK 格式 轉換為 Hyper-V 支援的 VHD 或 VHDX 格式。您可以使用以下三種工具之一來轉換已提取的虛擬磁碟:
- qemu-img
- vboxmanage
- Microsoft 虛擬機器轉換器
Qemu-img
Qemu-img 是一款適用於 Windows 的免費工具,用於轉換不同檔案格式的虛擬磁碟映像檔。此工具是由 QEMU 開發團隊所打造的命令列工具。
- 下載 qemu-img 摘自官方網頁。
- 將下載的壓縮檔解壓縮至自訂目錄,例如: C:Programsqemu-img
- 開啟 Windows 命令提示字元 (CMD)。您可以透過點擊 開始 以及輸入 CMD.
- 前往該目錄 qemu-img 若您未將此工具的位置新增至作業系統,則該工具位於何處 $PATH 變數:
cd C:Programsqemu-img - 執行以下指令,將 VMDK 虛擬磁碟轉換為 VHDX:
qemu-img convert -p -f vmdk "C:TEMPVMovfWinXP-test-disk1.vmdk" -O vhdx -o subformat=dynamic "C:TEMPVMWinXP-HV.vhdx"地點:
-p 設定為顯示 p流程的進展。
-f 是 f來源虛擬磁碟映像的格式。
“C:TEMPVMovfWinXP-test-disk1.vmdk” 是來源虛擬磁碟的路徑。
-O 用於設定格式 o輸出虛擬磁碟映像檔(此處為 vhdx 格式)。
-o subformat=dynamic 設定 o輸出 VHDX,在此情況下屬於動態磁碟。VHDX 虛擬磁碟可以是 已修正 或動態的。
“C:TEMPVMWinXP-HV.vhdx” 是輸出虛擬磁碟檔的目標路徑。

請等待 qemu-img 完成將從 OVA 檔案中提取的 VMDK 檔案轉換為 Hyper-V VHDX 檔案的過程。所需時間取決於虛擬磁碟檔案的大小以及儲存子系統的效能。
vboxmanage
VirtualBox 管理員 或 vboxmanage 是一個隨附於 VirtualBox,這是一款由 Oracle 支援的虛擬化平台。您需要安裝 VirtualBox 才能使用 vboxmanage,這是一款適用於 Windows、Linux 和 macOS 的跨平台工具。該 vboxmanage 此工具能執行比 VirtualBox 圖形使用者介面更多的操作,並可轉換不同格式的虛擬磁碟。請閱讀 VirtualBox 與 Hyper-V 比較 比較以進一步了解特點及支援的虛擬磁碟格式。
- 前往 VirtualBox 的安裝目錄(本範例使用預設安裝路徑):
cd "C:Program Files (x86)OracleVirtualBox" - 執行以下指令,將 VMDK 虛擬磁碟轉換為 Hyper-V 用的 VHD 格式:
VBoxManage.exe clonehd --format vhd "C:TEMPVMovfWinXP-test-disk1.vmdk" "C:TEMPVMWinXP-HV.vhd"
處理進度會顯示在主控台中。請等待虛擬磁碟的複製/轉換程序完成。
Microsoft 虛擬機器轉換器
另一種解決方案是使用 Microsoft Virtual Machine Converter。請注意,此工具已不再更新(但仍可作為存檔內容取得)。您可以找到安裝程式 這裡 並嘗試將 OVA 轉換為 Hyper-V VHD 或 VHDX。
- 請從下載的檔案安裝 Microsoft Virtual Machine Converter (MVMC)。
- 在 Windows 中開啟 PowerShell。您可以透過點擊 開始 以及打字 PowerShell.
- 匯入轉換器隨附的 PowerShell 模組:
Import-Module “C:Program FilesMicrosoft Virtual Machine ConverterMvmcCmdlet.psd1" - 將 VMDK 虛擬磁碟轉換為 Hyper-V 虛擬磁碟的指令是:
ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "C:TEMPVMovfWinXP-test-disk1.vmdk" -DestinationLiteralPath "C:TEMPVMWinXP-HV2.vhd" -VhdType DynamicHardDisk -VhdFormat Vhdx
如果您看到錯誤訊息"項目 1 並非該描述符所支援的磁碟資料庫項目"…",您需要編輯虛擬磁碟描述碼。有關 Microsoft 轉換工具及編輯描述碼的詳細資訊,請參閱關於 將 VMware 虛擬機器轉換為 Hyper-V 虛擬機器.
建立新的虛擬機器
一旦您透過從 OVA 套件中提取 VMDK 檔案,將 OVA 轉換為 Hyper-V VHD 或 VHDX 格式後,您需要 建立新的 Hyper-V 虛擬機器 並使用現有的虛擬磁碟,也就是我們已轉換的虛擬磁碟。請閱讀這篇部落格文章,其中包含詳細的操作指南,說明如何 如何建立新的 Hyper-V 虛擬機器 在 Windows 10 中。
- 開啟 Hyper-V 管理員 在您的 Windows 主機上。
- 在 Hyper-V 管理員中,右鍵點擊您的 Hyper-V 主機的主機名稱,然後點擊 新 > 虛擬機器 在右鍵選單中。該 "新增虛擬機器精靈" 開啟。請依照精靈的步驟,根據需求設定新的虛擬機器,直到 連接虛擬硬碟 步驟。

- 在 連接虛擬硬碟 步驟,選擇 使用現有的虛擬硬碟. 按一下"瀏覽",然後選取前一節所述的虛擬磁碟轉換所產生的虛擬磁碟。在此範例中,我們選取 E:VMsWinXP-HV.vhd,我們已將其複製到此目錄中。

- 請使用從 OVA 檔案中提取的 VMDK 檔案所轉換的 Hyper-V 虛擬磁碟,啟動您先前已建立的虛擬機器。您可能需要安裝 Hyper-V 整合服務 在該虛擬機的客體作業系統上。

結論
在 Hyper-V 中部署虛擬機器後,請別忘了進行虛擬機器備份。請使用 NAKIVO Backup & Replication 用於快速且高效地備份 Hyper-V 和 VMware 虛擬機器。此外,NAKIVO 解決方案支援 跨平台還原 直接從備份將虛擬磁碟匯出為所需的 VMware 或 Hyper-V 格式。