最近,我也在运行macOS的虚拟化,以测试各种应用程序。在大量使用之后,同样的问题出现了:.vmdk在我相当小的256GB SSD上使用了太多的空间。目前大约是70GB。
这个过程与我在Windows和Linux上所做的类似,即写一个空文件,在最后被删除,然后使用命令行工具压缩.vmdk并回收空间(这个例子是针对VMWare Fusion的)。
不再多说了。
第一步
用0x00填满所有的空白空间
$ cat /dev/zero > zeroed_empy_space; rm zeroed_empy_space
如果你想知道/dev/zero 是做什么的:
/dev/zero是Unix-like操作系统中的一个特殊文件,它可以提供尽可能多的空字符(ASCII NUL,0x00),因为从它那里可以读到。其中一个典型的用途是为初始化数据存储提供一个字符流。
第二步
VMWare Fusion默认安装在/Applications/VMware Fusion.app ,所以你只需要运行:
$ cd ‘/Applications/VMware Fusion.app/Contents/Library/‘
$ vmware-vdiskmanager -k your_vm_name.vmdk
并等待它完成--请注意,你需要磁盘上至少有.vmdk文件大小的可用空间,否则这个操作会失败。
结果
原始vmdk大小:70GB
在清零可用空间和清理后。40GB