VirtualBox 虚拟机磁盘扩容完整手册
摘要
VirtualBox虚拟机磁盘扩容指南:
1)创建快照备份;
2)关闭虚拟机并扩大虚拟磁盘文件;
3)启动Ubuntu Live系统使用GParted调整分区;
4)移除ISO并恢复硬盘启动;
5)扩展文件系统并验证。适用于ext4文件系统的根分区扩容,需注意:先扩虚拟磁盘再调整分区,推荐使用VDI格式,操作前务必备份。
VirtualBox 虚拟机磁盘扩容完整手册(含目的、检查点、兜底方案)
场景:根分区 /dev/sda5(ext4)位于扩展分区 /dev/sda2 内,右侧有未分配空间,需要并入
/dev/sda5
解决磁盘空间不足问题。
0. 准备与快照
目的:防止扩容过程中出错时数据丢失,可随时回滚。
操作:
GUI:VirtualBox → 选中虚拟机 → 拍摄快照
或命令行:
VBoxManage snapshot "你的VM名" take "Before_Resize"
检查:快照创建完成,无报错。
1. 关闭虚拟机
目的:释放虚拟磁盘占用,允许调整磁盘文件大小。
操作:
GUI:在 VirtualBox 管理器里正常关机虚拟机(不是保存/挂起)
或命令行:
VBoxManage controlvm "你的VM名" poweroff
检查:虚拟机状态为“已关闭 / Powered Off”。
2. 找到虚拟磁盘路径
目的:后续扩容命令需要准确的磁盘文件路径。
操作:
GUI:VirtualBox → 选中虚拟机 → 设置 → 存储 → 选中硬盘,右侧查看并记录路径
或命令行:
VBoxManage showvminfo "你的VM名" | grep -i 'vdi\|vmdk\|vhd'
检查:得到类似 D:\VMs\wzyLinux.vdi
或 /home/user/VMs/wzyLinux.vdi
的完整路径。
兜底方案:
VBoxManage 命令无法识别时:
Windows:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
macOS:
/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
Linux:
which VBoxManage
或sudo find / -name VBoxManage
路径或 VM 名含空格:必须加引号
"..."
。
3. 扩大虚拟磁盘文件
目的:先让虚拟硬盘“容器”变大,后续才能扩分区。
操作:
命令行:
# 查看当前大小 VBoxManage showhdinfo "磁盘路径.vdi" # 扩到 400GB(单位MB) VBoxManage modifymedium "磁盘路径.vdi" --resize 409600 # 再次确认 VBoxManage showhdinfo "磁盘路径.vdi"
或
GUI(部分 VirtualBox 版本支持):文件 → 虚拟介质管理器 → 选中磁盘 → 调整大小滑条 → 确认。
检查:磁盘大小变为目标值,无报错。
兜底方案:
如果是 VMDK/VHD 无法扩容:先转换为 VDI:
VBoxManage clonemedium disk "源.vmdk" "目标.vdi" --format VDI
有快照链/UUID 冲突:先克隆成新的 VDI 再扩容。
4. 挂载 Ubuntu ISO 并设置光驱启动
目的:进入 Live 系统(Try Ubuntu),避免根分区被占用。
操作:
挂载 ISO
GUI:设置 → 存储 → IDE 控制器 → 加载 Ubuntu ISO
或命令行:
VBoxManage storagectl "你的VM名" --name "IDE" --add ide VBoxManage storageattach "你的VM名" --storagectl "IDE" --port 0 --device 0 --type dvddrive --medium "ISO路径.iso"
设置光驱优先启动
GUI:设置 → 系统 → 主板 → 启动顺序把光驱移到第一位
或命令行:
VBoxManage modifyvm "你的VM名" --boot1 dvd --boot2 disk
检查:启动顺序中光驱在第一位,ISO 路径正确。
5. 启动 Try Ubuntu 模式
目的:进入一个不挂载虚拟机磁盘的临时系统,方便修改分区。
操作:
GUI:启动虚拟机,选择 Try Ubuntu without installing(试用 Ubuntu 而不安装)
或命令行:
VBoxManage startvm "你的VM名" --type gui
启动后选择 Try Ubuntu。
检查:进入 Live 桌面,而不是原系统登录界面。
6. 使用 GParted 调整分区
目的:扩展 /dev/sda2(扩展分区)和 /dev/sda5(逻辑分区)以利用未分配空间。
操作:
启动 GParted
GUI:在应用菜单搜索并打开 GParted
或命令行:
sudo apt update sudo apt install gparted -y sudo gparted
扩展分区:
右键
/dev/sda2
→ Resize/Move → 向右拖动至占满未分配空间 → 确定右键
/dev/sda5
→ Resize/Move → 向右拖动至占满 /dev/sda2 剩余空间 → 确定点击绿色勾(Apply All Operations)执行。
检查:/dev/sda5 大小增加,未分配空间消失。
7. 移除 ISO 并恢复启动顺序
目的:
确保下次启动优先从硬盘启动,避免因光驱在第一位而进入 Live 系统;
避免启动时光驱检查造成延迟。
操作:
移除 ISO
GUI:设置 → 存储 → 光驱 → 移除光盘
或命令行:
VBoxManage storageattach "你的VM名" --storagectl "IDE" --port 0 --device 0 --type dvddrive --medium none
恢复启动顺序为硬盘优先
GUI:设置 → 系统 → 主板 → 启动顺序把硬盘拖到第一位,光驱放第二位
或命令行:
VBoxManage modifyvm "你的VM名" --boot1 disk --boot2 dvd
检查:启动顺序已恢复,光驱中无挂载 ISO。
8. 扩展文件系统
目的:让系统使用新分区的全部空间。
操作(按文件系统类型选择):
ext4:
df -hT /
sudo resize2fs /dev/sda5
df -hT /xfs:
df -hT /
sudo xfs_growfs /
df -hT /
检查:根分区容量增加到目标值。
9. 验证
目的:确认扩容成功且系统正常运行。
操作:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT sudo dmesg | tail -n 50
检查:分区大小正确,无文件系统错误。