將虛擬機器從 VMware ESXi 遷移至 Proxmox VE
無論是為了多元化基礎架構,還是將生產工作負載完全遷移至新平台,組織都可能需要將虛擬機器從 VMware 遷移至 Proxmox。將虛擬機器從 VMware ESXi 主機遷移至 Proxmox VE 主機主要有兩種方法:手動遷移和使用專用工具。這篇部落格文章將提供詳細的分步教學,說明如何運用這兩種方法成功將虛擬機器遷移至 Proxmox VE。
虛擬機器遷移的準備工作
在規劃遷移至 Proxmox VE 時,您應首先 安裝 Proxmox. 以下是進行遷移前建議採取的幾個步驟:
- 請記錄來源虛擬機器(VM)的當前網路設定,並考慮將網路介面卡設定為透過 DHCP 取得 IP 設定。此方法有助於避免目標虛擬機器的客體作業系統出現 IP 位址衝突的訊息,因為遷移後可以使用新的網路介面卡。完成虛擬機器遷移後,您可以還原已連接網路介面卡的網路設定。
- 請確保來源 ESXi 主機與目標 Proxmox 主機之間已建立網路連線。在從 ESXi 遷移至 Proxmox 時,大多數複製虛擬機器資料的方法都需要此網路連線。
- 請在 VMware ESXi 主機上停用原始虛擬機器(VM)的磁碟加密功能。若虛擬機器的 vTPM 裝置處於啟用狀態,可能會導致遷移問題。
- 您應在虛擬機器處於關機狀態時進行匯入。
本教學所使用的環境為:
- VMware 虛擬環境:
- ESXi 8:192.168.101.31
- ESXi 資料存放區:
datastore40t,datastore50
- Proxmox 虛擬環境:
- Proxmox 主機:192.168.101.226
- 資料存放區:
local-zfs,datastore55
方法 1:手動遷移
讓我們將一台運行於 ESXi 主機上的 Windows Server 2022 虛擬機器進行遷移。第一種虛擬機器遷移方法的原理是:建立一台設定完全相同的新空 Proxmox/KVM 虛擬機器,並將原始 ESXi 虛擬機器的虛擬磁碟資料轉移至這台 Proxmox 虛擬機器。
檢查原始虛擬機器
- 在儲存原始虛擬機的主機 ESXi 上啟用 SSH。若要在 VMware Host Client 中啟用 SSH 存取,請前往
Host > Manage在Navigator面板,點擊Services選單頁籤,選擇TSM-SSH,然後在該項目上按右鍵。在快顯功能表中,按一下Start立即啟動 SSH 伺服器服務。請按一下Policy > Start and stop with host在 ESXi 啟動時自動啟動 SSH 伺服器服務。
- 請檢查原始 VMware 虛擬機的硬體配置,以便在 Proxmox 伺服器上為目標虛擬機重新建立相同的硬體配置。請在 VMware Host Client 或 VMware vSphere Client 的網頁介面左側窗格中選取原始虛擬機,並檢查
Hardware Configuration區段。您可以點擊Edit虛擬機器設定,以查看更多虛擬機器配置參數。
- 請檢查虛擬機器設定中是否已設定為 UEFI 或 BIOS,因為此設定會影響客體作業系統的開機。位於 ESXi 主機上的原始 VMware 虛擬機器設定中已選取 BIOS。這表示我們需要在 Proxmox 伺服器上的目標虛擬機器設定中選取 BIOS。
選取一台虛擬機器,然後按一下
Edit虛擬機器設定,選取VM Options[標籤] 中的Edit Settings視窗,並展開Boot Options此區段用於檢查虛擬機器的 UEFI/BIOS 設定。在本範例中,我們為原始虛擬機器使用 BIOS。
- 請從原始虛擬機器中移除所有 CD/DVD 映像檔或光碟。
- 您可以解除安裝 VMware Tools 在遷移前或遷移後。如果您希望將原始虛擬機器維持在完全可運作的狀態,建議在將虛擬機器遷移至 Proxmox 伺服器後,先從目標虛擬機器上解除安裝 VMware Tools,直到您確認遷移後的虛擬機器運作正常為止。
建立新的 Proxmox 虛擬機器
- 在 Proxmox 伺服器上建立一台新的虛擬機器,其參數須與 ESXi 主機上原始的 VMware 虛擬機器相同。這包括 CPU、記憶體、網路卡、虛擬磁碟等。在 Proxmox VE 網頁介面的左側窗格中,右鍵點擊 Proxmox 主機,然後點擊
Create VM.
- 在
General的”分頁”(步驟)Create: Virtual Machine在精靈中,請輸入以下參數:- 節點:
pve這是我們的 Proxmox 主機名稱。
- 虛擬機器 ID:
101您可以使用任何空閒的虛擬機器 ID。預設情況下,編號從 100 開始。
- 姓名:
Server2022您可以輸入任何數字,但為了更方便起見,請輸入與 ESXi 主機上原始虛擬機器名稱相同或完全一致的名稱。
點擊
Next在每個步驟中繼續。
- 節點:
- 在
OS在該步驟中,請選擇與原始 VMware 虛擬機器設定相同的客體作業系統。在此情況下,即為 Windows Server 2022。
System. 若原始虛擬機器使用 BIOS,請選擇”BIOS”;若原始虛擬機器使用 UEFI,請選擇”UEFI”。取消選取Add TPM若您未在虛擬 TPM 模組上使用 TPM,請勾選此核取方塊。您可以忽略 SCSI 控制器設定,因為我們將手動連接已匯入的虛擬磁碟。
Disks. 預設情況下,在 Proxmox VE 中建立新虛擬機器時,系統會自動建立一個新的虛擬磁碟。在本範例中,Proxmox 資料存放區上虛擬磁碟的路徑為:/mnt/datastore/datastore55/images/101在建立新的虛擬機器後,我們將刪除此虛擬磁碟,因為我們打算複製並匯入原始虛擬機器的虛擬磁碟(此操作可在圖形化使用者介面中執行)。

