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