Vmware虚拟磁盘收缩
在使用VMware虚拟机的时候经常碰到磁盘很大,但是里面并没有装满东西,这样就白白浪费了硬盘空间,那么如何来收缩虚拟磁盘大小?
首先,如果在创建虚拟机时预先分配了虚拟磁盘大小,那么将不能收缩它。
注:在收缩虚拟磁盘以前,对虚拟磁盘进行磁盘碎片整理,这将能最大限度的发挥收缩磁盘的作用。
收缩虚拟磁盘是收回虚拟磁盘中未使用的空间。也就是说如果有空闲空间在虚拟磁盘中,这个收缩过程会减少虚拟磁盘文件对宿主机磁盘的空间占用。
收缩磁盘过程通过转换一个Workstation支持的格式的虚拟磁盘这种方便的方法来实现这个过程。所创建的新格式的虚拟磁盘只能被VMware Workstation 3.0以上版本所识别。
限制和要求
收缩要求宿主机磁盘上有与要收缩的虚拟磁盘同样大小的空闲空间。(如果用VMware Tools来执行收缩这无此限制)
收缩功能仅仅应用在虚拟磁盘上。不能收缩物理硬盘或光盘。
如果虚拟机虚拟系统有以下情况,收缩功能将不能使用。
包含一个快照
链接克隆的来源
链接克隆
如果虚拟机虚拟系统中任何一个虚拟磁盘有以下情况,收缩功能将不能使用。
预分配磁盘
没有使用虚拟磁盘独立-持久的模式
非持久模式的遗留磁盘
独立的磁盘引导
注:你可以在开启虚拟机以前改变虚拟磁盘的模式。(当然之前你必须删除所有快照)
收缩过程
收缩磁盘分两步:
第一步,清理,VMware Tools要求收回所有磁盘分区中未使用的部分(诸如删除的文件)并为收缩作好准备。清理工作在客户机操作系统中进行。
第二步,收缩虚拟磁盘,它在宿主机中进行。Workstation通过清理程序回收磁盘空间来减少虚拟磁盘文件的大小。
第一种方法: 用VMware Tools来执行压缩
当虚拟机打开时,你可以通过VMware Tools控制面板收缩虚拟机的虚拟磁盘。如果虚拟磁盘有快照,你就不能收缩虚拟磁盘了,可以移除快照,通过选择 虚拟机 〉 快照 〉快照管理 〉删除。
在Linux或FreeBSD客户机操作系统中,在进行收缩虚拟磁盘的准备工作,需要root用户的权限才能运行VMware Tools。要确保收缩的是整个虚拟磁盘。否则,如果不是以root用户来收缩磁盘,就不能清理(收缩)这个虚拟磁盘了。
收缩虚拟磁盘:
1.运行VMware Tools控制面板
Windows客户机——双击系统托盘中VMware Tools图标,或选择 开始 〉控制面板,然后双击VMware Tools。
Linux或FreeBSD客户机——以root用户身份,然后运行vmware-toolbox.
(Red hat Linux中的VMware Tools是 /usr/lib/vmware-tools/bin/vmware-toolbox-gtk)
2.选择Shrink(收缩)选项卡
3.选择你想要收缩的虚拟磁盘,然后点Prepare to Shrink (准备收缩)
一个对话框将显示清理(准备工作)的进度。
注:如果你没有选择某些分区,这个磁盘仍将收缩。无论怎么样,那些没有被选择收缩的分区将不被收缩,收缩进程将尽可能多地收缩所有被选择的分区减少这个虚拟磁盘的大小。
4.当VMware Tools完成清理所选择收缩的分区后,点Yes。
第二种方法:直接用VMware Workstation自带的工具vmware-vdiskmanager.exe
在磁盘整理完后,关闭虚拟机,然后运行vmware-vdiskmanager.exe进行收缩.
C:\Program Files\VMware\VMware Workstation>vmware-vdiskmanager.exe -k "Windows XP Professional.vmdk"
vmware-vdiskmanager.exe的参数用法可以用帮助进行查看.
C:\Program Files\VMware\VMware Workstation>vmware-vdiskmanager.exe /?
VMware Virtual Disk Manager - build 34685.
Usage: vmware-vdiskmanager.exe OPTIONS diskName | drive-letter:
Offline disk manipulation utility
Options:
-c : create disk; need to specify other create options
-d : defragment the specified virtual disk
-k : shrink the specified virtual disk
-n <source-disk> : rename the specified virtual disk; need to
specify destination disk-name
-p : prepare the mounted virtual disk specified by
the drive-letter for shrinking
-q : do not log messages
-r <source-disk> : convert the specified disk; need to specify
destination disk-type
-x <new-capacity> : expand the disk to the specified capacity
Additional options for create and convert:
-a <adapter> : (for use with -c only) adapter type (ide, buslogic o
r lsilogic)
-s <size> : capacity of the virtual disk
-t <disk-type> : disk type id
Disk types:
0 : single growable virtual disk
1 : growable virtual disk split in 2Gb files
2 : preallocated virtual disk
3 : preallocated virtual disk split in 2Gb files
The capacity can be specified in sectors, Kb, Mb or Gb.
The acceptable ranges:
ide adapter : [100.0Mb, 950.0Gb]
scsi adapter: [100.0Mb, 950.0Gb]
ex 1: vmware-vdiskmanager.exe -c -s 850Mb -a ide -t 0 myIdeDisk.vmdk
ex 2: vmware-vdiskmanager.exe -d myDisk.vmdk
ex 3: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vm
dk
ex 4: vmware-vdiskmanager.exe -x 36Gb myDisk.vmdk
ex 5: vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
ex 6: vmware-vdiskmanager.exe -k myDisk.vmdk
ex 7: vmware-vdiskmanager.exe -p m:
(A virtual disk first needs to be mounted at m:
using the VMware Diskmount Utility.)