I have a virtual disk that lost the descriptor files and I've tried going through the process of recreating them but I just cant figure it out...
It is in a seperate datastore than the VM. I can use the
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # vmkfstools -v 10 -e AGEC-SERVER2008R2_1-000001.vmdk
DISKLIB-VMFS : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000010-delta.vmdk" : open successful (14) size = 18959282176, hd = 5664418. Type 8
DISKLIB-DSCPTR: Opened [0]: "AGEC-SERVER2008R2_1-000010-delta.vmdk" (0xe)
DISKLIB-LINK : Opened '/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000001.vmdk' (0xe): vmfsSparse, 1048576000 sectors / 500 GB.
DISKLIB-VMFS : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-flat.vmdk" : open successful (14) size = 536870912000, hd = 5664419. Type 3
DISKLIB-DSCPTR: Opened [0]: "AGEC-SERVER2008R2_1-flat.vmdk" (0xe)
DISKLIB-LINK : Opened '/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1.vmdk' (0xe): vmfs, 1048576000 sectors / 500 GB.
DISKLIB-CHAINESX : ChainESXOpenSubChain: numLinks = 2, numSubChains = 1
DISKLIB-CHAINESX : ChainESXOpenSubChain:(0) fid = 5664419, extentType = 2
DISKLIB-CHAINESX : ChainESXOpenSubChain:(1) fid = 5664418, extentType = 0
DISKLIB-LIB : Opened "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000001.vmdk" (flags 0xe, type vmfs).
Disk chain is consistent.
DISKLIB-VMFS : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000010-delta.vmdk" : closed.
DISKLIB-VMFS : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-flat.vmdk" : closed.
AIOMGR-S : stat o=2 r=6 w=0 i=0 br=98304 bw=0
AIOMGR-U : stat o=3 r=1 w=0 i=5 br=2048 bw=0
OBJLIB-LIB: ObjLib cleanup done.
But if I go up the chain one more delta....
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # vmkfstools -v 10 -e AGEC-SERVER2008R2_1-000002.vmdk
DISKLIB-VMFS : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002-delta.vmdk" : open successful (14) size = 185577472, hd = 6271401. Type 8
DISKLIB-DSCPTR: Opened [0]: "AGEC-SERVER2008R2_1-000002-delta.vmdk" (0xe)
DISKLIB-LINK : Opened '/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002.vmdk' (0xe): vmfsSparse, 1048576000 sectors / 500 GB.
DISKLIB-DSCPTR: descriptor above max size: 1158656000
DISKLIB-LINK : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000001-delta.vmdk" : failed to open (The file specified is not a virtual disk).
DISKLIB-CHAIN :"/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002.vmdk": Failed to open parent "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000001-delta.vmdk": The file specified is not a virtual disk.
DISKLIB-CHAIN : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000001-delta.vmdk" : failed to open (The parent of this virtual disk could not be opened).
DISKLIB-VMFS : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002-delta.vmdk" : closed.
DISKLIB-LIB : Failed to open '/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002.vmdk' with flags 0xe The parent of this virtual disk could not be opened (23).
DISKLIB-VMFS : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002-delta.vmdk" : open successful (12) size = 185577472, hd = 6304169. Type 8
DISKLIB-DSCPTR: Opened [0]: "AGEC-SERVER2008R2_1-000002-delta.vmdk" (0xc)
DISKLIB-LINK : Opened '/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002.vmdk' (0xc): vmfsSparse, 1048576000 sectors / 500 GB.
DISKLIB-CHAINESX : ChainESXOpenSubChain: numLinks = 1, numSubChains = 1
DISKLIB-CHAINESX : ChainESXOpenSubChain:(0) fid = 6304169, extentType = 0
DISKLIB-LIB : Opened "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002.vmdk" (flags 0xc, type vmfsSparse).
Disk link /vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002.vmdk successfully opened.
DISKLIB-DSCPTR: descriptor above max size: 1158656000
DISKLIB-LINK : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000001-delta.vmdk" : failed to open (The file specified is not a virtual disk).
DISKLIB-CHAIN : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000001-delta.vmdk" : failed to open (The file specified is not a virtual disk).
DISKLIB-LIB : Failed to open '/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000001-delta.vmdk' with flags 0xc The file specified is not a virtual disk (15).
Failed to open disk link /vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000001-delta.vmdk :The file specified is not a virtual disk (15)Disk chain is not consistent : The parent of this virtual disk could not be opened (23)
DISKLIB-VMFS : "/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2/AGEC-SERVER2008R2_1-000002-delta.vmdk" : closed.
AIOMGR-S : stat o=4 r=22 w=0 i=0 br=174208 bw=0
AIOMGR-U : stat o=3 r=2 w=0 i=4 br=4096 bw=0
OBJLIB-LIB: ObjLib cleanup done.
Here are the vmdk descriptor files I had to recreate. There are 10 total. This the first 2:
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000001.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=010000d1
parentCID=ab35c349
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000010-delta.vmdk"
# The Disk Data Base
#DDB
ddb.longContentID = "806f6d739509977d43cbe1196ef7c8f5"
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000002.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=10000d2
parentCID=01000d1
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1-000001-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000002-delta.vmdk"
# The Disk Data Base
#DDB
ddb.longContentID = "806f6d739509977d43cbe1196ef7c8f5"
And here is my vfms descriptor:
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=ab35c349
parentCID=ffffffff
isNativeSnapshot="no"
createType="vmfs"
# Extent description
RW 1048576000 VMFS "AGEC-SERVER2008R2_1-flat.vmdk"
# The Disk Data Base
#DDB
ddb.adapterType = "lsilogic"
ddb.geometry.cylinders = "65270"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "3a43f90f4a0828135c6c5ddbab35c349"
ddb.uuid = "60 00 C2 96 17 79 b7 12-1d 50 c0 aa e8 f3 e2 a8"
ddb.virtualHWVersion = "8"
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 #
Any help would be appreciated!
You are close, and the screenshot is ok. The delta/flat files are hidden from the GUI.
The only error that I can see is that "-delta" in the "parentFileNameHint". That needs to be removed.
Either edit your files, or use the ones that I've attached to this post.
Once uploaded, please check whether the VM's configuration (.vmx) file points to the latest snapshot file, which I assume is "AGEC-SERVER2008R2_1_000010.vmdk".
If you need to edit the .vmx file, don't forget to reload it (see https://kb.vmware.com/s/article/1026043) prior to powering on the VM. As mentioned in my previous post, I'd recommend that - prior to powering on the VM - you create another snapshot!
André
Welcome to the Community,
you've got a typo in "parentCID=01000d1" of "AGEC-SERVER2008R2_1-000002.vmdk", i.e. one "0" is missing".
In addition to this, the "parentFileNameHint" has to point to the descriptor .vmdk file rather than to a delta, or flat file.
A word of caution. Please be careful with chaining the snapshots. Note that the 6 digit number in the file names do not necessarily represent the snapshot sequence! To determine the correct order, either use the files' time stamps, or check any existing vmware.log files.
In any case, once you've recreated all the descriptor files, take another snapshot prior to powering on the VM, to have a way back in case it's needed!
As a side note. Omit the "ddb.longContentID" entry in the snapshot files. It's usually generated based on the CID (as you can see in the
André
Here is the files ordered by date. This is way over my head...
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # ls -laht
total 555379720
-rw------- 1 root root 1.1G Dec 9 05:52 AGEC-SERVER2008R2_1-000001-delta.vmdk
drwxr-xr-x 1 root root 3.8K Dec 9 05:48 .
-rw------- 1 root root 343 Dec 9 05:48 AGEC-SERVER2008R2_1-000001.vmdk
-rw------- 1 root root 356 Dec 9 05:41 AGEC-SERVER2008R2_1-000002.vmdk
-rw------- 1 root root 500.0G Dec 9 05:11 AGEC-SERVER2008R2_1-flat.vmdk
-rw------- 1 root root 483 Dec 9 04:55 AGEC-SERVER2008R2_1.vmdk
-rw------- 1 root root 356 Dec 9 04:39 AGEC-SERVER2008R2_1-000003.vmdk
-rw------- 1 root root 301 Dec 9 04:16 AGEC-SERVER2008R2_1-000009.vmdk
-rw------- 1 root root 301 Dec 9 04:16 AGEC-SERVER2008R2_1-000008.vmdk
-rw------- 1 root root 301 Dec 9 04:16 AGEC-SERVER2008R2_1-000007.vmdk
-rw------- 1 root root 301 Dec 9 04:15 AGEC-SERVER2008R2_1-000006.vmdk
-rw------- 1 root root 301 Dec 9 04:15 AGEC-SERVER2008R2_1-000005.vmdk
-rw------- 1 root root 301 Dec 9 04:14 AGEC-SERVER2008R2_1-000004.vmdk
-rw------- 1 root root 301 Dec 9 03:13 AGEC-SERVER2008R2_1-000010.vmdk
drwxr-xr-t 1 root root 2.3K Dec 7 20:48 ..
-rw------- 1 root root 17.7G Dec 6 17:31 AGEC-SERVER2008R2_1-000010-delta.vmdk
-rw------- 1 root root 705.0M Oct 7 18:56 AGEC-SERVER2008R2_1-000009-delta.vmdk
-rw------- 1 root root 817.0M Sep 28 04:04 AGEC-SERVER2008R2_1-000008-delta.vmdk
-rw------- 1 root root 2.6G Sep 23 07:18 AGEC-SERVER2008R2_1-000007-delta.vmdk
-rw------- 1 root root 129.0M Aug 24 17:32 AGEC-SERVER2008R2_1-000006-delta.vmdk
-rw------- 1 root root 1.4G Aug 22 19:08 AGEC-SERVER2008R2_1-000005-delta.vmdk
-rw------- 1 root root 2.3G Jul 17 06:32 AGEC-SERVER2008R2_1-000004-delta.vmdk
-rw------- 1 root root 2.8G Jun 13 18:30 AGEC-SERVER2008R2_1-000003-delta.vmdk
-rw------- 1 root root 177.0M Apr 6 2018 AGEC-SERVER2008R2_1-000002-delta.vmdk
Here is what the vmdk files look like.
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000001.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=e74d0666
parentCID=ab35c349
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000001-delta.vmdk"
# The Disk Data Base
#DDB
ddb.longContentID = "644940aa1f7b45cfab26f1fde74d0666"
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000002.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=010000d2
parentCID=010000d1
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1-000001-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000002-delta.vmdk"
# The Disk Data Base
#DDB
ddb.longContentID = "806f6d739509977d43cbe1196ef7c8f5"
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000003.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=010000d3
parentCID=010000d2
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1-000002-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000003-delta.vmdk"
# The Disk Data Base
#DDB
ddb.longContentID = "806f6d739509977d43cbe1196ef7c8f5"
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000004.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=010000d4
parentCID=010000d3
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1-000003-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000004-delta.vmdk"
# The Disk Data Base
#DDB
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000005.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=010000d5
parentCID=010000d4
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1-000004-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000005-delta.vmdk"
# The Disk Data Base
#DDB
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000006.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=010000d6
parentCID=001000d5
isNativeSnapshot="no"
createType="vmfSparse"
parentFileNameHint="AGEC-SERVER2008R2_1-000005-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000006-delta.vmdk"
# The Disk Data Base
#DDB
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000007.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=010000d7
parentCID=010000d6
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1-000006-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000007-delta.vmdk"
# The Disk Data Base
#DDB
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000008.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=010000d8
parentCID=010000d7
isNativeSnapshot="no"
createType="vmfsSparse
parentFileNameHint="AGEC-SERVER2008R2_1-000007-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000008-delta.vmdk"
# The Disk Data Base
#DDB
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000009.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=010000d9
parentCID=010000d8
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1-000008-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000009-delta.vmdk"
# The Disk Data Base
#DDB
/vmfs/volumes/53612937-dc2dee84-51cc-f8bc123d168c/AGEC-SERVER2008R2-Disk2 # cat AGEC-SERVER2008R2_1-000010.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=10000d10
parentCID=010000d9
isNativeSnapshot="no"
createType="vmfsSparse"
parentFileNameHint="AGEC-SERVER2008R2_1-000009-delta.vmdk"
# Extent description
RW 1048576000 VMFSSPARSE "AGEC-SERVER2008R2_1-000010-delta.vmdk"
# The Disk Data Base
#DDB
Is it normal not to show all the deltas in the sphere ui?
You are close, and the screenshot is ok. The delta/flat files are hidden from the GUI.
The only error that I can see is that "-delta" in the "parentFileNameHint". That needs to be removed.
Either edit your files, or use the ones that I've attached to this post.
Once uploaded, please check whether the VM's configuration (.vmx) file points to the latest snapshot file, which I assume is "AGEC-SERVER2008R2_1_000010.vmdk".
If you need to edit the .vmx file, don't forget to reload it (see https://kb.vmware.com/s/article/1026043) prior to powering on the VM. As mentioned in my previous post, I'd recommend that - prior to powering on the VM - you create another snapshot!
André
WAIT a second!
Your screenshot shows file .vmdk names that didn't exist previously!?
Did you change anything with the VM in the meantime?
André
I don't think so. Please explain....
The screenshot is very small, but isn't there a "AGEC-SERVER2008R2_1_000020.vmdk". in the list?
André
It looks like my previous post didnt post.
Sorry about that file. That was actually my template for the delta descriptor files. There were no descriptor files at all in the directory when I first checked it. The only thing I think that is different is the date on the first delta file is the newest. I'm kinda frozen in fear! I do not want to lose any of these changes. There was also a back
Delta2.vdmk, temp.vfmk and AGEC-SERVER2008R2_1-000020.vdmk are all new. I created them while making the new descriptors.
Man! I was scared to pull the trigger and after lots of backing up......
You are the man!!!! Totally worked.
I also used the vmkfstools -e AGEC-SERVER2008R2_1_000002.vmdk
vmkfstools -e AGEC-SERVER2008R2_1_000002.vmdk
vmkfstools -e AGEC-SERVER2008R2_1_000003.vmdk
vmkfstools -e AGEC-SERVER2008R2_1_000004.vmdk
vmkfstools -e AGEC-SERVER2008R2_1_000005.vmdk
vmkfstools -e AGEC-SERVER2008R2_1_000006.vmdk
vmkfstools -e AGEC-SERVER2008R2_1_000007.vmdk
This is where I founf the chain broken.
vmkfstools -e AGEC-SERVER2008R2_1_000010.vmdk also showed me the break but going up the chain is what helped me find the syntax error.
Thank you Andre! You are a lifesaver!