make a file-list of all vmdks
to do this open a cmd and change directory to the path of the patient
- then type
dir /b *.vmdk > list.txt
the list may look like this
Windows Vista.vmdk
Windows Vista-000001.vmdk
Windows Vista-000002.vmdk
Windows Vista-000003.vmdk
Windows Vista-000004.vmdk
extract all embedded descriptors
it is convenient to edit the list.txt so that you get a file like
this - safe it as list.cmd and run it
dsfo.exe "Windows Vista.vmdk" 512 800 "Windows Vista.txt"
dsfo.exe "Windows Vista-000001.vmdk" 512 800 "Windows
Vista-000001.txt"
dsfo.exe "Windows Vista-000002.vmdk" 512 800 "Windows
Vista-000002.txt"
dsfo.exe "Windows Vista-000003.vmdk" 512 800 "Windows
Vista-000003.txt"
dsfo.exe "Windows Vista-000004.vmdk" 512 800 "Windows
Vista-000004.txt"
type all descriptors into a file
again it is convenient to write a btach for it - but feel
free to do it manually
echo. > listed-descriptors.txt
echo ###################### "Windows Vista.txt" >>
listed-descriptors.txt
echo. >> listed-descriptors.txt
type "Windows Vista.txt" >> listed-descriptors.txt
echo ###################### "Windows Vista-000001.txt"
>> listed-descriptors.txt
echo. >> listed-descriptors.txt
type "Windows Vista-000001.txt" >> listed-descriptors.txt
echo ###################### "Windows Vista-000002.txt"
>> listed-descriptors.txt
echo. >> listed-descriptors.txt
type "Windows Vista-000002.txt" >> listed-descriptors.txt
echo ###################### "Windows Vista-000003.txt"
>> listed-descriptors.txt
echo. >> listed-descriptors.txt
type "Windows Vista-000003.txt" >> listed-descriptors.txt
echo ###################### "Windows Vista-000004.txt"
>> listed-descriptors.txt
echo. >> listed-descriptors.txt
type "Windows Vista-000004.txt" >> listed-descriptors.txt
the result looks like this
###################### Windows Vista.txt ########################
# Disk DescriptorFile
version=1
CID=848cbe64
parentCID=ffffffff
createType="monolithicSparse"
# Extent description
RW 104857600 SPARSE "Windows Vista.vmdk"
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "6"
ddb.geometry.cylinders = "6527"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "lsilogic"
ddb.toolsVersion = "7238"###################### Windows
Vista-000001.txt ########################
# Disk DescriptorFile
version=1
CID=195cf01f
parentCID=c27c3cf2
createType="monolithicSparse"
parentFileNameHint="Windows Vista-000003.vmdk"
# Extent description
RW 104857600 SPARSE "Windows Vista-000001.vmdk"# The Disk
Data Base
#DDBddb.toolsVersion = "7238"
###################### Windows Vista-000002.txt ########################
# Disk DescriptorFile
version=1
CID=c750afeb
parentCID=5cdd6af0
createType="monolithicSparse"
parentFileNameHint="Windows Vista-000004.vmdk"
# Extent description
RW 104857600 SPARSE "Windows Vista-000002.vmdk"# The Disk
Data Base
#DDBddb.toolsVersion = "7238"###################### Windows
Vista-000003.txt ########################
# Disk DescriptorFile
version=1
CID=c27c3cf2
parentCID=c750afeb
createType="monolithicSparse"
parentFileNameHint="Windows Vista-000002.vmdk"
# Extent description
RW 104857600 SPARSE "Windows Vista-000003.vmdk"# The Disk
Data Base
#DDB
ddb.toolsVersion = "7238"###################### Windows
Vista-000004.txt ########################
# Disk DescriptorFile
version=1
CID=5cdd6af0
parentCID=9a1f1a1f
createType="monolithicSparse"
parentFileNameHint="Windows Vista.vmdk"
# Extent description
RW 104857600 SPARSE "Windows Vista-000004.vmdk"# The Disk
Data Base
#DDB
ddb.toolsVersion = "7238"
make the list look nice by removing unimportant
lines
###################### Windows Vista.txt ########################
CID=848cbe64
parentCID=ffffffff
RW 104857600 SPARSE "Windows Vista.vmdk"
###################### Windows Vista-000001.txt ########################
CID=195cf01f
parentCID=c27c3cf2
parentFileNameHint="Windows Vista-000003.vmdk"
RW 104857600 SPARSE "Windows Vista-000001.vmdk"
###################### Windows Vista-000002.txt ########################
CID=c750afeb
parentCID=5cdd6af0
parentFileNameHint="Windows Vista-000004.vmdk"
RW 104857600 SPARSE "Windows Vista-000002.vmdk"
###################### Windows Vista-000003.txt ########################
CID=c27c3cf2
parentCID=c750afeb
parentFileNameHint="Windows Vista-000002.vmdk"
RW 104857600 SPARSE "Windows Vista-000003.vmdk"
###################### Windows Vista-000004.txt ########################
CID=5cdd6af0
parentCID=9a1f1a1f
parentFileNameHint="Windows Vista.vmdk"
RW 104857600 SPARSE "Windows Vista-000004.vmdk"
sort the listing
- start with the basedisk
- next the file that references the basedisk as parent
- next the file that references the first snapshot as parent and
so on
- in this case the chain looks like basedisk - 000004 -000002 -000003
-000001
###################### Windows Vista.txt ########################
CID=848cbe64
parentCID=ffffffff
RW 104857600 SPARSE "Windows Vista.vmdk"
ddb.geometry.cylinders = "6527"
###################### Windows Vista-000004.txt ########################
CID=5cdd6af0
parentCID=9a1f1a1f
parentFileNameHint="Windows Vista.vmdk"
RW 104857600 SPARSE "Windows Vista-000004.vmdk"
###################### Windows Vista-000002.txt ########################
CID=c750afeb
parentCID=5cdd6af0
parentFileNameHint="Windows Vista-000004.vmdk"
RW 104857600 SPARSE "Windows Vista-000002.vmdk"
###################### Windows Vista-000003.txt ########################
CID=c27c3cf2
parentCID=c750afeb
parentFileNameHint="Windows Vista-000002.vmdk"
RW 104857600 SPARSE "Windows Vista-000003.vmdk"
###################### Windows Vista-000001.txt ########################
CID=195cf01f
parentCID=c27c3cf2
parentFileNameHint="Windows Vista-000003.vmdk"
RW 104857600 SPARSE "Windows Vista-000001.vmdk"
analyse the CID-chain
- the parentCID-value must match the CID-value of the parent
- so following the chain starting from the last snapshot find a
break in the chain
in snapshot 4. It does not reference its parent correctly.
See the value marked yellow
fix the CID-chain
in this case we just need to edit the CID-value in the basedisk
###################### Windows Vista.txt ########################
CID=9a1f1a1f
parentCID=ffffffff
RW 104857600 SPARSE "Windows Vista.vmdk"
ddb.geometry.cylinders = "6527"
###################### Windows Vista-000004.txt ########################
CID=5cdd6af0
parentCID=9a1f1a1f
parentFileNameHint="Windows Vista.vmdk"
RW 104857600 SPARSE "Windows Vista-000004.vmdk"
###################### Windows Vista-000002.txt ########################
CID=c750afeb
parentCID=5cdd6af0
parentFileNameHint="Windows Vista-000004.vmdk"
RW 104857600 SPARSE "Windows Vista-000002.vmdk"
###################### Windows Vista-000003.txt ########################
CID=c27c3cf2
parentCID=c750afeb
parentFileNameHint="Windows Vista-000002.vmdk"
RW 104857600 SPARSE "Windows Vista-000003.vmdk"
###################### Windows Vista-000001.txt ########################
CID=195cf01f
parentCID=c27c3cf2
parentFileNameHint="Windows Vista-000003.vmdk"
RW 104857600 SPARSE "Windows Vista-000001.vmdk"
check current vmx-file
the vmx-file should reference the last snapshot - in this case it
should reference Windows Vista-000001.vmdk
edit the extracted descriptors
in this case only one value in one file needs to be edited - the
CID-value in Windows Vista.vmdk needs to be changed
to do this we need to edit the extracted descriptor Windows Vista.txt
so that it looks like this - the only edit is marked yellow
# Disk DescriptorFile
version=1
CID=9a1f1a1f
parentCID=ffffffff
createType="monolithicSparse"
# Extent description
RW 104857600 SPARSE "Windows Vista.vmdk"
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "6"
ddb.geometry.cylinders = "6527"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "lsilogic"
re-inject the edited descriptors
to do this use dsfi.exe from the dsfok-tools - it is important
that you use the same values as during extraction
dsfi.exe "Windows Vista.vmdk" 512 800 "Windows
Vista.txt"
|