有时我们在使用Virtualbox虚拟机时,分配给虚拟机的磁盘空间太小,导致后期需要扩容,通过以下方法可以扩展磁盘空间。

增强虚拟磁盘空间容量(VDI)

扩展前最好把所有快照删除掉!

方法一:扩展磁盘空间

打开Virtualbox所在的安装目录,执行以下命令,命令中的虚拟有磁盘路径改成自己的:

//查看虚拟磁盘空间信息,确认确实是需要扩容的虚拟硬盘。
VBoxManage showhdinfo "H:\VirtualBox VMs\Ubuntu_14.04\Ubuntu_14.04.vdi"
//计算出要扩容的空间大小,我这里是要扩展到100G(1024*1024*1024*100)。
set /a 1024*100
//扩展虚拟硬盘空间,必须是动态分配模式的硬盘不能是固定大小模式的,最后的数字替换成上面计算出的硬盘空间大小。
VBoxManage modifymedium --resize 102400 "H:\VirtualBox VMs\Ubuntu_14.04\Ubuntu_14.04.vdi"

执行示例:

virtualbox centos 修改虚拟机硬盘大小 virtualbox虚拟机磁盘扩容_vdi

方法二:克隆虚拟硬盘

//创建个100G的虚拟硬盘
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename Ubuntu.vdi --size 102400
//克隆已有虚拟硬盘
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd "H:\VirtualBox VMs\Ubuntu_14.04\Ubuntu_14.04.vdi" Ubuntu.vdi --existing
//有快照时有选则Snapshots\{xxxxx.vdi},即选择当前使用的快照,一般是文件大小最大的那个。

方法二成功后将Virtualbox中的操作系统的虚拟硬盘替换即可。

增强虚拟磁盘空间容量(VMDK)

vmdk格式的虚拟硬盘使用如下方法:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd "source.vmdk" "cloned.vdi" --format vdi
//扩展到120G
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd cloned.vdi --resize 1228800
//转换回原格式
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd cloned.vdi "mac13.vmdk" --format vmdk

扩容Virtualbox中操作系统硬盘大小

Ubuntu

  1. 通过gparted软件扩大硬盘容量
    使用安装Ubuntu时的系统镜像进入"Try Ubuntu"菜单,打开gparted:

virtualbox centos 修改虚拟机硬盘大小 virtualbox虚拟机磁盘扩容_虚拟硬盘_02


先"swap off"关闭交换空间,然后删除linux-swap,删除extended。然后选择需要调整的盘执行"Resize/Move"命令,调整到需要的大小,同样留下4GB的空间再新建回extended与linux-swap,完成后点对勾应用更改,Partition节下会恢复原来的分区标识,修改完毕再正常进入系统即可。

Mac

首先打开Terminal列出所有硬盘与硬盘分区,明确要扩容的盘符。

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *128.8 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Mac OS                            84.0 GB    disk0s2
   3:                 Apple_Boot                         639.3 MB   disk0s4

比如上图硬盘被扩展后显示128G大小,原来是将近85G,那我们已被扩容的硬盘就是disk0,要使扩容生效的分区是disk0s2
接下来依次执行如下命令:

//先执行错误修复
diskutil repairDisk disk0,可能有什么Recovery分区会报错,不会有大影响。
//扩容,容量是总容量-其它分区,如扩展到127GB
diskutil resizeVolume disk0s2 127GB

修复完成。

如果以后再要缩小磁盘空间的话就要把disk0s2调小,之后使用clonehd命令将原磁盘内容复制过来。

Windows

打开磁盘管理进行操作即可。