如何使用 VBOX 自带工具减小虚拟磁盘大小

缘由

由于在 Linux 下还没有完美解决 Windows 下一些必备软件(QQ, WPS, MS Office)的安装,所以我还是在 Linux 系统里面用虚拟机装了个精简版的 Win 7。Linux 下 Virtual Box 免费开源,所以我一般使用的是它。

虚拟机用着用着就会发现,它的虚拟磁盘变得越来越大,但虚拟机里面的系统可能并没有占用那么大的空间。所以有必要压缩一下。

WPS 终于出了 Linux 版本了,还算良心,就 鹅厂 还一直没有什么进展。。

问题来了,便开始上网搜索方法。在开源中国的一个博客里面找到了方法,下面进行简单的记录。

解决方法

根据博主的文章,要达到减小 VBox 虚拟磁盘的大小,主要有两个步骤:

碎片整理

首先需要在虚拟机里面的系统下做碎片整理。

对于 Linux 系统,可以使用:

sudo dd if=/dev/zero of=/EMPTY bs=1M
sudo rm -f /EMPTY

对于 Windows 系统,则需要使用 Sysinternals Suite,点击上面的链接可以到微软的页面下进行下载。下载解压后,通过 CMD ,运行:

sdelete -z c:

等待进度完成即可。然后关闭虚拟机。

压缩磁盘

如果虚拟磁盘是 Virtual Box 自家的 VDI 格式,则只需要先通过终端到达含有后缀为 .vdi 的文件所在的那个目录,再执行:

VBoxManage modifyhd win7.vdi --compact

这样就可以达到压缩磁盘的目的。

如果虚拟磁盘是 VMDK 的格式,则可以使用 vmware 自带的 vmware-vdiskmanager 工具,具体命令如下:

vmware-vdiskmanager -k disk.vmdk

参考资料