目前VirtualBox下的虚拟机是会一直申请空间,直到达到我们设置的动态空间的最大值才开始自动释放空间。因此产生了压缩虚拟机文件释放空间问题。
首先,如果虚拟机文件是vmdk或是其他非vdi格式,需要先转换为vdi格式,命令如下:
VBoxManage clonehd source.vmdk target.vdi –format VDI
其中命令VBoxManage在C:\Program Files\VirtualBox\VBoxManage.exe中,source和target是自己需要转换的原文件和目标文件
执行比较慢,
然后是压缩
目的:将系统中无用的垃圾空间置零 然后释放掉
清除“零”字节空间,使用 VBoxManage modifyhd 工具压缩 VDI 磁盘镜像文件
Windows 虚拟机
1. 虚拟机: 删除系统垃圾文件,运行磁盘整理程序…
2. 虚拟机: 用 SDelete 工具写”零”,下载地址在这里,在命令行下执行 “sdelete -c”… 关机…
3. 物理主机: 执行 “VBoxManage modifyhd /the-path-of-VDI.vdi –compact”
Linux 虚拟机
1. 虚拟机: 清理、卸载系统垃圾文件
2. 虚拟机: 写“零”,”dd if=/dev/zero of=/fillerup.zero” 方法并不是很有效,VBox官方网站找到一个几年前的“终极办法” (英文链接)!
2.1 用一张 LiveCD iso (Ubuntu) 启动虚拟机,使用 System – Administration – GParted 分区软件,将虚拟硬盘空间设置到最小,应用
2.2 在刚才腾出来的空间上建立新分区,执行 “dd if=/dev/zero of=/dev/zero”, 删除zero 然后删除此分区
2.3 回到主分区,恢复它的所有空间,应用 关机
3. 外部主机: 执行 “VBoxManage modifyhd /the-path-of-VDI.vdi –compact”
OK!