如何增加 VMware 中的虛擬機磁盤大小
虛擬機的主要優點是可以在需要時靈活地向虛擬機分配額外資源。如果虛擬硬盤上的可用空間不足,您可以快速輕鬆地擴展它。本文介紹如何在 VMware ESXi 中調整虛擬機磁盤大小,然後在 Windows 或 Ubuntu 客戶機操作系統中擴展分區,而無需停止或重新啟動虛擬機。
內容:
在增加 VMware 虛擬機硬盤的大小時,需要考慮一些限制:
- 如果虛擬機有快照,則無法增加磁盤。必須刪除所有快照;
- 僅通過虛擬SCSI或NVMe控制器連接的磁盤可以在線擴展(如果虛擬磁盤通過IDE控制器連接,則必須先關閉虛擬機);
- 鏈接克隆虛擬機(在 Vmware Horizont 上)不支持擴展選項;
- 如果您在虛擬機面板中看到警告“
Virtual Machine disks consolidation is needed',需要整合VM磁盤; - 僅當客戶操作系統中安裝了 VMware Tools 時,才可以在線擴展虛擬機磁盤(無需關閉虛擬機)。如果未安裝VMTools,更改虛擬磁盤大小後會出現錯誤:
Operation failed Task name Reconfigure virtual machine The attempted operation cannot be performed in the current state (Powered on).

增加虛擬機磁盤大小的過程需要兩個步驟:
- 首先,您需要在vCenter/ESXi上的虛擬機設置中增加VMDK文件大小;
- 然後在來賓操作系統中擴展磁盤分區(我們將分別了解如何在 Windows 和 Linux 上擴展硬盤驅動器)。
增加 VMware 中 VM 磁盤 (VMDK) 的大小
例如,您有一台虛擬機,其單個虛擬硬盤文件 (vmdk) 為 40GB,並且您計劃將此虛擬磁盤大小增加到 50GB。
- 使用 vSphere Web Client 連接到您的 vCenter 服務器或獨立 ESXi 主機;
- 找到虛擬機並打開其設置(行動->編輯設置);


- 找到您要擴展的虛擬磁盤。在此示例中,VM 只有一個硬盤1大小為 40 GB。在此字段中指定新的磁盤大小並保存設置。請注意,此類數據存儲(VMFS、NFS、vSAN)可用的最大磁盤大小在“最大大小”字段中指定;


確保您的 VMFS 數據存儲有足夠的可用空間。如果需要,您可以增加 VMWare ESXi/vCenter 中 VMFS 數據存儲的大小。
您還可以使用 VMware PowerCLI 模塊 cmdlet 來增加虛擬機 VMDK 磁盤的大小。在 Windows 或 Linux 計算機上安裝 PowerCLI 模塊:
Install-Module -Name VMware.PowerCLI
連接到您的 vCenter 服務器或 ESXi 主機:
Connect-VIServer hostname
執行以下命令,擴容虛擬磁盤:
Get-HardDisk VMTest1 | where {$_.Name -eq "hard disk 1"} | Set-HardDisk -CapacityGB 50 -ResizeGuestPartition -Confirm:$false


然後您可以使用調用VMScript用於擴展來賓操作系統中的分區的 cmdlet:
Invoke-VMScript -VM VMTest1 -ScriptText "echo select vol c > c:diskpart.txt && echo extend >> c:diskpart.txt && diskpart.exe /s c:diskpart.txt" -GuestUser $guestUser -GuestPassword $guestPass -ScriptType BAT
之前,我們展示瞭如何使用 Invoke-VMScript 在 VMware VM 模板中自動安裝 Windows 更新的示例。
完成後,不要忘記終止 PowerShell 管理會話:
Disconnect-VIserver -Confirm:$false
現在您已經在 VMware 控制台中增加了虛擬磁盤大小,您需要在來賓操作系統中擴展分區
在 Windows 虛擬機中擴展分區
您必須啟動磁盤管理控制台(計算機管理->存儲->磁盤管理)並運行重新掃描磁盤命令來賓 Windows 操作系統查看額外空間。


接下來,選擇要擴展的分區,然後單擊擴大音量。

指定要添加到選定 Windows 分區的未分配空間量(在字段中)選擇空間量(以 MB 為單位))。


現在單擊“下一步”->“完成”並檢查您的 C 盤是否已成功擴展。


擴展系統分區(C: 驅動器)時,您可能會發現其後面是 Windows 恢復環境分區,而不是未分配的空間。在這種情況下,擴展卷選項在磁盤管理器中將不可用(灰顯)。

在這種情況下,您將無法擴展 C: 驅動器,除非您刪除恢復分區或將其移動到驅動器的末尾。我們在文章“擴展卷選項在 Windows 中呈灰色顯示”中描述了此過程。
Windows XP和Windows Server 2003不支持系統C:卷的在線擴展。你可以用戴爾的外部部分無需重新啟動即可擴展系統分區的工具。
要在 Windows 2003/XP 中擴展系統分區,請將該工具複製到來賓操作系統並使用以下參數運行它:
extpart.exe c: 1020
, 在哪裡丙:是您要擴展的捲的名稱,並且1020是您想要擴展磁盤的大小(以 MB 為單位)。


您還可以通過其他方式擴展離線VM磁盤分區:
- 從任何 LiveCD(例如 GParted)啟動虛擬機,並增加分區;
- 將虛擬 VMDK 文件連接到另一台虛擬機並擴展該計算機上的分區;
- 使用 VMware vCenter Converter 工具重新配置卷大小。
如何在Linux虛擬機中擴展分區?
現在讓我們看看如果您的虛擬機中安裝了 Linux 系列來賓操作系統,如何擴展磁盤分區。
首先要做的是確保 Linux 看到新的磁盤大小。要開始重新掃描,請運行以下命令:
$ echo 1>/sys/class/block/sdd/device/rescan
使用cfdisk工具顯示可用的虛擬硬盤空間:
$ sudo cfdisk
此示例顯示 /dev/sda 驅動器有 2 GB 的可用空間。選擇要擴展的分區(本例中為 /dev/sda3)並選擇調整大小從底部菜單。


然後點擊寫將更改應用到分區。


就我而言,我需要在 Ubuntu 22.04 LTS 虛擬機中擴展分區。默認情況下,此版本的 Ubuntu 安裝在 LVM 卷上:
$ sudo lsblk


在擴展 LVM 卷之前,您需要增加物理卷 (PV):
$ sudo pvresize /dev/sda3
完成後,您可以擴展邏輯卷(我們將使用所有可用的可用空間):
閱讀更多:忘記在 VMware Player 中運行的虛擬機的 Windows 密碼
$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv


下一步是擴展文件系統:
$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
檢查 Linux 中的可用磁盤空間:
$ df -h


如果沒有LVM卷,可以使用parted工具在Linux中擴展分區:
$ sudo parted
讓我們檢查一下磁盤上有多少未分配空間:
print free
如您所見,可用空間 = 2149MB


要擴展 /dev/sda3 分區,請運行:
resizepart 3
指定新的分區大小(在本例中,我們需要指定結尾尺寸從自由空間堵塞):
結尾? [21.5GB]?23.6G


然後退出parted:
quit
剩下的就是擴展 ext4/3/2 文件系統。
$ sudo resize2fs /dev/sda3
本文介紹如何在具有 Windows 和 Linux 客戶機操作系統的 VMware vSphere 環境中增加虛擬硬盤的大小。在另一篇文章中,我們解釋瞭如何減少(縮小)VMware 上的虛擬硬盤的大小。
