Virtualbox 压缩虚拟磁盘空间

如果使用VirtualBox 动态虚拟磁盘,那么一定会发现经过一段时间的使用之后。虚拟磁盘文件的大小远远超过虚拟机内显示的已用空间的大小。这种情况发生的原因就是当虚拟机内操作系统在需要更多空间写入文件时,Virtualbox 会通过增大虚拟磁盘文件的大小来给虚拟机提供空间。而当虚拟机内释放空间时,Virtualbox不会将已经释放的空间返还给宿主操作系统。这样就造成了虚拟磁盘大小不断上涨,直到到达动态虚拟磁盘大小上限时停止增长。
于是 Virtualbox 提供了一种可以将虚拟磁盘中置零的空间释放出来的功能。这样只要把虚拟机中所有未使用的空间置零就可以通过这个功能将空间释放出来。

1.将未使用空间置零
如果虚拟机中运行的是Linux

#dd if=/dev/zero of=fullfill
#rm fullfill

如果虚拟机中运行的是Windows

SDelete 工具写”零”,下载地址 http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx,在命令行下执行 “sdelete -c”… 关机…

可以下载Sysinternals Suite
然后运行

sdelete –z

2.关闭虚拟机

3.使用VBoxManage压缩虚拟磁盘

$VBoxManage modifyhd /path/to/your.vdi --compact

/path/to/your.vdi 为虚拟磁盘的路径
然后等待它慢慢压缩完成即可,消耗时间与虚拟磁盘的大小相关。

About 智足者富

http://chenpeng.info

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>