注意在csdn上是第二次发布,首发在pcbeta
最近,我在vmware8里装了Mac OS X Snow Leopard,发现Mac os 里显示磁盘用了7G,vmdk文件最有32G,我去,这东西哪来的。后来,我在网上找到了这样一段话“在VMware里新建虚拟机向导时会让选择是否预分配虚拟磁盘空间(preallocate forvirtual disk),如果选是,VMware将立即分配所有空间(Allocate all disk spacenow);否则虚拟机文件将随着虚拟系统使用而增大。”这个当初,也没有注意到这事。现在我有个疑问,是不是选了“Allocate all disk spacenow”,虚拟就机会根据虚拟系统容量增加vmdk大小呢?如果有人当初选了“Allocate all disk spacenow”的,能告知一下,谢谢了。好了,言归正传,既然,我们选了另一条路,那我们得走下去。解决方法如下(包括未能实现的):
这个方法,我未能实现。当初我装了vmware tools。我在系统上找到的路径是:“/Library/Application Support/VMware Tools/”。这里有个工具vmware-tools-cli。但这个不像linux和windows下的vmware tools图形化工具那样好使,这个得用命令。我试过 sudo ./vmware-tools-cli disk shrink / ,这个命令不行的。如果,你发现怎么用,希望能分享一下你成果。
二、使用其他命令对未使用空间清零
这个命令,到发现了两个。
第一个(未使用过,命令行不明白):参考 http://hi.baidu.com/susdisk/blog/item/f69db52336dc10569358070f.html
sudo dd if=/dev/zero of=/0bits bs=20971520 # bs=20m
sudo rm /0bits
注意:未使用过,命令行不明白。对bs不明白。如果,你知道的话,希望能分享一下。
第二个(已经成功使用):参考 http://blog.csdn.net/syspro/article/details/4318792
cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill
注意:这个在你的用户文件夹下运行,别的地方运行好像权限不够。
我关闭虚拟系统后,遇到一个问题,就是虚拟机一直关闭不了,提示“vmware is still busy”。最终我实在等不下去了,直接关闭了虚拟进程,大不了再装。如果虚拟机起不来,那到当时安装的要虚拟的系统目录(基本上与vmdk同目录)删除*.vmem files 和 *.vmem.lck,如果还不行,删除*.lck
最终运行(不管你使用哪种方法):
进入VMWare安装目录运行:vmware-vdiskmanager.exe -k xxxx.vmdk 注意:xxxx 为你的虚拟的系统磁盘路径和名称(如:d:\vms\macosx.vmdk)。那个vmdk后来也降到17G,哈哈。不错。
后记:如果,你有更好方法,真诚希望能一起分享快乐。
2011-09-28记