准备在虚拟机上的Windows 7 的系统上安装一个SQL Server 2008 R2 Developer version, 安装过程中发现虚拟机原先设置的20G空间不够用了。原先在虚拟机VM 6.5 上安装windows 7系统时采用的是单文件存储的形式,所以20G的空间就渐渐不够用了。
这时候只好请教一下Google老师了。一番搜索后发现可以使用Vmware 自带的vmware-vdiskmanager.exe对原有的虚拟空间进行扩展。假设默认的安装目录为C:\Program Files\VMware\VMware Workstation。
运行CMD命令,通过命令 cd C:\Program Files\VMware\VMware Workstation 进入VMware Workstation的安装目录。
先运行命令 vmware-vdiskmanager可以得到以下的参数说明:
VMware Virtual Disk Manager - build 185404.
Usage: vmware-vdiskmanager.exe OPTIONS
Other Options: -q : do not log messages
Additional options for create and convert:
-a
Options for remote disks:
-h
the remote options are assumed to refer to the destination. 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 4 : preallocated ESX-type virtual disk 5 : compressed disk optimized for streaming
The capacity can be specified in sectors, KB, MB or GB.
The acceptable ranges:
ide adapter : [1MB, 950.0GB]
scsi adapter: [1MB, 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.vmdk
ex 4: vmware-vdiskmanager.exe -x 36GB myDisk.vmdk
ex 5: vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
ex 6: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 4 -h esx-name.mycompany.com
-u username -f passwordfile “[storage1]/path/to/targetDisk.vmdk”
ex 7: vmware-vdiskmanager.exe -k myDisk.vmdk
ex 8: vmware-vdiskmanager.exe -p
通过上面的参数说明我们可以得知,可以使用参数 -x 来扩展虚拟空间。
此参数是将虚拟磁盘空间增大到指定的容量。你必须指定新的更大尺寸的虚拟磁盘用GB或MB单位标示。当然你不能改变物理磁盘的大小
*注意:在你运行虚拟磁盘管理软件前,你应该最好先备份虚拟磁盘文件。(因为不会创建新的文件,所以备份以防增大磁盘操作失败)*
举个例子如下:
命令:vmware-vdiskmanager -x 30GB myDisk.vmdk 这条命令将把虚拟磁盘myDisk.vmdk大小增大到30GB 实际命令输入(注意最后参数上有双引号): C:\Program Files\VMware\VMware Workstation>vmware-vdiskmanager -x 30GB “C:\Program Files\Virtual Machines\Windows7\Windows7.vmdk” 执行结果显示: Using log file C:\DOCUME~1\AnEgg\LOCALS~1\Temp\vmware-AnEgg\vdiskmanager.log Grow: 100% done. The old geometry C/H/S of the disk is: 8322/16/63 The new geometry C/H/S of the disk is: 16383/16/63 Disk expansion completed successfully. WARNING: If the virtual disk is partitioned, you must use a third-party utility in the virtual machine to expand the size of the partitions. For more information, see: [url=http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1647]http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1647[/url]
到这里就说明虚拟的磁盘空间已成功扩大。
如果出现以下信息:
This disk is part of a snapshot chain in ‘C:\Program Files\Virtual Machines\Windows7\Windows7.vmdk’. The selected operation can only be executed on a disk with no snapshots 意思就是这个虚拟机不能有快照,必须要删除快照后再执行这个命令,这个删除会花费很多时间,千万要等它完毕,不然,如果强行关掉删除snapshot的进程的话,再次尝试增加磁盘的命令,会成功,但会使vm不能启动!会出现下面的错误当你尝试启动vm的时候:
The parent virtual disk has been modified since the child was created
解决方法请参考最后的参考链接中的
3.http://www.cnblogs.com/jinweijie/archive/2009/01/14/1375634.html
如果扩展成功的话,那么你可以进入虚拟机的系统在 控制面板\系统和安全\管理工具 下的 计算机管理 中的 存储–磁盘管理 中,可以看到未指派的空间。
由于我的虚拟机上的win 7 系统只有一个C盘,所以我是直接鼠标右键 扩展卷 将未分配的磁盘空间分配到了原先的C盘上,这样C盘的空间从原来的20GB扩大到了30GB。
如果源磁盘已经分过区,则必须使用第三方工具来扩充源分区的大小。
(可以使用GParted工具(下载地址:http://transact.dl.sourceforge.net/sourceforge/gparted/gparted-live-0.4.5-2.iso))
完成!
注意:本人将上述步骤实践过一次,而且成功的完成了扩展,但是由于以上操作涉及磁盘中数据以及系统具有一定的风险性,所以各位操作时请注意,造成一切后果请自负。
以下是一些参考的链接:
1.http://hi.baidu.com/angivo/blog/item/d585e5c6b4bb65119d163dad.html
如何用vmware-vdiskmanager创建共享磁盘
2.http://hi.baidu.com/xgyyi/blog/item/c320dd5c7fcfb844faf2c06e.html
vmware虚拟机的磁盘空间扩容
3.http://www.cnblogs.com/jinweijie/archive/2009/01/14/1375634.html
4.http://hi.baidu.com/pdckxd/blog/item/447a7aecaf6ba4d82e2e216f.html