VMware Communities
dcpc
Contributor
Contributor

Help, please, cannot start VM after changing HD size with vdiskmanager GUI

Hi:

I was trying to enlarge my HD in the virtual machine, something that I did before without problems, and now the VM will not start. I shut down the VM and used vdiskmanagerGUI to set the new size. The error message on start up is 'Cannot open the disk '/Users/...VMWare Windows-000001.vmdk' or one of the snapshot disks it depends on Reason: The parent virtual disk has been modified since the child was created.

I read over as many related threads as I could and went so far as to get the Hex editor 0xED. With that I opened 'VMWare Windows-000001.vmdk' and found the DiskDescriptorFile information. In the files such as VMWare Windows-000001-s001.vmdk, VMWare Windows-000001-s002.vmdk, etc, I cannot find anything similar or any references to parentCID.

At this point I am stuck. I do have a snapshot from two days ago and an older backup, however the current VM does have some important work that I need. Any help with this would be greatly appreciated.

Tags (3)
0 Kudos
6 Replies
WoodyZ
Immortal
Immortal

Well I guess you didn't backup the Virtual Machine Bundle Package or even the current User Data before you attempted to enlarge a virtual hard disk? Yes! Well before you do anything else I'd make a copy of the Virtual Machine Bundle Package in case you need to try several different thing to try to salvage your data!

0 Kudos
dcpc
Contributor
Contributor

Thank you. Unfortunately, you are correct about the backup. I was lulled into complacency by the simplicity of my first HD expansion.

Anyway, I read this helpful post http://communities.vmware.com/message/884541#884541

It discusses repairing the CID chain. The author has a split virtual drive made up of monolithic sparse images. Mine seem to be different and are of createType= "twoGbMaxExtentSparse". Although I have found the parent CID in the base vmdk file, I cannot find anything like a CID chain in the other vmdk files, using 0xED. So, I cannot repair a chain that I can't find and am still stumped.

Of course, I can make a backup, but any tips on how to recover would be great.

0 Kudos
admin
Immortal
Immortal

Your situation is slightly different than the other recent CID problem. First off, you're using split disks (good for you!), which have a plaintext descriptor. No need for 0xED. You can ignore the -s00? files, since they're data slices. The only ones you need to concern yourself with are "VMWare Windows-000001.vmdk", which is the child descriptor, and "VMWare Windows.vmdk", which is the base descriptor. Change the child descriptor's parentCID to match the base descriptor's CID.

As to the original issue, I wouldn't expect vmware-vdiskmanager to deal well with a disk with snapshots, since the parent and child disks would then be different sizes. You should probably should have merged the snapshot back to the base disk before attempting to resize.

dcpc
Contributor
Contributor

Thanks a lot. Just so I have this straight, the two files are as follows, below. Do you mean that I should change the CID of the child, which is now 90dff4c3, to match the value of parentCID in the base, ffffffff? As it stands, the base CID is b53bf335, and that is the same as the value of parentCID in the child. Reading what you have said, it seems that the values may be correct already. If so, any other clues?

VMWare Windows.vmdk

  1. Disk DescriptorFile

version=1

CID=b53bf335

parentCID=ffffffff

createType="twoGbMaxExtentSparse"

  1. Extent description

RW 4192256 SPARSE "VMWare Windows-s001.vmdk"

RW 4192256 SPARSE "VMWare Windows-s002.vmdk"

RW 4192256 SPARSE "VMWare Windows-s003.vmdk"

RW 3795516 SPARSE "VMWare Windows-s004.vmdk"

RW 4192256 SPARSE "VMWare Windows-s005.vmdk"

RW 4192256 SPARSE "VMWare Windows-s006.vmdk"

RW 4192256 SPARSE "VMWare Windows-s007.vmdk"

RW 4192256 SPARSE "VMWare Windows-s008.vmdk"

RW 2510276 SPARSE "VMWare Windows-s009.vmdk"

RW 4192256 SPARSE "VMWare Windows-s010.vmdk"

RW 4192256 SPARSE "VMWare Windows-s011.vmdk"

RW 4192256 SPARSE "VMWare Windows-s012.vmdk"

RW 4192256 SPARSE "VMWare Windows-s013.vmdk"

RW 8192 SPARSE "VMWare Windows-s014.vmdk"

  1. The Disk Data Base

#DDB

ddb.geometry.biosHeads = "255"

ddb.geometry.biosSectors = "63"

ddb.geometry.biosCylinders = "1019"

ddb.adapterType = "buslogic"

ddb.geometry.sectors = "63"

ddb.geometry.heads = "255"

ddb.geometry.cylinders = "3263"

ddb.virtualHWVersion = "6"

ddb.toolsVersion = "7362"

VMWare Windows-000001.vmdk

  1. Disk DescriptorFile

version=1

CID=90dff4c3

parentCID=b53bf335

createType="twoGbMaxExtentSparse"

parentFileNameHint="/Users/david/Virtual Machines/VMWare Windows/VMWare Windows.vmdk"

  1. Extent description

RW 4192256 SPARSE "VMWare Windows-000001-s001.vmdk"

RW 4192256 SPARSE "VMWare Windows-000001-s002.vmdk"

RW 4192256 SPARSE "VMWare Windows-000001-s003.vmdk"

RW 4192256 SPARSE "VMWare Windows-000001-s004.vmdk"

RW 4192256 SPARSE "VMWare Windows-000001-s005.vmdk"

RW 4192256 SPARSE "VMWare Windows-000001-s006.vmdk"

RW 4192256 SPARSE "VMWare Windows-000001-s007.vmdk"

RW 4192256 SPARSE "VMWare Windows-000001-s008.vmdk"

RW 2113536 SPARSE "VMWare Windows-000001-s009.vmdk"

  1. The Disk Data Base

#DDB

ddb.toolsVersion = "7362"

0 Kudos
dcpc
Contributor
Contributor

I may have fixed this myself. All that I did was to delete the additional sparse images that had been created, 10-14. I edited the file VMWare Windows.vmdk, deleting mention of the additional images and adjusting the value of "ddb.geometry.cylinders" to 2219, which I found in my backup. I guessed that the latter had to do with overall size of the virtual HD. Windows started up, rather slowly, and it took a bit longer than usual to get a desktop after login, but things seem OK otherwise. As ever, the documentation of this common situation, expansion of an existing virtual HD, needs to be improved. I fail to understand why the necessary tools to do the job are not included in Fusion itself, with mechanisms to prevent improper expansion in presence of a snapshot.

By the way, etung, when you say merge the snapshot, I take it that you mean discard it? Is vdiskmanager GUI the right tool for the job of expansion, or should I be using some other software to start the expansion process? Thanks.

0 Kudos
WoodyZ
Immortal
Immortal

when you say merge the snapshot, I take it that you mean discard it? Is vdiskmanager GUI the right tool for the job of expansion, or should I be using some other software to start the expansion process? Thanks.

Yes merging occurs when you select the Discard Snapshot command from the Virtual Machine menu

vdiskmanager GUI is a wrapper application and actually invokes and uses "/Library/Application Support/VMware Fusion/vmware-vdiskmanager" which is a part of VMware Fusion.

FWIW I tried expanding a disk that had a snapshot using vdiskmanager GUI and it would not process it because it said it had a snapshot. After discarding the snapshot it processed it.