如何减少VMware磁盘的大小


15

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

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

Answers:


21

分三个步骤:

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

    sudo e4defrag /

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

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

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

  3. 运行收缩操作:

    sudo vmware-toolbox-cmd disk shrinkonly


这是VMWare工作站的正确答案。谢谢男人,对我帮助很大!
Clonkex

正确。在VMWare Workstation 14,Centos 7 Guest上工作正常
odiszapc

1
要小心,如果你运行这个与任何外部安装卷,如S3 -零填充命令将尝试和创建你的S3存储桶一个256TB wipefile ...
PAJ

为我工作的Windows 10主机和Ubuntu 16来宾。起初,我认为第3步应该在主机上运行,​​但是我错了。在完成所有步骤之后,我还按如下所述运行文件系统检查:askubuntu.com/a/953750/590877
Alex Che,

1
+1,但是我认为使用zerofree步骤2将更快,更清洁:manpages.ubuntu.com/manpages/xenial/man8/zerofree.8.html
艾蒂安

15

我找到了解决方案–您必须压缩硬盘驱动器:

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


哇。终于我找到了答案。但是...为什么压缩虚拟磁盘实际上没有回收可用空间?
Wizard79 2014年

8
您需要在来宾Ubuntu OS内执行此操作(假设您已安装VMware Tools):“ vmware-toolbox-cmd disk收缩/”应该可以完成这项工作。
DH4 2014年

这不适用于ESXi。为此,请参阅下面的答案。
Collin Chaffin

3

在来宾中(以root用户身份)打开VMware Toolbox,然后缩小磁盘。(文件)


如果没有VMware Tools,则可以分两个步骤手动缩小磁盘。首先,使用zerofree之类的工具清除虚拟磁盘上的可用空间。Zerofree 在Ubuntu可用,但是由于它需要以只读方式挂载来宾OS文件系统,因此您可能希望通过实时CD运行它。据报道,《Parted Magic》包括零释放。

将可用空间清零后,打开“虚拟机设置”并压缩虚拟磁盘。


3
vmware工具箱UI不再可用,但您仍然可以使用:“ vmware-toolbox-cmd disk收缩/”来完成工作。
DH4 2014年

3

sudo vmware-toolbox-cmd disk shrinkonly

从您的Ubuntu来宾中的命令提示符中输入。

(在Ubuntu 14.04 LTS guest + Windows 10 Host + VMWare Workstation 12.1.1上测试)


1

VMWare硬盘大小调整

在VMWare中扩展动态虚拟硬盘很容易,并且不再需要vmware-vdiskmanager.exe默认情况下位于中的命令行工具C:\Program Files\VMware\VMware Workstation\

要调整大小,请使用以下命令(通过按WIN + R打开命令提示符并输入cmd):“ C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x NEWSIZE "diskname.vmdk

程序

以下步骤是:

  • 在这里下载
  • 安装
  • 打开
  • 选择分区,单击“调整大小/移动”,将手柄拖动到其完整宽度
  • 点击应用
  • 同意重启
  • 在启动过程中,请勿按任何键
  • 让启动模块执行其任务
  • 检查Windows系统分区大小是否增加。

有关步骤的直观概要和其他信息,请参见此处


1

这些步骤非常适合我:

1)零填充未使用空间

cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

2)使用vmware工具箱收缩磁盘

sudo vmware-toolbox-cmd disk shrink /

在Ubuntu 16.04,VMware Workstation 12.1.0 Player,Windows 7主机上测试


0

在ESXi上可以缩小磁盘。

  1. 查找大文件并将其删除。

    找到/ -type f -size + 50M

  2. 碎片整理(无需取消/重新安装任何东西)。忽略任何错误。无法对某些文件(例如符号链接和设备文件)进行碎片整理。

    须藤e4defrag /

  3. 零填充所有未使用的空间,因此VMware知道它确实是未使用的:

    dd if = / dev / zero of = wipefile bs = 1M; 同步; rm擦拭文件

  4. 运行收缩操作:如果4失败,请继续执行5。

    sudo vmware-toolbox-cmd磁盘仅收缩

  5. 使用try选项重启Linux系统,并使用gparted编辑分区表。收缩根文件系统,然后将交换分区删除并移到根分区附近。

  6. SSH到ESXi,然后发出以下命令:

    vmkfstools -K / vmfs /卷/卷名/vmname/vmname.vmdk

  7. 我们需要编辑* .vmdk文件。在字母RW之后,定义VMware虚拟磁盘(VMDK)的大小

    * 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. 将其迁移到另一个数据存储以反映新的大小。


(1)问题不在于如何降低文件系统的使用率;它说OP已经做到了。因此,您的find命令并不真正相关。(2)怎么vmkfstools -K办?(3)手动编辑文件?真?(4)我不理解您对用户需要在文件中进行哪些更改的说明。(5)关于迁移到另一个数据存储区,您说什么?(0)您所说的大部分内容已被覆盖。……………………………………………………………………请不要发表评论;编辑  您的答案,使其更清晰,更完整。
斯科特,

好吧,我是VMware专家(我想尝试任何一种方法的人都应该这样做),因此,这不仅是回答甚至适用于ESXi的唯一方法(因为ESXi不支持通过vmtools收缩Linux guest虚拟机),但最终使其完美对我而言 话虽如此,步骤7不仅是不必要的,而且是不正确的。由于收缩不会改变实际的VOLUME大小,因此您只需在步骤6之后停止即可。仅当您要收缩磁盘而无需运行vmkfstools时才使用步骤8(存储迁移),这是强制执行的,因此该解决方案也需要执行步骤5a-SHUT DOWN客人。
Collin Chaffin

请参阅上面的答案。步骤5中列出的基于vmtools的cmd也是不正确的,因为在任何基于ESXi主机的方案中都从未支持(甚至无法使用)它。
Collin Chaffin

0

在ESXi / vSphere Linux Guest虚拟机上精简(缩小)VMDK磁盘

注意:“收缩”通常可互换使用,是指减小精简型磁盘文件大小的过程。VMware使用术语“缩小”来表示减小来宾可用磁盘的基础大小,并“精简”,因为该过程最倾向于使用重新占用未使用的空间而不改变基础可用大小。

由于ESXi在Linux guest虚拟机上不支持基于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块大小的数据存储。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.