如何在 ESXi 主機上克隆虛擬機器:5 種方法
虛擬化透過虛擬機器範本或虛擬機器克隆的特點,能提升工作流程效率並優化資源利用率,讓您能夠快速建立現有虛擬機器的完全相同副本。 由於新虛擬機器與原始虛擬機器擁有相同的虛擬硬體、已安裝軟體及其他設定,因此無需從頭開始進行配置。
虛擬機器克隆特點適用於由 vCenter Server 管理的虛擬機器。但若您使用的是 VMware ESXi 免費版本,亦可克隆在 VMware ESXi 主機上運行的虛擬機器。
這篇部落格文章說明了如何在 ESXi 伺服器上,透過不同方法(無論是否使用 vCenter Server)克隆現有的 VMware 虛擬機器。
VMware ESXi 虛擬機器複製環境
建議在開始複製前,先移除欲複製之虛擬機器的快照。此舉可避免在利用快照還原虛擬機器狀態以建立複製本時,發生原虛擬機器網路介面卡 MAC 位址被還原等問題。 若虛擬機器已有快照,您必須在從快照還原虛擬機器狀態以建立克隆本後,手動變更 MAC 位址,以避免 MAC 位址衝突。
我們用於示範如何建立克隆機器的環境如下:
- ESXi 主機 1: 192.168.101.201
- ESXi 主機 1 上的虛擬機器: Windows-VM
- ESXi 主機 2: 192.168.101.202
- vCenter Server: 192.168.101.103
ESXi 7 與 vCenter 7 本環境中使用上述資源來說明工作流程並克隆虛擬機器。
方法 1:在不使用 vCenter 的情況下克隆 VMware ESXi 虛擬機器 – 使用 VMware Host Client
如果您擁有一台未受 vCenter Server 管理的 ESXi 主機,可以使用 VMware Host Client,透過直觀的網頁介面在該 ESXi 主機上克隆虛擬機器。
我們有一台 ESXi 主機( 192.168.101.201 ),該主機擁有兩個資料存放區( datastore10a 以及 datastore10c )。 名稱 的 Windows-VM 虛擬機器位於 datastore10a 上。我們將克隆此虛擬機器,並將克隆的虛擬機器儲存於 datastore10c 上。
若要在未安裝 vCenter 的 ESXi 主機上克隆虛擬機器,請執行以下步驟:
- 使用管理員帳戶 (root) 登入 VMware Host Client。
- 在所需的資料存放區上建立目錄,用以儲存虛擬機器克隆的檔案。 我們在”導覽窗格”中點擊
Storage,前往 datastore10c ,點擊Create Directory,並輸入 Win-VM-Clone 作為目錄名稱。點擊Create Directory。
- 開啟
VM settings以檢視來源虛擬機的位置,並確認虛擬機檔案的存放位置。 要執行此操作,請前往Virtual Machines,選取Windows VM(位於”導覽窗格”中),並在Hard Disk1窗格中展開Hardware Configuration。我們可以看到,該虛擬機的虛擬硬碟位於 datastore10a 上的 Windows-VM 目錄中。若您的虛擬機有多個虛擬硬碟,請檢查每個虛擬硬碟的位置。在某些自訂設定中,同一台虛擬機的虛擬硬碟可能會位於不同的位置。 複製所有克隆虛擬機器的虛擬磁碟非常重要。
您也可以按一下
Edit“虛擬機器設定”,並展開虛擬機器設定中的”硬碟”區段,以查看虛擬硬碟的位置。
- 關閉您要克隆的虛擬機器。
- 開啟資料存放區瀏覽器,並前往來源虛擬機器的目錄。要執行此操作,請在
Storage窗格中按一下Navigator,接著按一下datastore10a,然後按一下Datastore browser。 接著,我們在資料存放區瀏覽器中,選取位於 資料存放區 10a 下的 Windows-VM 目錄。 - 將來源虛擬機器的 VMDK 檔案和 VMX 檔案複製到虛擬機器克隆的目錄中。首先,我們複製原始虛擬機器的虛擬磁碟。在資料存放區瀏覽器中選取 VMDK 檔案(以我們的情況為例: Windows-VM.vmdk ),然後點擊
Copy。
- 在下一視窗中選取目標目錄,然後點擊
Copy。我們選取位於 datastore10c 上的 Win-VM-Clone 目錄。
- 若您的原始虛擬機器有多個虛擬磁碟,請重複這些步驟以複製該虛擬機器的所有虛擬磁碟。
請注意,VMware Host Client 會將
.vmdk和-flat.vmdk檔案顯示為單一項目。 您可以在命令列介面中看到,每個虛擬磁碟對應兩個檔案。.vmdk檔案是虛擬磁碟描述檔,而-flat.vmdk則是 包含資料的虛擬磁碟檔案。與 ESXi 虛擬機器不同,在 VMware Workstation 中運行的虛擬機器的虛擬磁碟採用.vmdk格式,其中描述檔已內嵌於虛擬磁碟檔案中(即單一檔案而非兩個檔案)。 - 請等待檔案複製完成。您可以在網頁介面底部的
Recent Tasks進度條中監控進度。
- 將 VMX 檔案(即虛擬機器配置檔案)下載至您的電腦。操作步驟如下:開啟 資料存放區瀏覽器 ,並前往 datastore10a 上的 Windows-VM 目錄。選取
.vmx檔案(在本例中為 Windows-VM.vmx ),然後點擊Download(您也可以右鍵點擊 .vmx 檔案以開啟包含各項選項的快顯選單)。 將選取的 VMX 檔案儲存至您的電腦中。
- 編輯您已下載的 VMX 檔案( Windows-VM.vmx 在本例中)。您可以使用您偏好的文字編輯器。 儘管克隆的虛擬機器是完全相同的虛擬機器,但在 VMware vSphere 中,某些設定(例如虛擬機器名稱)必須針對每台虛擬機器設定為不同的值,以便於管理並能識別各台虛擬機器。
- 找到以
displayName開頭的那一行。變更虛擬機器克隆名稱,該名稱目前與原始虛擬機器的名稱相同。我們將虛擬機器名稱從
displayName = "Windows-VM"變更為
displayName = "Win-VM-Clone"
顯示的虛擬機器名稱將與儲存虛擬機器克隆檔案的目錄名稱相同。
Optional:您也可以在資料存放區瀏覽器中重新命名虛擬磁碟( Windows-VM.vmdk ),並在 . vmx 設定檔的相應行中修改數值,以確保虛擬磁碟名稱具有唯一性(例如, Win-VM-Clone.vmdk ,以本例而言)。 - 將版本更新後的 VMX 檔案上傳至虛擬機器克隆檔案的位置(如同先前一樣,使用資料存放區瀏覽器)。我們選取
datastore10c/Win-VM-Clone/目錄,並點擊Upload(在瀏覽器視窗中選取您已編輯的相應 VMX 檔案)。
- 現在,已版本化的 VMX 檔案位於虛擬機器克隆的位置中(以本例而言,路徑為: Win-VM-Clone 在 datatore10c )。您可以關閉資料存放區瀏覽器。

