virtualbox虚拟机磁盘扩容需分两步:先用vboxmanage命令或图形界面扩大虚拟磁盘文件容量,再在客户机中用gparted或fdisk+resize2fs/xfs_growfs扩展分区和文件系统。

如果您在VirtualBox中运行的虚拟机磁盘空间已耗尽,而原始虚拟磁盘文件(如 .vdi 或 .vmdk)容量固定,则需要对虚拟磁盘进行扩容操作。以下是针对不同场景的多种扩容方法:
一、使用VBoxManage命令扩容VDI/VMDK磁盘
该方法直接修改虚拟磁盘文件容量,适用于动态分配与固定大小磁盘,但要求虚拟机已完全关闭,且目标磁盘格式支持原生命令调整(VDI原生支持,VMDK需先转换)。
1、以管理员身份打开命令提示符(Windows)或终端(Linux/macOS)。
2、执行扩容命令,单位为MB:
Windows示例:"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifymedium disk "D:\VMs\Ubuntu.vdi" --resize 61440
3、Linux/macOS示例:VBoxManage modifymedium disk "/home/user/VMs/Ubuntu.vdi" --resize 61440
4、运行 VBoxManage showhdinfo "路径.vdi" 验证新容量是否生效。
二、VMDK转VDI后再扩容
VMDK格式不支持VBoxManage直接resize,必须先转换为VDI格式,才能执行后续扩容操作,此步骤可规避格式限制并提升操作稳定性。
1、确认源VMDK文件完整路径,例如:"D:\VMs\CentOS\CentOS.vmdk"
2、执行克隆转换命令:"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonemedium disk "D:\VMs\CentOS\CentOS.vmdk" "D:\VMs\CentOS\CentOS_converted.vdi" --format VDI
3、等待转换完成(大文件可能需数分钟至数十分钟)。
4、在VirtualBox管理器中移除原VMDK硬盘,添加新生成的VDI文件,并设为控制器主盘。
三、通过VirtualBox图形界面调整VDI磁盘大小
部分新版VirtualBox(6.1.38+)在“虚拟介质管理器”中提供可视化滑块调节功能,适合不熟悉命令行的用户,但仅限VDI格式且需确保无快照依赖链。
1、打开VirtualBox → 文件 → 虚拟介质管理器。
2、在左侧列表中选中目标VDI磁盘文件。
3、点击右侧“属性”按钮,在弹出窗口中找到“大小”字段。
4、拖动滑块或手动输入目标值(如50000表示50GB),点击“确定”保存。
5、检查状态栏是否显示“已成功修改磁盘大小”提示。
四、使用GParted Live ISO扩展分区与文件系统
虚拟磁盘扩容后,客户机操作系统内仍显示旧分区大小;需借助GParted Live环境操作未分配空间,安全合并至根分区,适用于ext4/xfs等主流文件系统。
1、下载官方GParted Live ISO(gparted-live-*.iso),挂载到虚拟机光驱。
2、在虚拟机设置→系统→主板中,将光驱设为第一启动项,保存后启动。
3、进入GParted图形界面,选择对应磁盘(如/dev/sda)。
4、右键点击根分区(如/dev/sda1),选择“Resize/Move”。
5、拖动右侧滑块至最右端,使分区覆盖全部未分配空间,点击左上角绿色勾号提交操作。
五、命令行方式扩展分区(fdisk + resize2fs/xfs_growfs)
适用于无图形界面的服务器虚拟机,通过fdisk重建末尾分区表后,调用文件系统专用工具扩展逻辑容量,全程无需重启内核。
1、运行 lsblk 确认磁盘设备名(如/dev/sda)及当前分区布局。
2、执行 sudo fdisk /dev/sda,依次输入:
p(查看起始扇区,记下/dev/sda2的Start值)
d(删除原分区)
n(新建主分区)
2(分区号)
[回车](默认起始扇区,必须与原值一致)
[回车](默认结束扇区,即最大可用)
w(写入)
3、运行 sudo partprobe /dev/sda 通知内核重读分区表。
4、根据文件系统类型执行扩展:
ext4: sudo resize2fs /dev/sda2
xfs: sudo xfs_growfs /











