在Windows 10上Hyper-V與VirtualBox之虛擬機器檔案間的匯入與匯出心得

前言

近日,買了一個Windows 10專業版的作業系統,看到Hyper-V,因為是作業系統原生支援虛擬化技術的原因,因此就花了一點時間做了研究,又因為VirtualBox也是許多人使用的虛擬機器主流的方式,因此本文章,主要是演示如何將Hyper-V建置好的虛擬機器硬碟匯入到VirtualBox,以及如何將VirtualBox建置好的虛擬機器檔案,匯入到Hyper-V中。

Hyper-V皆只能用一代與VirtualBox之間進行轉換,Hyper-V二代皆無法與VirtualBox相互間的匯入。

Hyper-V可以支援VHD與VHDX檔案格式的虛擬機器硬碟,但是預設建立虛擬機器時,預設會使用VHDX作為建立。

VirtualBox在建立虛擬機器的時候,可以直接選擇VHD作為虛擬機器的硬碟檔案格式。

Hyper-V

通常在Win 10建立虛擬機器的時候,需要選擇世代,指的是虛擬機器適用第幾代的,如下面的截圖所示:

若要VirtualBox與Hyper-V之間的虛擬機器可以互相匯入,則只能選擇第一代,我測過第二代,則都無法順利地匯入到VirtualBox中。

預設Hyper-V會使用VHDX作為安裝虛擬機器的硬碟,當完成虛擬機器的安裝之後,可以將虛擬機器進行關機,並找到放置該虛擬機器的硬碟位置,可以從下列截圖的地方找到相關的路徑。

點擊上方畫黃線的地方之後,會出現下方的視窗,可以看到虛擬硬碟所儲存的地方,相關的截圖如下所示:

以上面的截圖為例的話,則可以知道,虛擬機器硬碟所在的位置為:”C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks”,則進到這個目錄之後,可以看到類似像下面的內容:

因為先前已經有用Hyper-V建立過一個虛擬機器並取名虛擬機器硬碟的名稱為:ubuntu1804,而檔案格式為VHDX,接著可以將此檔案複製到其他的地方,並搭配使用StarWind V2V Converter將VHDX檔案格式轉換成VHD檔案。

轉換完成之後,接著就可以使用VirtualBox新建一個虛擬機器,並在選擇硬碟的時候,選擇既有的硬碟,並選擇剛剛轉換好的VHD硬碟。這樣從Hyper-V複製出來的VHDX硬碟就可以成功的在VirtualBox上面所建立的虛擬機器進行運作了。

VirtualBox

首先,在VirtualBox上所建立好的虛擬機器,並確定此虛擬機已經是關機的狀態。

接著與新建好的VHD硬碟進行相關的作業系統安裝,安裝好之後,可以在該虛擬機器的喜好設定頁面中的一般的地方找到放置虛擬機器檔案的位置,相關的截圖如下:

從上面的截圖為例的話,可以知道相關的虛擬機器檔案會放置在”C:\Users\peter\VirtualBox VMs”的目錄中,打開此目錄之後,會有以虛擬機器名稱為命名的資料夾,找到想要匯出的資料夾,並打開會看到類似像下面的截圖:

從上面的截圖可以知道,有一個虛擬機器的硬碟檔案叫做ubuntu_1.vhd,可以將這個檔案複製出來,並複製到其他儲存的地方,接著回到Hyper-V,新建一個虛擬機器,並使用第一代,以及指定上述所複製出來的VHD檔案,即可以完成從VirtualBox遷移到Hyper-V的虛擬機器的平台上了。

參考資料

  • https://www.starwindsoftware.com/starwind-v2v-converter
  • https://docs.microsoft.com/zh-tw/windows-server/virtualization/hyper-v/plan/should-i-create-a-generation-1-or-2-virtual-machine-in-hyper-v
  • https://www.starwindsoftware.com/tmplink/starwindconverter.exe