注意: 若要將虛擬機器克隆至另一台 ESXi 主機,請先將虛擬機器配置檔和虛擬磁碟檔案下載至您的電腦,然後將這些檔案上傳至目標 ESXi 主機的資料存放區。 您也可以使用 SCP / SFTP 客戶端(例如 Windows 中的 WinSCP)從資料存放區下載或上傳檔案。
- 複製完虛擬機器檔案後,我們需要在 ESXi 主機上註冊虛擬機器克隆。請前往
Virtual Machines(位於”導覽窗格”中),並點擊Create / Register VM。
- 此時將開啟 “新增虛擬機器” 精靈。
Select creation type.選取Register an existing virtual machine並按下Next。
Select VMs for registration.點選Select one or more virtual machines, a datastore or a directory。
- 在開啟的 “資料儲存庫瀏覽器” 視窗中,選取位於虛擬機器克隆目錄內的 VMX 檔案,然後點選
Select。
- 請確保在精靈的第二步驟中已選取所需的 VMX 檔案,並按下
Next。
- 在
Finish“準備完成” 畫面中,點選 。
- 虛擬機器克隆現已註冊為虛擬機器,並顯示在虛擬機器清單中。 您隨時可以在 VMware Host Client 的網頁介面中重新命名虛擬機器克隆。請右鍵點擊虛擬機器名稱,並在彈出的選單中點選”
Rename“。
- 現在,您可以啟動該虛擬機器克隆。啟動虛擬機器後,您應會看到如螢幕截圖所示的提示訊息。
請選擇”
I Copied It“(非已移動)。此步驟對於為虛擬機器設定新的 MAC 位址和通用唯一識別碼 (UUID) 至關重要。 請注意,您可能需要在來賓作業系統中變更虛擬機器名稱以及 SID (適用於 Windows 虛擬機器),以避免發生衝突。 點擊Answer。
虛擬機器已成功在 ESXi 主機上克隆。
方法 2:如何在 ESXi 命令列中克隆虛擬機器
另一種在不使用 vCenter Server 的情況下於 ESXi 主機上克隆虛擬機器的方法,是使用 ESXi 命令列。您可以透過 ESXi 伺服器上的 ESXi 殼層直接存取 ESXi 命令列,或透過 SSH 遠端連線至 ESXi 伺服器。 請確保已啟用 SSH 存取權限。
若要在命令列中不透過 vCenter 建立 VMware 克隆虛擬機器:
- 使用 SSH 客戶端連線至 ESXi 伺服器。若您使用 Windows,可使用 PuTTY。
查看此 ESXi 主機上已註冊的虛擬機器清單(我們將克隆同一台 Windows-VM ,也就是前一個範例中的原始虛擬機器)。
vim-cmd vmsvc/getallvms - 我們需要關閉欲克隆的原始虛擬機器。
取得虛擬機器的 ID(VMID),以識別要關閉的虛擬機器。
vim-cmd vmsvc/getallvms我們的 Windows-VM 的 VMID 為 1(參見下方螢幕截圖)。
- 關閉虛擬機器的命令如下:
vim-cmd vmsvc/power.shutdown VMID我們使用此命令來關閉我們的 Windows-VM :
vim-cmd vmsvc/power.shutdown 1 - 檢查虛擬機器電源狀態的命令:
vim-cmd vmsvc/power.getstate VMID若虛擬機器無法關機,您可以使用以下關機指令:
vim-cmd vmsvc/power.off VMID - 請確認此虛擬機器的設定檔位置:
cat /etc/vmware/hostd/vmInventory.xml |grep -i Windows-VM | grep vmx或
vim-cmd vmsvc/getallvms |grep -i Windows-VM - 您還需了解此虛擬機器的虛擬磁碟存放位置(
.vmdk及-flat.vmdk檔案)。預設情況下,虛擬磁碟會與虛擬機器設定檔一同儲存於虛擬機器目錄中(.vmx)。
如需檢查當前虛擬機器的虛擬磁碟位置,請開啟 vmx 虛擬機器組態檔案:
less /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx如果虛擬磁碟存儲在相同的目錄(如我們的第一個且唯一的虛擬磁碟),則您應看到如下所示的條目:
ide0:0.present = "TRUE"ide0:0.fileName = "Windows-VM.vmdk"如果有虛擬磁碟(例如,第二個虛擬磁碟)不存儲在虛擬機器目錄中,您應看到如下所示的條目:
scsi0:1.present = "true"scsi0:1.fileName = "/vmfs/volumes/609a545a-50d29185-ffbb-000c293004f2/directory2/SecondHardDisk.vmdk"如果虛擬磁碟存儲在虛擬機器目錄之外,則會在相應的 vmx 組態檔案中的合適行看到定義的完整路徑。
現在,我們知道了虛擬機器檔案的位置,可以繼續克隆虛擬機器。 我們將此 ESXi 克隆虛擬機器存儲在 資料存儲10c 上。
- 建立一個目錄以存儲虛擬機器克隆的檔案:
mkdir /vmfs/volumes/datastore10c/Win-VM-Clone2 - 克隆來源虛擬機器的組態檔案和虛擬磁碟,並將虛擬磁碟克隆存儲在虛擬機器克隆的目的地目錄中。 我們為目的地 vmx 和 vmdk 檔案設置新名稱以匹配新虛擬機器克隆的名稱。
- 您可以使用
vmkfstools克隆虛擬磁碟。 此工具允許您設置目的地虛擬磁碟格式,也可以將厚置備格式更改為 精簡配置:vmkfstools -i /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmdk /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2.vmdk -d thin - 複製虛擬機器組態檔案 (.vmx)
cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2.vmx
- 或者,您可以使用
.vmdk指令直接複製虛擬磁碟檔案(-flat.vmdk和cp),並為目的地檔案設定新名稱。cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmdk /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2.vmdkcp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM-flat.vmdk /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2-flat.vmdk
- 您可以使用
- 現在,我們需要編輯虛擬機器克隆的 vmx 檔案,以對齊虛擬機器名稱與虛擬磁碟/虛擬磁碟名稱的路徑。 因此,我們需要將
Windows-VM替換為Win-VM-Clone2,在虛擬機器克隆的 vmx 組態檔案中。使用 vi 文本編輯器離開虛擬機器克隆的 vmx 檔案。 在 vi 中使用以下指令在整個檔案中尋找並替換字串。
:[range]s/{pattern}/{string}/[flags] [count]我們場景的指令模板為:
:%s/foo/bar/g在我們的情況下,指令應如下所示:
:%s/Windows-VM/Win-VM-Clone2/g儲存虛擬機器克隆的
vmx檔案。 在 vi 中鍵入:wq並按 Enter 鍵。 - 在 ESXi 主機上註冊虛擬機器克隆:
vim-cmd solo/registervm /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2.vmx - 取得已註冊虛擬機器 (VM) 的相關資訊,以確認
cloned virtual machine已成功註冊:vim-cmd vmsvc/getallvms - 該虛擬機器克隆已成功註冊(VMID 為 3,如下方螢幕截圖所示)。
- 現在您可以啟動該虛擬機器克隆。若要在命令列中啟動此虛擬機器克隆(VMID 為 3 的虛擬機器),請使用以下命令:
vim-cmd vmsvc/power.on 3
- 您應開啟 VMware Host Client 並確認已複製此虛擬機器。 在您回答此問題之前,虛擬機器不會啟動。