CPU. 將 CPU 設定調整為與原始虛擬機器相似。在此範例中,我們使用一個具備兩個核心的處理器。
Memory. 設定新虛擬機器的記憶體容量。請設定與原始虛擬機器相同的記憶體容量。
Network. 選擇一個橋接器以配合所需的網路模式(Bridge,NAT(例如:)。選擇一個虛擬網路介面卡型號。您應設定一個在虛擬機器從 ESXi 遷移至 Proxmox 後,能被客體作業系統識別的網路介面卡。某些虛擬網路介面卡需要驅動程式,若客體作業系統中未安裝這些驅動程式,網路介面卡將無法運作。您可以先選擇相容性最高的網路介面卡,待虛擬機器遷移完成並安裝適當的驅動程式與客體工具後,再將介面卡型號變更為所需的型號。
- 在 Proxmox 網頁介面的左側窗格中,選取最近建立的新虛擬機器(
Server2022(在此範例中)。點擊Hardware,選取隨新虛擬機器預設建立的虛擬硬碟,然後按一下Detach.
Are you sure you want to detach entry “Hard Disk (sata0)”?點擊
Yes以確認。- 點擊
Remove在卸載虛擬硬碟後。
新的空虛擬機器已建立完成,現在可以開始將虛擬磁碟資料從原始虛擬機器轉移過來。
複製虛擬磁碟資料
首先,您應確認目標虛擬機的目錄以及原始虛擬機的目錄,以了解原始虛擬磁碟的位置,以及目標虛擬磁碟應放置的位置。接著,即可複製虛擬磁碟。
- 開啟 Proxmox 伺服器的控制台。在 Proxmox VE 網頁介面的左側窗格中,選取您的主機(
pve(在此範例中)並點擊Shell右上角的按鈕。
- 請在控制台中前往存放虛擬機器磁碟的目錄。在本例中,我們的新 Proxmox 虛擬機器的虛擬磁碟存放於 datastore55 中的
/mnt/datastore/datastore55/images/101目錄,其中101是該虛擬機的識別碼。cd /mnt/datastore/datastore55/images/101在下方的螢幕截圖中,您可以看到新虛擬機器的虛擬磁碟已在圖形使用者介面中刪除,且未顯示在檔案清單中
(vm-101-disk-1.qcow2 - 32 GB). 若您已選取 UEFI 和 TPM,系統將建立兩個額外的虛擬磁碟(在本範例中,我們並未使用這兩個虛擬磁碟,因為我們採用的是不具備 TPM 的 BIOS)。
- 透過 SSH 連線至儲存原始 VMware 虛擬機器之虛擬機器資料存放區的 ESXi:
ssh root@192.168.101.31在哪裡 192.168.101.31 是 ESXi 主機的 IP 位址,以及
root是使用者名稱 - 請檢查位於適當 ESXi 資料存放區中”來源虛擬機器”目錄下的來源虛擬機器檔案:
ls -al /vmfs/volumes/datastore50/WinServer2022/請記下以下名稱:
.vmdk以及-flat.vmdkESXi 主機上原始 VMware 虛擬機的檔案。這些檔案是虛擬磁碟描述檔和原始資料檔,是將虛擬機遷移至 Proxmox 時必須複製的檔案。 - 結束 SSH 連線:
exit
- 在 ESXi 主機上停止原始虛擬機器。
- 現在,請複製
vmdk以及-flat.vmdk使用 SCP 客戶端以及我們在來源 ESXi 主機上啟用的 SSH 連線,複製原始虛擬機器原始虛擬磁碟的檔案。請在 Proxmox VE 控制台中執行以下指令:scp root@192.168.101.31://vmfs/volumes/datastore50/WinServer2022/WinServer2022.vmdk .scp root@192.168.101.31://vmfs/volumes/datastore50/WinServer2022/WinServer2022-flat.vmdk .其中:
root是 ESXi 主機上的使用者名稱192.168.101.31 是 ESXi 主機的 IP 位址
.表示我們目前在 Proxmox 伺服器上所在的當前目錄(將檔案複製到當前目錄);我們可以設定/mnt/datastore/datastore55/images/101改為明確地。出現提示時,請輸入 ESXi 的 root 密碼。

註: 若您在虛擬機器設定中選擇”UEFI 搭配 TPM”而非”BIOS”,系統將建立兩個小型虛擬磁碟,分別用於 UEFI 模式下的虛擬機器開機,以及虛擬 TPM 模組。不建議在遷移虛擬機器時使用 TPM。
- 重新掃描所有資料存放區,並顯示 Proxmox 主機上存在的虛擬磁碟:
qm rescan - 檢查用於虛擬機器遷移的 VM 目錄內容:
ls -l如您所見,原始的 精簡配置 由於複製後採用厚配置,虛擬磁碟目前佔用 30 GB 空間。這是因為薄配置是 ESXi 所使用的 VMFS 檔案系統的一項特點。
要匯出精簡配置的
vmdk若要將虛擬磁碟移至 Proxmox 伺服器,同時不佔用最大虛擬磁碟空間,您可以將原始的 VMware 虛擬機器匯出為 OVF 範本。在此情況下,匯出的vmdk虛擬磁碟的大小等於虛擬磁碟內檔案所佔用的空間。- 虛擬機器範本的匯出/匯入(替代方法)
若要將虛擬機器匯出為 OVF 範本,您可以使用 VMware vSphere Client 的圖形化使用者介面(右鍵點擊虛擬機器,然後選擇
Export) 或 VMware Host Client。此外,您也可以從 VMware 網站下載 OVF 工具,透過命令列匯出虛擬機器。您可以在 Proxmox 伺服器的控制台中執行以下指令,將 ESXi 主機上的虛擬機器匯出為 OVF 範本,並將範本檔案儲存至 Proxmox 伺服器:
ovftool vi://root@{IP or FQDN of ESXi host}/{VM name} /path/to/export/location在我們的範例中,用於建立 OVF 範本並將範本檔案儲存至 Proxmox 主機上 VM 目錄的指令如下:
ovftool vi://root@192.168.101.31/WinServer2022 /mnt/datastore/datastore55/images/101該
ovftool建立一個子目錄來存放範本檔案。

Proxmox VE 支援 VMware
vmdk虛擬磁碟的格式,這並非 Proxmox VE(KVM/QEMU)的原生格式。原生格式是qcow2. 您可以手動將 VMware 虛擬磁碟轉換為qcow2格式或原始格式。您也可以透過單一指令將此虛擬磁碟轉換,進而匯入該虛擬磁碟。以下將針對所有這些指令進行說明。 - 虛擬機器範本的匯出/匯入(替代方法)
- 將虛擬磁碟轉換或匯入為目標虛擬機器所需的格式。以下我們將介紹 4 種轉換和匯入虛擬磁碟的方法,請在進入下一階段之前,選擇最適合您的方法。
- 轉換
vmdk至qcow2要轉換 VMware 格式的虛擬磁碟 (
vmdk以及-flat.vmdk) 轉換為原生的 Proxmox/KVM 格式qcow2請使用以下指令:qemu-img convert -cpf vmdk -O qcow2在此範例中,我們從 VM 目錄執行的指令是:
qemu-img convert -cpf vmdk -O qcow2 ./WinServer2022.vmdk ./WinServer2022.qcow2轉換虛擬磁碟後,請檢查目錄中的內容:
ls -al皈依者
qcow2該虛擬磁碟佔用 15 GB 的磁碟空間(虛擬磁碟內含有 15 GB 的檔案),且採用精簡配置。有關支援的格式,請參閱 KVM 與 VMware 比較 比較。您可以選擇此轉換後的
qcow2在 Proxmox 網頁介面中,針對已遷移的虛擬機器設定虛擬磁碟。在執行此操作之前,讓我們先來了解用於匯入虛擬磁碟及變更虛擬磁碟格式的替代指令。 - 以原始格式匯入
若要以原始格式匯入虛擬磁碟,我們可以在已遷移虛擬機器的目錄中執行以下指令:
qm importdisk 101 ./WinServer2022.qcow2 datastore55在哪裡
datastore55是 Proxmox 主機上的資料存放區,目標虛擬機器 (101) 的位置即位於此資料存放區中。 - 匯入
vmdk直接您可以使用此命令從
vmdk直接以原始格式匯入。匯入的指令為VMDK在 Proxmox 中以原始格式儲存:qm importdisk 101 ./WinServer2022.vmdk datastore55 - 匯入為
qcow2如果您想使用
qcow2Proxmox 的輸出格式(非原始格式)vmdk若要匯入,請使用以下指令:qm importdisk 101 /mnt/datastore/datastore55/images/101/WinServer2022.vmdk datastore55 -format qcow2
- 轉換
掛載虛擬磁碟
將已遷移的虛擬磁碟掛載至 Proxmox 虛擬機器 (101),該磁碟目前被歸類為未使用磁碟。您可以在 Proxmox VE 的圖形化使用者介面中執行此操作。
- 請選取您為將虛擬機器從 VMware ESXi 遷移至 Proxmox VE 而建立的虛擬機器 (
Server2022(在此範例中)。前往Hardware該區段並點擊Add > Hard disk.
- 請確保已選取受支援的磁碟控制器(在大多數情況下,使用 SATA 或 IDE 均可)在
Add Unused Disk選項。按下Add.
- 將新增至虛擬機器設定中的虛擬磁碟設為第一個開機裝置。選取虛擬機器後,請前往
Options並雙擊Boot Order. 勾選已匯入虛擬磁碟所在行中的核取方塊,並將此虛擬磁碟拖曳至開機順序清單的第一個位置。按下OK以儲存設定。
- 請記住,為了讓客體作業系統能正常開機,UEFI 或 BIOS 的設定必須與來源虛擬機器(VM)的設定相符。
- 啟動已遷移的虛擬機器。此時虛擬機器應能成功開機。若無法開機,請檢查開機設定中的開機磁碟,並確認虛擬機器設定中的虛擬磁碟控制器。若要變更虛擬磁碟控制器,您需要先將虛擬磁碟斷開連接,然後重新連接。在連接虛擬磁碟時,您可以選擇磁碟控制器選項。
遷移後的設定
請在虛擬機器作業系統中安裝 VirtIO 驅動程式和 QEMU 客體代理程式,以獲得最佳的虛擬機器效能。自 Linux 核心 2.6 起,Linux 系統便已支援半虛擬化的 VirtIO 驅動程式。使用半虛擬化的虛擬裝置,其效能會比模擬的虛擬裝置更高。
您可從 Proxmox 網站下載 VirtIO 驅動程式:
https://pve.proxmox.com/wiki/Paravirtualized_Block_Drivers_for_Windows#Download
https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers
VirtIO 驅動程式已包含在 ISO 映像檔中,例如 virtio-win-0.1.240.iso
針對 Windows 虛擬機器:
- 將下載的 ISO 映像檔上傳至 Proxmox 資料存放區,並將此 ISO 映像檔掛載至已遷移的虛擬機器。
- 請從客體作業系統瀏覽已掛載的 ISO 映像檔內容,並執行相應的安裝程式以安裝所需的工具。
- 安裝 VirtIO 來賓驅動程式後,您可以將虛擬磁碟控制器變更為
VirtIO SCSI.
此外,您可以在您的電腦上安裝 SPICE 客戶端,並在 Proxmox 伺服器上的虛擬機器中啟用 SPICE,以便在連線至虛擬機器進行管理時,獲得更便利的操作與更好的使用者體驗。
您可以移除不需要的虛擬磁碟檔案,例如 vmdk 在虛擬機器遷移成功完成後,從 Proxmox 資料存放區中刪除檔案。請使用類似以下的指令:
rm /mnt/datastore/datastore55/images/101/WinServer2022.vmdk
rm /mnt/datastore/datastore55/images/101/WinServer2022-flat.vmdk
您可以觀看下方的影片,了解如何將虛擬機器從 VMware ESXi 遷移至 Proxmox VE 的完整教學。
方法 2:使用 esxi-import-tools
將虛擬機器從 ESXi 遷移至 Proxmox 虛擬環境的第二種方法,已於 2024 年 3 月底隨著 Proxmox VE 的新更新推出。一個新的 pve-esxi-import-tools 此套件預計將於 Proxmox VE 8.2 的正式版本中發布。不過,此套件自 Proxmox VE 8.1.10 版本起已包含在系統中,但僅限於測試版及非訂閱版的 Proxmox 軟體儲存庫。新的匯入工具提供了一個使用者友善的精靈,讓使用者能在網頁介面中將虛擬機器從 ESXi 匯入至 Proxmox VE。
升級與安裝 Proxmox 套件
- 新增一個
Non-subscriptionProxmox 軟體儲存庫以及一個Test軟體儲存庫(若尚未新增)。在左側窗格中選取一個 Proxmox 主機(pve(在此範例中)。前往Updates > Repositories然後點擊Add。(預設情況下,僅Enterprise(若存在儲存庫)。
- 請選擇一個
No-subscription在下拉式選單中選擇儲存庫,然後按下Add. 接著,同樣地,選取Test儲存庫.
- 點擊
Reload按住按鈕,直到新增的儲存庫顯示出來。如此一來,備份儲存庫已新增並顯示在Repositories頁面。
- 前往
Updates並點擊Refresh按一下此按鈕以重新整理可更新的套件清單。您應能在清單中看到新的 Proxmox 套件。
- 一個列出待更新套件的清單會顯示在彈出視窗中。一旦
Refresh任務已完成,您可以關閉此彈出視窗。現在您可以進行升級了。
- 在網頁介面的左側窗格中選取您的 Proxmox 主機,然後按下
Upgrade.
- 在開啟的控制台視窗中,輸入
y然後按下Enter開始 Proxmox 的升級程序。請等待升級完成。
- 請確認在完成升級後,ESXi 匯入工具是否已安裝。
dpkg -l | grep pve-esxi-import-tools您應該能在主控台輸出中看到套件版本。
- 重新啟動 Proxmox 主機以套用核心更新:
init 6
設定 Proxmox 以進行虛擬機器遷移
Proxmox 主機重新啟動後,請登入 Proxmox VE 網頁介面。您應能在左上角看到新的版本號。
- 前往
Datacenter > Storage並點擊Add > ESXi將包含來源虛擬機器的 ESXi 主機的資料存放區新增至 Proxmox 清單。此操作是使用 VMware 至 Proxmox 遷移工具的必要步驟,且該 ESXi 項目是在升級後才可用的。
- 請在
General[新增 ESXi 儲存空間] 索引標籤:ID– 這是 Proxmox 清單中顯示的 ESXi 儲存裝置名稱。請使用字母,不要僅使用數字。Server– 輸入存放來源虛擬機的主機的 IP 位址。Username– 輸入在 ESXi 主機上具有 root 權限的使用者名稱Password– 請輸入此使用者的密碼Nodes– 選擇一個 Proxmox 主機,將虛擬機器遷移至該主機。如果您沒有建立憑證,可以跳過憑證驗證步驟。
點擊
Add.
- 已新增 ESXi 儲存空間,並顯示於
Storage區段。現在,我們可以看到ESXi31儲存清單中的項目。此項目包含所有連接到所選 ESXi 主機的資料存放區。您可以雙擊此項目來查看它們。
開始匯入虛擬機器
- 在開始 VMware 至 Proxmox 的遷移作業前,請先關閉 ESXi 主機上的來源虛擬機器。此操作可確保傳輸的資料保持一致,並在 ESXi 與 Proxmox 主機皆透過虛擬機器的橋接模式連接到同一網路時,避免發生網路衝突。在開始虛擬機器遷移程序前,請先刪除原始虛擬機器的快照。請記錄來源虛擬機器的網路設定——遷移完成後您可能需要這些設定。
- 在 Proxmox 網頁介面的左側窗格中選取 ESXi 儲存空間(
ESXi31(在此範例中)。選取vmx您要從 ESXi 主機匯入至 Proxmox VE 的原始 VMware 虛擬機器檔案。我們將匯入Debian12.點擊 匯入.

- Proxmox 虛擬機器匯入工具會讀取來源 ESXi 虛擬機器的設定,並為新虛擬機器建立完全相同的硬體配置。新虛擬機器將包含匯入至 Proxmox 主機上的虛擬磁碟。
請檢查建議的虛擬機器配置,並在必要時修改一些設定
General分頁。
- 請勿選取
Live Import選項。即時匯入不等同於虛擬機器即時遷移。選取此選項後,當 Proxmox 主機判斷已傳輸足夠的資料,足以啟動虛擬機器的客體作業系統並繼續虛擬機器遷移程序時,便會啟動目標虛擬機器。 - 您可以選擇
Advanced點選該分頁,並選擇虛擬磁碟控制器、CD/DVD 光碟機選項以及網路介面選項。
點擊
Import按鈕以開始將 VMware 虛擬機器遷移至 Proxmox。
- 請勿選取
- 請等待虛擬機器遷移至 Proxmox 主機的過程完成。您可以在彈出視窗中監控進度。完成後即可關閉此視窗。
如您所見,原始的
vmdk虛擬磁碟已轉換為 Proxmox QEMU 的原生虛擬磁碟格式,稱為qcow2在遷移過程中。
- 在 Proxmox 主機上啟動已遷移的虛擬機器。

- 從已遷移至 Proxmox 的虛擬機器中移除 VMware Tools。在虛擬機器上安裝 VirtIO 來賓驅動程式及其他所需軟體。
結論
要將 VMware 虛擬機器遷移至 Proxmox,可透過建立新的空白虛擬機器、複製原始虛擬機器的虛擬磁碟,並將這些虛擬磁碟匯入 Proxmox 虛擬機器來完成。虛擬磁碟可直接複製,或透過將原始虛擬機器匯出為 OVF 範本來進行。Proxmox 亦在網頁介面中推出了一項新工具,可直接從 ESXi 主機匯入虛擬機器,使遷移過程更加便捷。 將虛擬機器遷移至 Proxmox VE 後,請務必進行備份。
執行遷移時,請確保您擁有來源 VMware 虛擬機器的最新備份,並在開始將 Proxmox 虛擬機器用於生產環境後立即開始備份。 NAKIVO Backup & Replication 這是一款通用備份解決方案,可用於備份 VMware ESXi 和 Proxmox VE 虛擬機器。