如何减少 VMware 磁盘大小

如何减少 VMware 磁盘大小

我的 Ubuntu 映像 VMware 磁盘已增长到 5GB 物理文件大小。这是一个动态增长的磁盘,最大容量为 8GB。我清理了 Linux 发行版中的某些内容,现在它占用了 3GB。显然物理文件大小并没有自动缩小。有没有办法(如果可能的话是免费的)将此磁盘缩小到 ~3GB?

我需要它来适合 DVD 上的图像。

答案1

有三个步骤:

  1. 碎片整理(无需卸载/重新安装任何东西)

    sudo e4defrag /

    忽略任何错误。某些文件(如符号链接和设备文件)无法进行碎片整理。

  2. 用零填充所有未使用的空间,以便 VMware 知道它确实未使用:

    dd if=/dev/zero of=wipefile bs=1M; sync; /bin/rm wipefile

  3. 运行收缩操作:

    sudo vmware-toolbox-cmd disk shrinkonly

答案2

我找到了解决方案——你必须压缩你的硬盘:

虚拟机-设置-常规-清理虚拟机

答案3

在 ESXi/vSphere Linux 客户机上精简(缩小)VMDK 磁盘

注意:“收缩”通常可互换使用,指的是减小精简型磁盘文件大小的过程。VMware 使用术语“收缩”来指减少客户机可用的磁盘的底层大小,而“精简”则指最常用于重新获取未使用空间而不改变底层可用大小的过程。

由于 ESXi 不支持 Linux 客户机上基于 vmtools 的缩减,因此必须使用以下步骤。请参阅下面的参考链接了解更多信息。

  1. (如果可能)停止所有磁盘写入密集型应用程序和服务,因为以下步骤将暂时填满目标卷

  2. 对目标 VMDK 上的卷进行碎片整理并忽略任何错误,因为符号链接/设备文件/等无法进行碎片整理。

    # USE sudo IF NECESSARY IN YOUR CONFIG!
    e4defrag /
    # or e4defrag /mnt/MOUNTVOLUME
  1. 用零填充所有未使用的空间:
    dd if=/dev/zero of=/mnt/MOUNTVOLUME/zeroes bs=1M; sync; rm /mnt/MOUNTVOLUME/zeroes
  1. 关闭并关闭来宾电源

  2. 通过 SSH 连接到 ESXi 主机并发出以下命令:

    # Check current vmdk allocation
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Shrink it
    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Check again to verify shrinkage
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk
  1. 启动客户机

来源

https://kb.vmware.com/s/article/1002019

在大多数文件系统中删除文件并不能完全移除它们;只是文件表会被更改。使用免费安全文件删除实用程序(如 Eraser 或 SDelete)将空间清零以将卷上的可用空间“清零”,从而有效地清除数据的可用空间。然后,可以正确精简磁盘。然后,您可以使用 vmkfstools -K 命令(ESXi/ESX 4.1 及更高版本)完成块回收或使用 Storage vMotion 将虚拟机迁移到具有不同 VMFS 块大小的数据存储。

答案4

使用

sudo vmware-toolbox-cmd disk shrinkonly

从 Ubuntu 客户机中的命令提示符中。

(在 Ubuntu 14.04 LTS 客户机 + Windows 10 主机 + VMWare Workstation 12.1.1 上测试)

相关内容