- 如螢幕截圖所示,由於我們將原始虛擬磁碟從厚配置克隆為薄配置格式,因此虛擬機器的大小較小(2.76 GB 對比 6 GB)。

ESXi 克隆虛擬機器的建立已成功完成。您也可以使用此方法,在不使用 vCenter Server 的情況下,將虛擬機器克隆到另一台獨立的 ESXi 主機上。 您需要使用 SCP 或 SFTP 客戶端,將虛擬機器檔案從一個 ESXi 主機複製到另一個 ESXi 主機,或反之。此方法的其餘操作邏輯保持不變。
方法 3:如何透過建立新虛擬機器,在不使用 vCenter 的情況下克隆虛擬機器
還有另一種方法,可透過 VMware Host Client 在 ESXi 主機上克隆虛擬機器,無需使用 vCenter Server。 此方法的優點在於無需編輯虛擬機器克隆本的 VMX 檔案。在建立虛擬機器克隆本時,請確保新虛擬機器的設定與原始虛擬機器的設定完全相同。若新虛擬機器的設定與原始虛擬機器不同,則新虛擬機器將無法啟動。
- 完成 “新增虛擬機器” 精靈的 5 個步驟,以建立新的虛擬機器。
- 將來源虛擬機器的虛擬磁碟複製到虛擬機器克隆的 VM 目錄中。您可以在 VMware Host Client 的資料存放區瀏覽器中執行此操作,方法與第一個範例(虛擬機器克隆方法)中的操作類似。
- 點擊
Storage並選取存放來源虛擬機器的資料存放區(以本例而言為 datastore10a )。 點擊Datastore browser並選擇來源虛擬機器的目錄(本例中為 Windows-VM )。選取vmdk虛擬磁碟,然後點擊Copy。
- 在隨後開啟的視窗中選取目標目錄(本例中為 Win-VM-Clone3 ),並點擊
Copy。
- 若您的來源虛擬機器有多個虛擬磁碟,請以相同方式將它們全部複製。 若需更方便地管理,您可以選擇將儲存於虛擬機器克隆目錄中的虛擬磁碟副本重新命名為唯一名稱。
- 編輯虛擬機器克隆的設定。從
Virtual machines前往Navigator頁面,右鍵點擊將作為虛擬機器克隆的新虛擬機器,並在彈出的選單中點擊Edit Settings。
- 刪除隨新虛擬機器一併建立的虛擬硬碟。 在
X虛擬機器設定Hard disk 1視窗的 “虛擬硬體” 分頁中,點擊 行旁的 圖示。
- 勾選
Delete files from datastore核取方塊以確認刪除虛擬磁碟。 - 點擊
Save。
- 再次開啟虛擬機器設定。
- 將從原始虛擬機器複製的虛擬磁碟新增至虛擬機器克隆目錄。
點擊
Add Hard Disk>Existing hard disk。
- 選擇您先前已複製至虛擬機器克隆目錄的 vmdk 虛擬磁碟。 我們在 datastore10c 上的 Win-VM-Clone 目錄中,選取 Windows-VM.vmdk 。

