VirtualBox 虛擬機磁盤空間不足是常見運維痛點。本文詳述在 Linux 宿主機上通過 VBoxManage 命令行工具擴容 VDI 虛擬磁盤的標準化流程,包含磁盤識別、擴容操作、客體系統分區擴展等關鍵環節,助您零數據損失完成擴容。

VBoxManage list hdds
輸出示例:
UUID: e8e2c341-b3b1-49db-ad2d-ab4e6b08bc5a
Location: /home/user/VirtualBox VMs/CentOS-64/CentOS-64.vdi
Capacity: 8192 MBytes (8 GB)
Type: normal (base)
記錄目標磁盤的 UUID 與 Location。
# 語法:VBoxManage modifyhd --resize <目標大小_MB>
VBoxManage modifyhd e8e2c341-b3b1-49db-ad2d-ab4e6b08bc5a --resize 15360
關鍵參數說明:
--resize:單位為 MB,上例將 8GB 擴容至 15GB(15360 MB)
宿主機擴容僅增加虛擬磁盤容量,客體系統(如 CentOS/Ubuntu)仍需手動擴展分區與文件系統:
gparted-live.iso 至虛擬光驅,啟動虛擬機進入 GParted/dev/sda1 或 LVM 物理卷)選擇 Resize/Movepvresize /dev/sdaX → lvextend -l +100%FREE /dev/mapper/vg-root → resize2fs /dev/mapper/vg-root(ext4)或 xfs_growfs /(XFS)# 1. 查看分區表
fdisk -l /dev/sda
# 2. 刪除並重建分區(起始扇區保持不變,結束扇區設為最大)
fdisk /dev/sda
# 依次輸入:d (刪除分區) → n (新建) → p (主分區) → 1 (分區號) → 回車 (默認起始) → 回車 (默認結束) → w (寫入)
# 3. 重啟虛擬機使分區表生效
reboot
# 4. 擴展文件系統
resize2fs /dev/sda1 # ext4
xfs_growfs / # XFS (CentOS 7+ 默認)
| 問題現象 | 原因 | 解決方案 |
|---|---|---|
| 提示 "Cannot resize medium" | 磁盤有快照或為固定大小格式 | 刪除快照或先 clonehd 轉換為動態磁盤 |
| 擴容後客體系統未識別新空間 | 未重啟或分區表未更新 | 執行 partprobe 或 reboot 刷新內核分區表 |
| LVM 擴容失敗 | 物理卷未擴展或邏輯卷路徑錯誤 | 依次 pvresize → lvextend → resize2fs/xfs_growfs |
VirtualBox 磁盤擴容遵循「宿主機擴容虛擬磁盤 → 客體系統擴展分區 → 客體系統擴展文件系統」三步走原則。操作前務必備份,生產環境建議維護窗口期執行。掌握 VBoxManage modifyhd --resize 與客體分區工具(fdisk/GParted/LVM)組合拳,讓磁盤擴容不再是難題。