win10系统中,要在vmware中linux开发, 虚拟磁盘空间上百G,
ssd空间常常告急, 如何如何释放vmware空间成了问题. 网上找的方法, 如从vmware界面,虚拟机设置->硬盘->压缩, 往往不起作用.
本人亲测, 虚拟磁盘从 110多G降到60多G,释放近50多G空间.
- 命令行输入baobab,centos自带磁盘分析工具,查看自己的大文件都哪些
# baobab
2. 删除无用文件
3. 删除 vmware drag_and_drop 文件夹, 这是大头, 本人有25G
rm -rf ~/.cache/vmware/drag_and_drop
4. 删除 docker images以及关联的数据卷
docker images #查看docker镜像
docker stop XXX #先停止容器,XXX可以是容器的NAMES 也可以是CONTAINER ID
docker rm -v xxx #删除docker容器,及其数据卷 ,删除容器数据有风险!
docker rmi --force XXXXX # 删除无用的docker image,XXXX 是 IMAGE ID ,
docker volume prune ## 清除无主数据卷,时常运行一下, 释放空间
5. 清空回收站
6. 用内容为二进制0的文件,填充所有磁盘空间,删除这个文件.
dd if=/dev/zero of=/zero.file bs=2M
sudo sync // 把内容都同步到磁盘
rm -rf /zero.file
原因:
- 虚拟机在操作磁盘镜像的时候,类似于只操作扇区,不考虑其上的文件系统的类型和内容;
- 磁盘镜像的存储类似于稀疏矩阵的存储,只有数据全0的时候空间才能被释放。
7. 最关键的一步,在虚拟机里面收缩根目录,
sudo /usr/bin/vmware-toolbox-cmd disk shrink /
其他
sudo /usr/bin/vmware-toolbox-cmd disk list # 查看磁盘挂载点
网上有些文章,6,7步没有连起来,导致不能收缩虚拟磁盘空间.
8. 关闭虚拟机, 从vmware界面,虚拟机设置->硬盘->压缩(本人这步,磁盘空间几乎没变化)