- 若原始虛擬機器有多個虛擬硬碟,請將它們全數新增至虛擬機器設定中。新增虛擬硬碟後,請點擊
Save以儲存虛擬機器設定。
- 虛擬硬碟已新增至我們的虛擬機器設定中。
- 開啟虛擬機器克隆本的電源。
- 由於我們是將此虛擬機器建立為新虛擬機器,因此不會出現詢問(該虛擬機器是複製還是移動)的訊息。

方法 4:透過 vCenter 克隆 VMware 虛擬機器
VMware vCenter Server 作為 VMware vSphere 的集中式管理系統,提供了一種直觀的虛擬機器克隆方式,這比不使用 vCenter 進行虛擬機器克隆更為方便。 您可以將虛擬機器克隆至同一台 ESXi 主機,或克隆至另一台由 vCenter 管理的 ESXi 主機。
若要在 VMware vSphere Client 中使用 vCenter 建立克隆的虛擬機器,請執行以下步驟:
- 登入 VMware vSphere Client 以存取 vCenter 的管理網頁介面。
- 選取”
Hosts and Clusters“檢視,並在” “導覽窗格中選取您的虛擬機器。 我們將克隆名為” “的 Windows-VM 虛擬機器, 該虛擬機器位於 ESXi 主機 192.168.101.201 上。 - 右鍵點擊原始虛擬機器,並在彈出的選單中點選”
Clone>Clone to Virtual Machine“。
- ” “克隆現有虛擬機器 精靈將開啟,並包含 5 個步驟。
Select a name and folder。 輸入虛擬機器克隆的名稱。我們在此範例中使用: 、Win-VM-Clone4、 。選擇要放置克隆虛擬機器的資料中心和虛擬機器資料夾。在精靈的每個步驟中,點擊”Next“以繼續。
Select a compute resource。選擇必須執行虛擬機器克隆的 ESXi 主機,或 vSphere 叢集 。在此範例中,此主機為 ESXi 主機 192.168.101.201 。 您可以選擇另一台 ESXi 主機來執行虛擬機器克隆,但此主機不應與原始虛擬機器所在的主機相同。
Select storage。選擇要放置克隆虛擬機器的資料存放區(我們選擇 datastore10c )。 透過以下選項之一選擇虛擬磁碟格式:- 與來源相同格式
- 厚式配置(延遲清零)
- 厚式配置(即時清零)
- 薄式配置
您亦可選取虛擬機器儲存政策。

