如何將虛擬機器從 Hyper-V 遷移至 Proxmox:逐步指南
Proxmox VE 是一款適用於各規模組織的可靠虛擬化環境,而將虛擬機器從其他虛擬化解決方案遷移至 Proxmox VE 可能頗具挑戰性。在最新版本中,Proxmox 新增了一個精靈,可部分自動化從 VMware ESXi 遷移至 Proxmox VE 的流程。 然而,從 Hyper-V 遷移至 Proxmox 仍需手動操作。這篇部落格文章將詳細說明從 Hyper-V 遷移虛擬機器的步驟,以及如何設定遷移流程。
為 Microsoft Hyper-V 虛擬機器進行遷移準備
為了為遷移至 Proxmox VE 做好環境準備,您應先在計劃遷移的 Hyper-V 虛擬機的客體作業系統上安裝 VirtIO 驅動程式。VirtIO 驅動程式是一組專為 Proxmox 虛擬機虛擬裝置設計的驅動程式,可提升效能與使用者體驗,類似於 VMware Tools. 為避免在 Proxmox 主機上啟動虛擬機器後發生問題,必須在開始遷移程序之前安裝 VirtIO 驅動程式。
安裝 VirtIO 驅動程式的步驟:
- 下載 最新的穩定版 VirtIO 驅動程式 或 最新的 ISO 標準 從 官方資源. 安裝 QEMU Guest Agent 時也需要此 ISO 映像檔。
- 將已下載且包含 VirtIO 驅動程式的 ISO 映像檔插入來源 Hyper-V 虛擬機器的虛擬 CD/DVD 光碟機中。本範例中,我們的來源虛擬機器名稱是 Win10test (Windows 10 是客體作業系統)。這是一台 Generation 2 虛擬機器,擁有一個 20 GB 的 VHDX 虛擬磁碟(動態磁碟,非預先分配——相當於 精簡配置 磁碟) 並載有作業系統 (OS) 及資料。
- 開啟
Hyper-V Manager. 右鍵點擊您要從 Hyper-V 遷移至 Proxmox VE 的虛擬機器,然後在快顯功能表中,點擊Settings.
- 在的左側窗格中 虛擬機器設定 視窗中,按一下
DVD Drive選項。在右側窗格中,按一下Image file, 點擊Browse並選取 VirtIO 驅動程式映像檔。在此範例中,檔案名稱為virtio-win-0.1.240.iso點擊
OK以儲存設定。
- 啟動來源虛擬機器,並使用原生 Hyper-V 連線至該虛擬機器 VMConnect 工具。右鍵點擊虛擬機器,然後點擊
Connect. - 開啟 Windows 檔案總管 (這台電腦) 在客體作業系統中,前往已插入 ISO 映像檔的 DVD 光碟機。在 DVD 映像檔的根目錄中,找到適用於 Windows 的 VirtIO 驅動程式安裝檔。選取 .微星 格式取決於您的 Windows 版本 (
virtio-win-gt-x64.msi或virtio-win-gt-x86.msi).
- 執行您 Windows 版本(64 位元或 32 位元)對應的可執行檔,並依照安裝精靈的指示安裝 VirtIO 驅動程式。
- 安裝 QEMU 來賓代理程式. 安裝程式的位置在於包含 VirtIO 驅動程式的 ISO 映像檔中,位於
guest-agent目錄。執行適用於您 Windows 版本的安裝程式檔案(我們執行qemu-ga-x84_64.msi(因為我們使用 Windows 10 64 位元版作為虛擬機器作業系統)。
- 請使用以下 PowerShell 指令,確認客體代理程式是否正在來源 Hyper-V 虛擬機的客體作業系統中執行:
Get-Service QEMU-GA
您也可以在 Windows 圖形使用者介面中的
services.msc快照。右鍵點擊My Computer或This PC圖示,點擊Manage而且,在 電腦管理 視窗,前往Services and Applications>Services. 請檢查QEMU Guest Agent服務 – 此服務必須以automatic啟動類型。
- 在 Hyper-V 主機上關閉來源虛擬機器。
- 如果虛擬機器有 檢查點 (快照),請將其移除。本範例中的虛擬機器沒有檢查點。
匯出 Hyper-V 虛擬機器
若要將您欲從 Hyper-V 遷移至 Proxmox VE 的來源 Hyper-V 虛擬機器匯出, right-click 虛擬機器並點擊 Export 在右鍵選單中。

請指定要儲存已匯出虛擬機器檔案的位置,然後按一下 Export.

檔案已匯出至 H:已匯出 在此範例中,位於 Hyper-V 主機上。
將虛擬機器檔案傳輸至 Proxmox 伺服器
複製已匯出的 Hyper-V 虛擬機器的虛擬磁碟 (VHD 或 VHDX) 至 Proxmox 主機。虛擬磁碟的位置在 Virtual Hard Disks 在已匯出的虛擬機器(VM)的子目錄中,位於為該虛擬機器匯出所指定的目錄內。使用 WinSCP透過 SSH 運作的 SCP 和 SFTP 客戶端,能方便地將檔案從 Windows 電腦複製到 Linux 電腦,包括 Proxmox 主機。
- 在 WinSCP 中建立一個新的連線,並登入您的 Proxmox 主機。
- 將已匯出的 Hyper-V 虛擬機的 VHD 或 VHDX 虛擬磁碟複製到 Proxmox 主機上。您只需將檔案拖曳 & 將檔案拖放至 WinSCP 中。

- 請檢查 Proxmox 主機上 Hyper-V 虛擬機器的複製虛擬磁碟,以確保檔案完整且未損毀。請在 Proxmox 主機上開啟控制台(終端機),並執行以下指令:
qemu-img check -r all /home/user1/Downloads/Win10test.vhdx
在 Proxmox 中建立新的虛擬機器
在 Proxmox 中建立一台新的虛擬機器。您可以透過 Proxmox VE 的網頁介面進行操作。
- 在 資料中心,
right-click它並擊中Create VM在右鍵選單中。我們將設定這台新虛擬機器,使其在遷移過程中使用已匯入的虛擬磁碟。
- Proxmox 虛擬機器建立精靈隨即開啟。
General. 輸入虛擬機器名稱(例如Win10-migrated)。您可以保留預設的虛擬機器 ID 值。在本例中,虛擬機器 ID 為 101。OS. 選擇 請勿使用任何媒體. 客體作業系統類型: Microsoft Windows; 版本: 10/2016/2019.System. 在 韌體 區段,請選擇OVMF (UEFI)BIOS。在這種情況下,您需要根據該裝置新增一個 EFI 磁碟q35且沒有虛擬 TPM(如同原始虛擬機器那樣)。請保留VirtIO SCSI single如精靈所建議,我們選擇了 SCSI 控制器。我們選擇 UEFI,是因為我們正在遷移一台 Gen-2 Hyper-V 虛擬機器。Disks. 保留預設參數,但將虛擬磁碟大小設定為 1 GB(這是用於建立新虛擬機器(VM)的臨時虛擬磁碟;我們稍後會刪除它)。CPU, Memory, Network: 請選擇所需的設定值。您可以將 CPU 和記憶體設定為與來源虛擬機器相同的值。

- 建立新的 Proxmox 虛擬機器後,請前往該虛擬機器
Hardware在"設定"中,選取最近建立的 1 GB 暫時性虛擬硬碟,Hard Disk (ide0)在此情況下,請點擊Detach. 卸載虛擬磁碟後,磁碟名稱將變更為Unused Disk 0就我們的情況而言。
- 刪除 1 GB 的臨時虛擬磁碟。選取
Unused Disk 0然後點擊Remove.
將 VHDX 檔案轉換為 QCOW2
將 Proxmox 主機上的 Hyper-V 虛擬磁碟 (VHD 或 VHDX) 轉換為原生 Proxmox (KVM) 格式,以便使用更多特點(例如精簡配置)。在 Proxmox 主機上開啟控制台(終端機),並以 root 權限執行以下指令:
qemu-img convert -f vhdx -O qcow2 -o preallocation=off /var/lib/vz/dump/disk.vhdx /var/lib/vz/images/VMID/disk.qcow2
地點:
-f vhdx 用於指定輸入格式(VHDX)。
-O qcow2 用於指定輸出格式(QCOW2)。
-o preallocation=off – 為目標虛擬磁碟檔案啟用精簡配置(該磁碟僅根據實際資料佔用空間)。
/var/lib/vz/dump/disk.vhdx 這是原始的 VHDX 檔案。
/var/lib/vz/images/VMID/disk.qcow2 是目標位置(請將 VMID 替換為您在 Proxmox 中的實際虛擬機器 ID)。
在本範例中,用於轉換的具體指令為 Hyper-V to Proxmox 虛擬磁碟格式(VHDX 轉 QCOW2)的操作步驟如下:
qemu-img convert -f vhdx -O qcow2 -o preallocation=off ./Win10test.vhdx /var/lib/vz/images/101/Win10-converted.qcow2
請等待虛擬磁碟轉換完成。轉換完成後,系統會建立一個新檔案。我們已將 Win10test.vhdx 至 Win10-converted.qcow2

重新掃描 Proxmox 儲存裝置以識別新的虛擬磁碟:
qm rescan

重新掃描虛擬磁碟後,轉換後的虛擬磁碟會顯示在 Proxmox 網頁介面中。
將虛擬磁碟掛載至 Proxmox 虛擬機器
將已轉換的磁碟加入 Unused Disk 將狀態套用至先前建立的虛擬機器(我們新增 Win10-converted.qcow2 至 Win10-migrated (在本例中為 VM)。您可以在 Proxmox 網頁介面中執行此操作。
- 雙擊未使用的磁碟 (
Unused Disk 0) 將其掛載至虛擬機器。
- 選擇
IDE(或SATA)。若將匯入並轉換後的虛擬磁碟掛載至 SCSI 控制器,此虛擬機器在客體作業系統開機時將會出現 BSOD(Windows 中的藍屏死機)。從 IDE 或 SATA 磁碟開機後,Windows 會為 Proxmox 虛擬機器的虛擬硬體安裝驅動程式。接著,我們便可重新設定虛擬磁碟,使其使用 SCSI 磁碟控制器。
- 新增最近建立的 1 GB 臨時 SCSI 磁碟。必須建立一個連接至 SCSI 控制器的臨時磁碟,才能安裝與 SCSI 控制器配合運作所需的驅動程式。選取在
Hyper-V to Proxmox遷移 (已遷移至 Windows 10),請前往Hardware區段,點擊Add並點擊Hard Disk.
- 請依照先前說明的方式選取虛擬磁碟參數,但這次請選擇 SCSI 匯流排/裝置。

- 編輯開機順序。選取您的虛擬機器,前往
Options>Boot order. 雙擊 開機順序 或選擇Boot Order然後點擊Edit.
- 請勾選相應的核取方塊,以啟用已轉換、匯入並掛載至此虛擬機器上的虛擬磁碟。預設情況下,新磁碟在開機順序清單中處於未選取狀態。
- 將已匯入並啟用的磁碟移至開機清單的最上方。

- 啟動虛擬機器並連線至虛擬機器主控台。選取為 Hyper-V 至 Proxmox 遷移所建立的虛擬機器,點擊
Start然後點擊Console. 虛擬機器應已成功啟動。
- 檢查 裝置管理員 的來賓 Windows 作業系統。右鍵點擊
My Computer或This PC圖示,點擊Manage並選擇Device Manager. 或者,您可以執行devmgmt.msc從命令列執行 snap-in。您應該會看到兩個磁碟機:已轉換/匯入的虛擬磁碟(在本例中,是一個連接至 IDE 控制器、容量為 20 GB 的精簡配置磁碟),以及一個 1 GB 的臨時 SCSI 虛擬磁碟。
您應該會看到一個標準的 SATA/AHCI 控制器和一個 VirtIO SCSI 控制器。當從 IDE 或 SATA 磁碟啟動 Windows 後,一旦在虛擬機器上安裝了 SCSI 控制器,系統便會安裝驅動程式以使用該 SCSI 控制器。這些驅動程式使我們能夠從連接至 SCSI 控制器的磁碟啟動作業系統。您可以重新啟動虛擬機器,以確保一切運作正常。

- 關閉已遷移至 Proxmox 的虛擬機器。
- 將連接至 IDE 控制器的虛擬磁碟移除。在
Hardware您已遷移的虛擬機器中的該區段,然後點擊Detach. 這是 硬碟 (ide0) 在我們目前的範例中(20 GB)。
- 雙擊此磁碟(目前,我們的 20 GB 磁碟是一顆未使用的磁碟——
Unused Disk 0) 來附加它。
- 將此虛擬磁碟掛載至 SCSI 控制器(匯流排/裝置),然後按一下
Add.
- 我們的 20 GB 虛擬磁碟現在
Hard Disk (scsi1). 我們仍讓這台虛擬機器中的 1 GB 臨時 SCSI 硬碟保持運作。
- 編輯虛擬機器開機順序。前往虛擬機器
Options並雙擊Boot Order,正如先前所述。- 請選取最近已連接至 SCSI 控制器的 Windows 10 虛擬磁碟 (
Win10-converted.qcow2(在此情況下)。 - 編輯開機順序 – 將此匯入的磁碟(來自安裝 Windows 10 的 Hyper-V)移至清單最上方。
- 請選取最近已連接至 SCSI 控制器的 Windows 10 虛擬磁碟 (
- 啟動虛擬機器。Windows 10 客體作業系統現在應會從 SCSI 虛擬磁碟開機。
- 待客體作業系統啟動後,請開啟
Device Manager並檢查磁碟和儲存控制器。現在,我們看到兩個 SCSI 磁碟和兩個 SCSI 控制器(請參閱下方的螢幕截圖)。在此情況下,每個 SCSI 磁碟都連接至其專屬的 SCSI 控制器。在現階段,裝置管理員中顯示的設定對我們而言是正確的。
- 如果一切運作正常,請關閉虛擬機器。
- 重新啟動虛擬機器。如果客體作業系統能正常開機且一切運作正常,您即可從 Proxmox 虛擬機器中移除並刪除該 1 GB 的臨時 SCSI 虛擬磁碟(
rm /var/lib/vz/images/101/vm-101-disk1.qcow2) 並刪除從來源 Hyper-V 主機複製的 VHDX 虛擬磁碟 (rm/home/user1/Downloads/Win10-test.vhdx).
透過 NAKIVO 確保虛擬機器在遷移後的保護
完成從 Hyper-V 遷移至 Proxmox 的作業後,請務必使用專用的備份解決方案,在 Proxmox 環境中保護您的虛擬機器。若您的來源 Hyper-V 虛擬機器在遷移前已受備份,轉換後的虛擬機器在 Proxmox VE 中並不會自動受到備份。
NAKIVO Backup & Replication 支援 Hyper-V、Proxmox、VMware vSphere 及 Nutanix 虛擬環境中的虛擬機器保護。NAKIVO 解決方案支援 Proxmox 的無代理備份 虛擬機器。設定方式相當簡單——只需將 Proxmox 主機或叢集新增至清單,並建立備份工作即可。
您可以還原完整的虛擬機器,或執行細粒度還原,以快速恢復個別檔案或物件。資料還原可選擇還原至原始位置或自訂位置。您也可以將虛擬機器備份匯出,並在其他虛擬化平台上進行還原。
NAKIVO Backup & Replication 支援:
Incremental backups. 透過僅複製自上次備份以來變更的資料,可減少儲存空間的佔用。設定增量備份並搭配定期完整備份,能提高備份鏈的可靠性。Application-aware backups. 確保備份資料具備崩潰一致性與應用程式一致性。即使虛擬機器上仍有應用程式正在執行,仍應進行備份,並在需要時正確還原資料。Backup encryption. 對傳輸中及儲存中的備份進行加密,以確保 . 根據您的需求,設定來源端、網路及備份儲存庫的加密功能。Backup immutability. 透過不可變性來保護備份免受勒索軟體的侵害。勒索軟體無法修改、變更或刪除這些資料。Multiple backup locations. 實施靈活的備份政策,並遵循 3-2-1 備份法則. NAKIVO 解決方案支援將備份儲存於本地磁碟、NAS設備、SMB 和 NFS 共用資料夾、磁帶以及雲端,包括 Azure Blob、AWS S3 及其他相容於 S3 的物件儲存服務。
結論
若要將 Hyper-V 虛擬機器遷移至 Proxmox,您需要先在來源虛擬機器上安裝 VirtIO 驅動程式以進行準備,接著建立新的 Proxmox 虛擬機器,將匯出的虛擬磁碟轉換格式,並將轉換後的磁碟匯入至 Proxmox 虛擬機器中。SCSI 虛擬磁碟雖能提供更高的效能,但需進行額外設定才能使其正常運作。 您還需從連接至 IDE 或 SATA 虛擬磁碟控制器的虛擬磁碟開機,新增一個臨時 SCSI 磁碟以安裝驅動程式,之後即可將開機磁碟掛載至 SCSI 控制器。請勿忘記使用進階備份解決方案來保護您的資料,例如 NAKIVO Backup & Replication.