VirtualBox虚拟机使用时间长了会逐渐增大,一般台式机现在都是好几个T的没啥问题。笔记本硬盘比较小的情况,占用多了是个麻烦事情。
想到的第一方法就是删除快照,第二个就是减肥。有些快照不能删恢复需要,空间还不够就只能减肥。
处理方法:
1、SDelete 整理虚拟机释放空间
2、VBoxManage 压缩VDI文件命令:
sdelete64.exe -z c:\
VBoxManage modifyhd XXX.vdi --compact
1、SDelete 整理虚拟机释放空间
SDelete是个微软提供Sysinternals Suite套内的一个工具,可以对Windows进行整理和压缩。
SDelete工具下载
(SDelete) https://docs.microsoft.com/zh-cn/sysinternals/downloads/sdelete
(Sysinternals Suite) https://docs.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
直接下载 SDelete工具就能用,压缩包里有x86和x64两个exe。在CMD下执行压缩
命令: 释放c盘空的磁盘空间
sdelete64.exe -z c:\
我的虚拟机只有一个c盘,所以执行一次就搞定。参数-z
这个感觉就是为虚拟机准备的。
c:\> sdelete64.exe /?
...
-z Zero free space (good for virtual disk optimization)
...
这步处理完,再用VBox的工具效果就比较好。
注 : 使用这个命令会搬动零碎文件释放空间,实际会让虚拟机文件VDI文件变大。
2、压缩VDI
命令:
VBoxManage modifyhd XXX.vdi --compact
如果虚拟机有快照,需要可以对所有,快照没有执行过SDelete实际压缩率不会很大。
虚拟机目录下有三个VDI文件,压缩一下空出了30G。
moguf_mac:~ moguf$ cd ~/VirtualBox\ VMs/win7dev2010/
moguf_mac:win7dev2010 moguf$ ll
total 15538016
drwxr-xr-x 8 moguf staff 256 4 28 09:10 ./
drwxr-xr-x 4 moguf staff 128 4 28 00:33 ../
-rw-r--r--@ 1 moguf staff 10244 4 28 00:45 .DS_Store
drwx------ 6 moguf staff 192 4 28 09:10 Logs/
drwx------ 5 moguf staff 160 4 27 23:40 Snapshots/
-rw------- 1 moguf staff 25764 4 28 09:10 win7dev2010.vbox
-rw------- 1 moguf staff 25764 4 28 00:55 win7dev2010.vbox-prev
-rw------- 1 moguf staff 7956594688 4 28 01:02 win7dev2010.vdi
moguf_mac:win7dev2010 moguf$ cd Snapshots/
moguf_mac:Snapshots moguf$ ll
total 264000424
drwx------ 5 moguf staff 160 4 27 23:40 ./
drwxr-xr-x 8 moguf staff 256 4 28 09:10 ../
-rw------- 1 moguf staff 400970291 11 13 10:34 2018-11-13T02-34-43-708984000Z.sav
-rw------- 1 moguf staff 116380401664 4 28 01:05 {ecbbf165-edfc-446e-b81a-2f579efe23f7}.vdi
-rw------- 1 moguf staff 18379440128 4 28 09:30 {ff7fe280-57b9-428b-831c-1cc429ebcbdd}.vdi
moguf_mac:Snapshots moguf$
有个快照100G多处理不了。删除镜像错误,重建虚拟机没硬盘空间 Orz
。只能另想办法干掉镜像文件。
用上面的命令能空出30G也是不错的,原来只有10G的空间一下子就变成40G还算是有收获的。
总结:虚拟机内部必须整理碎片空间,否则用VBox自带的压缩效用不大(如快照文件)。