Select clone options。您可使用若干選項自訂克隆虛擬機器,包括在客體作業系統中變更主機名稱。
Ready to complete。檢查克隆虛擬機器的選取參數,然後點擊Finish。
注意: 虛擬機器克隆體若具有相同的 SID,可能會導致問題,特別當該虛擬機器位於 Active Directory 網域中時。您可能需要使用 Windows 的 SYSPREP 或第三方工具來變更/重設 SID。若虛擬機器上已安裝 MS SQL Server,您需要針對 MS SQL Server 執行額外的克隆前(啟用 sysadmin SQL 帳戶)及克隆後(變更名稱)操作,以避免問題。
克隆虛擬機器已建立完成,您可以開啟該虛擬機器的電源。

方法 5:使用 NAKIVO Backup & Replication 建立克隆虛擬機器
虛擬機器複製是於 VMware ESXi 主機上克隆虛擬機器的另一種方式。虛擬機器複本是虛擬機器的精確副本,類似於虛擬機器克隆。虛擬機器複製的優勢在於能夠自動化虛擬機器流程,並利用採用虛擬機器快照功能的解決方案,在虛擬機器複本中儲存多個時間點的虛擬機器狀態。
NAKIVO Backup & Replication 是一套強大的資料保護解決方案,支援 VMware vSphere 虛擬機器的備份與複製。因此,您可以在任何 ESXi 主機或叢集上建立虛擬機器的克隆本(複本)。
使用 NAKIVO 建立虛擬機器克隆本的優勢在於,即使這些主機並非由 vCenter 管理,您仍可將虛擬機器從一台 ESXi 主機克隆到另一台。 您可以將 vCenter(包括所有受管理的 ESXi 主機)新增至清單中,或新增多個獨立的 ESXi 主機。 設定作業是在一個使用者友善的介面中進行。
使用 NAKIVO 解決方案的其他優勢包括:能夠自動化複製及從備份進行複製、靈活的排程與保留選項、符合最嚴格 RPO 的即時複製,以及 站點還原用於災難復原(DR)的編排管理。
若要透過虛擬機器複製功能來克隆虛擬機器,請執行以下步驟:
- 請前往
Settings>Inventory,並點擊+以將項目新增至 NAKIVO 解決方案。 您也可以點擊清單中顯示的 ESXi 主機或 vCenter,以檢視位於該資源上的虛擬機器。
- 請前往
Jobs >+>VMware vSphere replication job建立新的 VMware vSphere 複製工作。
” New R eplication J ob W izard for VMware vSphere ” 將開啟並包含 7 個步驟。
Source。選擇您要複製的原始虛擬機器。 我們選取 Windows 虛擬機器 位於 ESXi 主機 192.168.101.201 。在精靈的每個步驟中,點擊Next以繼續。
Destination。選取一個容器(可以是 ESXi 主機或由 vCenter 管理的叢集),用以儲存虛擬機器複本(此資源必須已新增至 NAKIVO 清單中)。 選擇一個資料存放區。您可以選擇連接至所選 ESXi 主機或叢集的資料存放區。如有需要,請在所選資源上選擇一個虛擬機器資料夾。
Networks。虛擬機器複本(ESXi 克隆虛擬機器)應連接至 虛擬機器網路。您可以將虛擬機器複本連接至所選 ESXi 主機或叢集上的任何可用網路。此功能性是透過網路對應功能實現的,當您將虛擬機器複製到其他 ESXi 主機時,此功能性特別有用。 此外,您也可以跳過此選項,將虛擬機器連接到預設網路。
Re-IP。若您使用網路對應,並將虛擬機器連接到與來源網路不同的網路,下一步需在虛擬機器網路介面的設定中變更 IP 位址,使其符合目標子網的位址配置。 使用” Re-IP “特點時,完成複製後無需手動編輯來賓作業系統內的網路設定。
Schedule。您可以手動(即按需)執行虛擬機器複製,或排程虛擬機器複製工作,以在固定間隔建立克隆虛擬機器(複製本)。
Retention。 您可以透過設定” 保留設定“來建立多個還原點,並將其保留適當的時間。
Options。輸入複製工作名稱,並設定可提升虛擬機器複製速度、安全性與可靠性的工作選項。 點擊Finish & Run以儲存工作設定,並執行虛擬機器複製工作,藉此方法建立 VMware 虛擬機器克隆。
- 系統將重新導向至 的”工作” 頁面,您可在該處監控複製工作的進度。請等待工作完成。

如您所見,使用 NAKIVO 解決方案建立虛擬機器克隆非常簡單。此外,NAKIVO Backup & Replication 支援 VMware 虛擬機器(VM)的即時複製 ,可針對需要低至 1 秒嚴格 RPO 的關鍵虛擬機器進行災難還原。