vmware-vdiskmanager:擴充現有VMWare虛擬磁碟的容量
使用VMWare建立虛擬機器並用了一陣子之後,可能會發生當初建立的虛擬磁碟容量不足的情況。此時,除了可以新增虛擬磁碟,也能以VMWare提供的,來擴充現有的虛擬磁碟容量。
檔名為vmware-vdiskmanager.exe的虛擬磁碟管理工具,是一支位於VMWare安裝目錄裡的命令列工具;VMWare Server或VMWare Workstation等VMWare都提供這支工具。我使用的是Windows版的VMWare Server,因此本文是以Windows環境及VMWare示範。
vmware-vdiskmanager擴充容量的注意事項
繼續說明之前必須強調,雖然vmware-vdiskmanager可以擴充現有虛擬磁碟的容量,但它其實是以新增分割區的方式,將使用者指定容量的分割區,加入現有的虛擬磁碟。
舉例來說,假設現有的虛擬磁碟有1個8 GB的分割區,若以此法擴充到10 GB,擴充的結果是現有的虛擬磁碟將包含2個分割區:原有的8 GB和新增(擴充)的2 GB。
也就是說,vmware-vdiskmanager無法直接擴充guest系統裡的C磁碟容量。這是使用vmware-vdiskmanager之前必須要有的認知。
這支虛擬磁碟管理工具的功能很多,利用 /? 可看到所有的選項說明;或者可到VMWare網站搜尋VMware Virtual Disk Manager User's Guide,能找到一份PDF的說明文件。
建議的擴充前置作業
循前例,我要利用vmware-vdiskmanager將名為hd1.vmdk的8 GB虛擬磁碟,擴充成10 GB。作法很簡單,但做之前建議:
- 檢查虛擬磁碟的狀況。不見得要在guest系統裡執行磁碟檢查工具(例如Windows內建的chkdsk),也可以利用VMWare的虛擬磁碟掛載工具,將虛擬磁碟掛載到host系統檢查(vmware-mount的用法可參閱vmware-mount:將VMWare虛擬磁碟掛載到主系統)。
- 建議先備份虛擬機器的所有檔案。
- 刪除不必要的snapshot(就算刪除也沒關係,因為上個步驟已經備份了)。
vmware-vdiskmanager的容量擴充指令
循前例的擴充指令如下:
vmware-vdiskmanager -x 10gb hd1.vmdk
- -x:表示要擴充虛擬磁碟容量。
- 10 gb:擴充之後的容量,單位除了gb,也可以用mb、kb。
- hd1.vmdk:欲擴充的虛擬磁碟檔名。
請注意vmware-vdiskmanager工具和虛擬磁碟檔名的路徑,上述指令省略了這些路徑,但必須依據實際狀況加入。以下是本文範例的執行結果擷取圖:
擴充後的處理
執行後檢視VMWare的Virtual Machine Setting,可發現虛擬磁碟的容量已經擴充,但若進入guest系統(安裝的是Windows XP),另以『檔案總管』觀察,會發現硬碟機的容量、數量都沒有改變。如前述,因為擴充的容量是以分割區加入guest系統,因此再以Windows內建的『磁碟管理』觀察,就會發現虛擬磁碟多了一塊2 GB的分割區:
現在有以下選擇:
- 利用其他的工具合併這兩個分割區(VMWare知識庫文件http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1647列舉了一些)。
- 利用Windows內建的『新增磁碟分割精靈』處理這塊新的分割區,但可以指定磁碟代號給新的分割區,或將新的分割區掛在空的NTFS資料夾(這兩種作法請參考Windows XP使用手冊或內建說明)。
其他作法?
能直接擴充而不是以新增分割區的方式擴充虛擬磁碟容量嗎?
我覺得有一個可行的方法,但尚未實作過,僅供各位參考:
- 進入guest系統(可能是以DOS光碟片或磁片開機進入,端視後續的工具而定)。
- 利用磁碟複製工具(例如Symantec Ghost)複製整個磁碟映像。
- 結束guest系統(關機)。
- 新建虛擬機器,並指定擴充後的虛擬磁碟容量。
- 再以步驟1的方式進入新建的guest系統。
- 利用磁碟複製工具將步驟2所建的映像還原到虛擬磁碟。
[Updated]我已實作出上述直接擴充的作法,詳情請參閱直接擴充現有的VMWare虛擬磁碟容量。




4 意見:
擴充虛擬磁碟的步驟我有做過,使用類似最後其他做法的方式:
1. 在虛擬機器中新增一個預擴充後的虛擬磁碟。
2. 使用磁碟複製工具(如 ghost 或 Clonezilla)複製磁碟映像。
3. 修改舊的虛擬機器設定,掛上新的虛擬磁碟後開機即可。
感謝Kirin兄留言指教。
Acronis Disk Director Suite先前嘗試過一種做法:
以vmware-vdiskmanager -x來extend vmdk之後, 對Guest OS而言是這顆磁碟的長度變長了,因此會在磁碟的尾端多出一段未配置空間,這時候開進OS中(或Windows PE), 以Acronis Disk Director Suite來管理磁碟分割區,調整原有分割即可
感謝您的留言。
張貼意見