四月 13 2014

將VHDX硬碟檔轉換為VMWare VMDK硬碟格式

分類:軟體好硬

自從 Server 2012 上市後,我幾乎已經改用 Hyper-V 3.0 搭 LAB 測試,使用時間比 VMWare Workstation 還多許多,連基礎的 VM 都只做給 Hyper-V 用。不過最近為了某項專案測試,因為 Hyper-V 不支援虛擬再虛擬,也就是虛擬機器內再啟用 Hyper-V 角色,我又再度裝了 VMWare WorkStation 來用。

但手上已經準備好的基礎 VM 都是 Hyper-V VHDX 虛擬硬碟格式,哪來美國時間再搞死自己一次,就算一台台於 VMWare 安裝作業系統再更新也要花上不少時間,所以決定轉成 VMWare 採用的 VMDK 虛擬硬碟格式。

很慶幸的是,只需要以下兩個項目就能完成,而且不需額外花費:
1. 具有 Hyper-V 角色服務的主機(負責 VHDX to VHD)
2. StarWind V2V Converter(負責 VHD to VMDK)

更新:感謝朋友回報,VMware vCenter Converter Standalone 也能直接完成上述工作。

其實本篇問題重點在於 StarWind V2V Converter。因為該軟體目前只支援 VHD 轉成 VMDK,或 VMDK 轉成 VHD,因此必須先用 Hyper-V 內建功能將 VHDX 轉成 VHD。

20160103 更新:
測試 StarWind V2V Converter 8.0 已經支援 VHDX 轉換為 VMDK ,無須本文複雜程序。
starwindv2vc

轉換方式很容易,用 Hyper-V GUI 管理介面選擇「編輯磁碟」,再選擇要轉換的 VHDX 檔,就能輕鬆先轉換成 VHD 格式。

我個人比較搞怪,推薦這部份用 Powershell 指令轉換。(其實是因為吃過用 GUI 介面轉換,中途臨時按取消,卻莫名其妙卡住關不掉視窗的虧)

Convert-VHD -Path "路徑\來源檔案.vhdx" -DestinationPath "路徑\來源檔案.vhd"

轉換成 VHD 後,就能交給 StarWind V2V Converter 上演重頭戲。
其操作方式也很簡單,選擇要轉換成 VMDK 格式的 VHD 檔案。

接著,選擇要轉換成 VMWare 哪種形態的 VMDK 檔。
Growable image 指的是隨使用狀況增長的動態磁碟;Pre-allocaed image 指的是已配置好完整大小的固定磁碟。

虛擬磁碟格式。
以目前我在 VMWare Workstation 的使用,都是以 SCSI 掛載,所以我會選 SCSI,至於 IDE 的效果就沒測試。

選擇輸出的檔名及位置。

開始轉換,轉完就大功告成,可以掛到 VMWare Workstation 使用囉。

最後,以我這邊實際使用,想額外提醒注意的是:

A. 轉換完成的 VMDK 檔,在新增 VMWare Workstation 的 VM 掛上使用時,會跳出視窗詢問「Convert existing virtual disk to newer format?」,是否要轉換成更新版的 VMDK 格式。
主要原因是,我使用的 VMWare Workstation 是 10.x 版,在這個版本專屬的 VMDK 所支援的功能更多,若是將 VMDK 轉換成新版本,就會無法在舊版 VMWare 上使用。(是不是真這樣不清楚,至少視窗訊息是這麼說的)

B. 將 VHDX 轉換成 VHD 的動作,請務必在有安裝 Hyper-V 角色服務的主機上操作。
請不要像我覺得轉換動作應該很簡單,就找了一台主機只掛 Hyper-V 的 Powershell 模組就想轉,最後只會得到錯誤訊息。

C. 我的 VHDX 虛擬硬碟檔都是做過 Sysprep 並處於關機狀態,因此在 VMWare 上開啟使用時,會在開機時重新偵測硬體。
若是在生產運作中的 Hyper-V VM,並不能保證能直接無痛移轉至 VMWare 上使用,衷心建議找第三方軟體進行 V2V 轉換。

D. 能不能倒轉回來用?我目前沒時間測試,謝謝指教(!?)

20160103 更新:
測試 StarWind V2V Converter 8.0 已經支援 VHDX 轉換為 VMDK ,無須以上複雜程序。

延伸閱讀:
StarWind - V2V Converter
TechNet 文件庫 - Convert-VHD
VMWare 官方網站 - VMware Workstation 10.0 Release Notes

目前有 2 個回應 , 標籤:


目前有 2 個回應

  1. Wilson 說道:

    讚!

    最近在搞 Hyper-V Server 2008R2 VM 換 2019
    就大大提供這招, 用 StarWind V2V Converter 把 VHD 轉換為 VHDX

    • AskaSu 說道:

      如果只是要將 vhd 轉換為 vhdx,
      Windows 如果有裝 Hyper-V PS模組,
      可以試試看用內建的 Convert-VHD 指令進行轉換

發表迴響

*