VirtualBox 是一个免费的虚拟化产品, 可以用来构建虚拟机
它可以运行各大平台(Mac/Linux/OS) 上, 可以支持现有的绝大部分系统
VirtualBox 的构建的虚拟机一旦构建完毕, 磁盘的配置就几乎不能更改了, 至少从其界面并没有看到任何可以更改的操作
但是并不是没有办法, VirtualBox 安装完成之后, 同时还集成安装了 VirtualBox 的一些工具命令
比如 VBoxManage, 我们今天用它来解决调整 virtualbox 虚拟机磁盘大小这个问题
# 假设我们已经进来, VirtualBox 具体镜像文件夹下的目录内容如下
$ ls
Logs docker_default_1462932932793_38985.vbox
Snapshots docker_default_1462932932793_38985.vbox-prev
box-disk1.vmdk
$ VBoxManage showhdinfo box-disk1.vmd
UUID: 6f5838ee-4319-4885-8eea-6276c9fbbe37
Parent UUID: base
State: locked write
Type: normal (base)
Location: /Users/Luo/VirtualBox VMs/docker_default_1462932932793_38985/box-disk1.vmdk
Storage format: VMDK
Format variant: dynamic default
Capacity: 40960 MBytes
Size on disk: 2795 MBytes
Encryption: disabled
In use by VMs: docker_default_1462932932793_38985 (UUID: 76746809-f711-4936-915c-49e27195d4f7) 可以看到 old UUID : `6f5838ee-4319-4885-8eea-6276c9fbbe37`
$ VBoxManage clonehd box-disk1.vmdk new-disk1.vdi --format vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'vdi'. UUID: af5fbd4d-b4f9-4392-b78d-00822b3c32ca
$ VBoxManage modifyhd new-disk.vdi --resize 51200
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
$ VBoxManage clonehd new-disk.vdi resized-disk.vmdk --format vmdk
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'vmdk'. UUID: 362b43f9-f562-49c9-8218-1235be0d16a7 记下 new UUID : `362b43f9-f562-49c9-8218-1235be0d16a7`
使用 new UUID 替换所有的 old UUID
使用 resized-disk.vmdk 替换所有的 box-disk1.vmdk
至此, 虚拟机的磁盘大小已经从 40G 调整到 50G
(以前的 box-disk1.vmdk 和 中间生成的 new-disk1.vdi 文件你可以清除掉了)