清理回收VMware Workstation Pro下Linux虚拟机占用的物理磁盘空间的方法

清理回收VMware Workstation Pro下Linux虚拟机占用的物理磁盘空间的方法

LonelyMan 573 2023-09-18

起因

工作的测试环境是部署在一个VMware Workstation Pro的Linux虚拟机上,虚拟磁盘在创建时未选择“立即分配所有磁盘空间”(ESXi中为“精简置备”和“厚置备”),最开始的时候这个虚拟机的虚拟磁盘只有20G左右,因为docker日志的原因,占用空间被撑到了70G左右,在删除相关日志后,虚拟机内显示实际使用只有20G,但是虚拟磁盘占用了70G的物理磁盘空间,十分影响虚拟机的分享,所以需要清理释放虚拟磁盘空间

方法

VMware Workstation Pro中使用了自带的“磁盘实用工具”中的“压缩”功能也未能成功缩小虚拟磁盘大小,只能通过命令行的方式实现

清理缓存

首先清理虚拟机内的相关缓存、废弃文件,例如yum的安装缓存等

填充剩余空间

cat /dev/zero > zero
sync
rm -rf zero

该步骤是使用zero数据填充磁盘的剩余空间,最后会提示空间不足,直接忽略,然后关闭虚拟机

整理并压缩虚拟磁盘

找到VMware Workstation Pro的安装路径以及需要压缩的虚拟磁盘路径,例如我的安装路径为D:\VMware\VMware Workstation,虚拟磁盘路径为E:\vm\linux-server\linux-server.vmdk

打开CMD,切换当前目录到安装路径,执行以下命令整理磁盘碎片

vmware-vdiskmanager.exe -d E:\vm\linux-server\linux-server.vmdk

需要等待,当显示以下两行则为整理完成

  Defragment: 100% done.
Defragmentation completed successfully.

再执行以下命令压缩回收磁盘空间

vmware-vdiskmanager.exe -k E:\vm\linux-server\linux-server.vmdk

需要等待,当显示以下两行则为压缩回收完成

  Shrink: 100% done.
Shrink completed successfully.

再次查看磁盘空间,会发现占用的物理空间大小跟实际占用的使用大小相当,压缩完成

如果虚拟机安装了VMware Tools,则可以直接运行以下命令

vmware-toolbox-cmd disk shrink /

其中/为虚拟磁盘的挂载点,可以通过以下命令查看

vmware-toolbox-cmd disk list

参考

学以致用二十六-----虚拟机磁盘空间清理