VMWare清理Linux虚拟机磁盘

时间:2022-12-23 12:28:01

关于这个问题,早就想写出来总结一下了。玩过VMWare的都知道,Windows虚拟机清理磁盘非常简单,在GUI界面下选择磁盘清理就可以了,但是此操作对Linux系统无解。

注意,这里说的VMWare包括Windows平台的VMWare Workstation和Mac OSX的VMWare Fusion。

这里以VMWare Fusion为例,记录一下是如何清理的。

Linux虚拟机里磁盘清理

清理已经删除的软件的.deb软件安装包

sudo apt-get autoclean

使用zero数据填充磁盘的剩余空间,以便在下一步的清理阶段可以回收这些空间

sudo cat /dev/zero > zero;sync;sleep 1;sudo rm zero

宿主系统下清理vmdk虚拟机文件

这时候,我们把虚拟机关机。然后打开Terminal程序,进入到VMWare Fusion的安装目录

cd '/Applications/VMware Fusion.app/Contents/Library'

这时候我们先清理磁盘碎片(这一步并不会回收磁盘空间)

./vmware-vdiskmanager -d path_to_your/disc.vmdk

这里要注意一下,因为为了便于移动,一般情况下我们的虚拟机磁盘是分成多个文件的。所以有些文章里边说”path_to_your/disc.vmdk”指的是”disc-s001.vmdk”, “disc-s002.vmdk”,如果你这样执行,会报错,说指定的文件不是虚拟机文件。
其实这里是虚拟机磁盘的入口文件”disc.vmdk”,这个文件其实是一个文本文件,它列出了所有的虚拟机文件。

接下来我们回收磁盘空间

./vmware-vdiskmanager -k path_to_your/disc.vmdk

上面的两步都要执行一段时间,耐心等待或者去活动一下就好了。

P.S. 说起来也比较奇怪,VMWare官方对于这个问题的教程就是在GUI界面里边直接清理磁盘就好了,但是就像我们一开始提到的,根本没有效果。也不知道为什么不更新。

参考

  1. Shrinking Linux virtual disks on OSX VMWare fusion
  2. How to shrink Linux VMs with Fusion 6
  3. How To Shrink VMware Virtual Disk Files (.vmdk)
  4. Defragmenting, shrinking, and cleaning up VMware Fusion virtual machine disks (1001934)
  5. apt-get指令的autoclean,clean,autoremove的区别