虚拟机使用久了就会发现虚拟硬盘愈来愈大,可是进入虚拟机里的系统用命令看了下,实际占用的空间远没有虚拟硬盘大小那么大,这个让人很不爽,并且在分享虚拟机镜像的时候也很不方便。VirtualBox彷佛没有提供图形界面的方式可让咱们来压缩虚拟硬盘大小,可是能够经过命令行来实现。通过实际测试,个人一个30多G的虚拟硬盘能够压缩到13G大小,可见效果仍是很是显著的,这个能够压缩的空间取决于你虚拟机内真实的空间占用大小。shell
VirtualBox同时支持本身的虚拟硬盘格式VDI和Vmware的VMDK格式,两种格式的压缩略有不一样。ui
第一步要作的是碎片整理,打开虚拟机,执行下面的命令:spa
Linux系统:.net
1
2
|
sudo
dd
if
=
/dev/zero
of=
/EMPTY
bs=1M
sudo
rm
-f
/EMPTY
|
Windows系统须要下载Sysinternals Suite并执行:命令行
1
|
sdelete –z
|
关闭虚拟机,如今能够开始压缩虚拟硬盘了code
若是你的虚拟硬盘是VirtualBox本身的VDI格式,找到你的虚拟硬盘文件,执行命令:orm
1
|
VBoxManage modifyhd mydisk.vdi --compact
|
若是你的虚拟硬盘是Vmware的VMDK格式,那就要麻烦点,由于VirtualBox不支持直接压缩VMDK格式,可是能够变通下:先转换成VDI并压缩,再转回VMDK。执行命令:blog
1
2
3
|
VBoxManage clonehd
"source.vmdk"
"cloned.vdi"
--
format
vdi
VBoxManage modifyhd cloned.vdi --compact
VBoxManage clonehd
"cloned.vdi"
"compressed.vmdk"
--
format
vmdk
|
事实上,执行命令的过程当中能够发现:在从VMDK转换到VDI的过程当中彷佛已经作了压缩,文件大小已经减小了不少,第二条命令反而没见到文件大小有什么变化,因此这里第二条命令应该能够省略了。ci