Home
Documentation
VM-Sickbay
MOA
News
About
by
Ulli Hankeln
In emergencies visit Sickbay
[ <<< = back to Table
of Content ]
This chapter explains the basics.
It is recommended to read it completely - as it describes the terminology
used throughout this handbook.
<<<
This is an updated summary of a lot of pages scattered all over sanbarrow.com
Target audience: VMware powerusers , Forensic Investigators , Data recovery
To avoid confusion I do not use terms like growable disk or preallocated
disk. Instead I use the internal VMware names.
Most of the times when I mention Workstation the results also apply to other
hosted platforms such as VMserver , VMplayer or Fusion. But do not count
on that - Workstation is state of the art as far as vmdk-handling is concerned.
Other platforms may lack some of the newest features.
Part of this was copied from older sites I made so the style of writing
may differ - this will be corrected later.
If you right now look for help in an emergency also visit my site
or contact me at VMTN or via email.
Hope you find this useful
Ulli Hankeln
<<<
Well you have to judge that yourself.
All I can say is that when ever somebody calls me to rescue his data I use
the know how I summed up here.
So if it works ... enough said.
The usual disclaimer: if you reproduce anything explained here and it goes
wrong it is your responsibility.
When you have to recover mission critical data ask VMware
or Ontrack
first.
Come back when both can not help you or in case you do not want to pay their
service.
If you ask for help with data recovery from vmdks at VMTN
or the german VMware-forum chances
are high
that someone tells you to ask me so you can as well read on ...
<<<
When ever a virtual machine accesses a virtual or physical disk it uses
an indirect way.
The virtual machine itself only "sees" a small text file which
is a detailed description of the virtual disk.
The VMware program no matter if it is Workstation or ESX then links from
this description to the actual data.
This small text file with the extension *.vmdk uses an ini-like format.
It needs no strict syntax - and it does not use section names.
To comment lines use #
Optional parameters and comments can be ommitted.
This ini-like file is stored as human readable plain text-file.
The actual data of a virtual disk is stored in a binary format in a file
or directly in a physical disk.
In the description file the VMware program - not the virtual achine - then
looks up the path to the actual data.
The actual data can be inside any of this ...
*-flat.vmdk , *-s001.vmdk , *-f001.vmdk , *-delta.vmdk
*.dd , *.img , *.v2i , *.spf
\\.\PhysicalDrive0 , /dev/sda
Most of the different virtual disk types uses the description.vmdk file
plus external data stored in various formats.
Only one type - known as "one piece growable" combines both "parts"
in one file.
In this case the description in plain text is embedded in the large binary
data file.
<<<
The most reliable way to identify the vmdk-type is to look it up in the
description itself.
The "createType" parameter lists the exact type.
You can guess the type by looking at the size and extensions of the files
that are present.
a 1 Kb small *.vmdk is probably the description text file used by most types
a 1 Kb small *-00000*.vmdk is probably the descriptor of a snapshot
a max 2Gb large *-s00*.vmdk is probably part of twoGbMaxExtentSparse
a max 2Gb large *-00000*-s00*.vmdk is probably part of snapshot on hosted
platforms
a 2Gb large *-f00*.vmdk is probably part of a twoGbMaxExtentFlat
a *-f00*.vmdk smaller then 2 Gb is probably the last slice of part of a
twoGbMaxExtentFlat
a large *-flat.vmdk is probably part of a monolithicFlat
or vmfs
a large *-delta.vmdk is probably part of a ESX-snapshot
a large *-00000*.vmdk is probably a snapshot with embedded descriptor used
on hosted platforms
A note for ESX-users:
Do not use Datastorebrowser to identify vmdks or download them for editiing.
The Datastorebrowser does not display vmdks correctly.
It usually hides *-flat.vmdks and *-delta.vmdks.
To copy vmdks from ESX to a Windows host for editing I recommend WinSCP
, VEEAM FastSCP , TRIlead VMXexplorer.
<<<
The actual size of a virtual disk can be as large as the nominal disk
size or it can be as large as the actual used data.
In the first case the virtual disk data is stored in a way like a raw disk
image - like it can be created with Linux dd -
would be stored. In fact both formats are the same. In VMware terms this
way is called FLAT.
In the second case only changes to the disks are stored in a proprietary
way and the files can not be handled by standard tools like Linux dd. In
VMware terms this way is called SPARSE.
FLAT virtual disks do not grow when you add data inside the guest. Performance
does not degrade over time.
SPARSE virtual disks grow when you add data inside the guest. Performance
degrades the longer the disk is in use.
FLAT vmdks are large - but they do not need regular maintenance and monitoring
and perform well.
SPARSE vmdks are small - but they do not perform as well and need maintenance
to keeep the size small.
FLAT vmdks are quite safe. Data can be extracted with various non-proprietary
tools.
SPARSE vmdks are more fragile. Special tools that understand the extra layer
must be used to extract data.
Workstation can use FLAT or SPARSE for regular vmdks and it uses SPARSE
for snapshots.
ESX always uses FLAT for regular vmdks and SPARSE for snapshots.
When ESX offers to store its FLAT files as thin provisioned this actually
uses a feature of the VMFS filesystem.
This is no different vmdk-type. If you copy a thin provisioned vmdk from
ESX to a filesystem that does not support
"thin provisioning" it arrives as regular FLAT vmdk - thick provisioned.
So do not mix SPARSE with thin provisioned - that is something really different.
Only the effect is similar.
Regular vmdks means that this are complete virtual disks that can be used
by a VM
or can be mounted by any of the third-party mount-tools.
The description text defines all parameters - including geometry, adapter
type and used binary data files.
To recover data you need the text description and all referenced binary
files.
VMware-name | plat- form |
files | max size |
desc- riptor as text- file |
type see * |
extensions | |
---|---|---|---|---|---|---|---|
monolithicSparse |
WS | 1 | 950Gb or 2 Tb |
no | 0 | *.vmdk | This is a growing disk in one piece - the only disk type that uses no external descriptor but an embedded one |
monolithicFlat |
WS | 2 | 950Gb or 2Tb |
yes | 2 | *.vmdk + *-flat.vmdk |
This is a pre-allocated disk in one piece |
twoGbMaxExtentSparse |
WS | 1 + x |
2Gb slices | yes | 1 | *.vmdk + *-s00*.vmdk |
This is a growing disk split into 2Gb chunks |
twoGbMaxExtentFlat |
WS | 1 + x |
2Gb slices | yes | 3 | *.vmdk + *-f00*.vmdk |
This is a preallocated disk split into 2Gb chunks |
vmfs | ESX WS |
2 | depends on block size of VMFS on ESX 256 = 1 Mb 512 = 2 Mb 1024 = 4 Mb 2048 = 8 Mb on Workstation upto 2 Tb |
yes | 4 / 6 |
*.vmdk + *-flat.vmdk |
This is a variant of the "monolithicFlat" format. The max size depends on the block size used to format the VMFS-filesystem. This type can appear as thin provisioned or thick provisioned. For this discussion this subtypes make no difference. Thin provision is a feature of VMFS - not of this disktype itself. Don't mix thin provisioned VMFS-type with monolithicSparse |
custom | WS | 2 | yes | *.vmdk + third-part-image |
Used to mount v2i-and other third party formats | ||
streamOptimized | 1 | no | *.vmdk | Used with ovf-xml files actually this is a variant of the monolithiocSparse format |
* = The type column shows the disktype that can be entered when creating
vmdks with vmware-vdiskmanager on a Workstation host.. Note that older versions
can only handle 0 - 3
this types use a small textfile to describe a physical disk.
VMware-name | plat- form |
files | max size |
desc- riptor as text- file |
extensions | |
---|---|---|---|---|---|---|
fullDevice |
WS | description + physical disk |
2kb | yes | *.vmdk | this is a physical disk useing the full disk this type is used by Workstation |
partitionedDevice |
WS | description + copy of MBR + physical disk |
2kb | yes | *.vmdk | this is a physical disk and you can allow access per partition this type is used by Workstation |
vmfsRawDeviceMap | ESX | description + link + physical disk |
this is a physical disk used by ESX also called Mapped RAW LUN this type does NOT allow snapshots |
|||
vmfsPassthrough-RawDeviceMap | ESX | description + link + physical disk |
? | yes | *.vmdk | this is a physical disk used by ESX also called Mapped RAW LUN this type allows snapshots |
Snapshots - I prefer to call them REDOlogs - can be stored in this 3 different
formats.
You can mix different formats in one snapshot-chain but this is NOT recommended
!
Usually you let VMware decide which format to use for the REDOlogs.
The description text of a snapshot does not define the disk geometry.
Instead it has a pointer to its parent-disk.
Snapshots can be expanded but this is not recommended - only use in emergencies.
The content of a snapshot vmdk can not be analysed directly.
To read data from a snapshot vmdk it must be attached to a parent disk.
VMware-name | plat- form |
files | max size |
desc- riptor as text- file |
extensions | comment |
---|---|---|---|---|---|---|
monolithicSparse snapshot |
WS | 1 | 950Gb or 2 TB |
no | *-00000*.vmdk | monolithic snapshot - can grow to nominal size |
twoGbMaxExtentSparse snapshot |
WS | 1 + x | 2Gb | yes | *-00000*.vmdk *-00000*-s00*.vmdk |
snapshot split in chunks - max size 2Gb |
vmfsSparse snapshot |
ESX WS |
2 | depends on block size of VMFS on ESX 256 = 1 Mb 512 = 2 Mb 1024 = 4 Mb 2048 = 8 Mb |
yes | *-00000*.vmdk *-00000*-delta.vmdk |
monolithic snapshot used by ESX |
The different platforms can use different formats.
native format = this format can be created by using the GUI
native snapshots = this snapshot format can be created with the Snapshotmanager
native physical disk description = this type of physical disk description
is used by the Add-hardware-wizard
import = lists which formats can be imported by the GUI
can handle = this formats can be used but may not be supported - experts
only
native format : monolithicSparse
, monolithicFlat , twoGbMaxExtentSparse
, twoGbMaxExtentFlat
native snapshots : monolithicSparse-snapshot
, twoGbMaxExtentSparse-snapshot
native physical disk description: fullDevice
, partitionedDevice
import: streamOptimized
can handle : vmfs and vmfsSparse
Workstation 7.0 typically uses ddb.virtualHWVersion = 7
Workstation 6.5 typically uses ddb.virtualHWVersion = 7
Workstation 5.5 typically uses ddb.virtualHWVersion = 6
Workstation 4.5 typically uses ddb.virtualHWVersion = 4
Workstation 4.0 typically uses ddb.virtualHWVersion = 3
Workstation 3.2 typically uses ddb.virtualHWVersion = 2
<<<
native format : not implemented
native snapshots : not implemented
native physical disk description: not implemented
import: streamOptimized
can handle : monolithicSparse
, monolithicFlat , twoGbMaxExtentSparse
, twoGbMaxExtentFlat ,
monolithicSparse-snapshot
, twoGbMaxExtentSparse-snapshot
VMplayer 2 typically uses ddb.virtualHWVersion = 4
<<<
native format : monolithicSparse
, monolithicFlat , twoGbMaxExtentSparse
, twoGbMaxExtentFlat
native snapshots : monolithicSparse-snapshot
, twoGbMaxExtentSparse-snapshot
native physical disk description: fullDevice
, partitionedDevice
import: streamOptimized
VMplayer 3 typically uses ddb.virtualHWVersion = 7
<<<
native format : monolithicSparse
, monolithicFlat , twoGbMaxExtentSparse
, twoGbMaxExtentFlat
native snapshots : monolithicSparse-snapshot
, twoGbMaxExtentSparse-snapshot
native physical disk description: fullDevice
, partitionedDevice
VMplayer 1 typically uses ddb.virtualHWVersion = 4
<<<
native format : monolithicSparse
, monolithicFlat , twoGbMaxExtentSparse
, twoGbMaxExtentFlat
native snapshots : monolithicSparse-snapshot
, twoGbMaxExtentSparse-snapshot
native physical disk description: not implemented
import: streamOptimized
can handle : fullDevice
, partitionedDevice
VMplayer 2 typically uses ddb.virtualHWVersion = 4 or 7
<<<
native format : monolithicSparse
, monolithicFlat , twoGbMaxExtentSparse
, twoGbMaxExtentFlat
native snapshots : monolithicSparse-snapshot
, twoGbMaxExtentSparse-snapshot
import: streamOptimized
Fusion typically uses ddb.virtualHWVersion = 7
<<<
native format :vmfs
native snapshots : vmfsSparse
native physical disk description : vmfsPassthroughRawDeviceMap
, vmfsRawDeviceMap
import: streamOptimized and twoGbMaxExtentSparse
ESX 3 typically uses ddb.virtualHWVersion = 4
ESX 4 typically uses ddb.virtualHWVersion = 7
Note that the parameters that are listed in a vmdk differ depending on the
version of VMware that created them.
In all versions a vmdk description file MUST at least define the parameters
listed
in the next boxto be recognized as a valid virtual disk:
version=1 | always use 1 at the moment do not use quotes |
CID=fffffffe parentCID=ffffffff |
00000000 - ffffffff is the valid range do not use quotes for more info read |
createType= | monolithicSparse monolithicFlat twoGbMaxExtentSparse twoGbMaxExtentFlat fullDevice partitionedDevice custom streamOptimized vmfs vmfssparse vmfsPassthroughRawDeviceMap |
# Extent description RW 18432000 SPARSE "test.vmdk" # Extent description RW 63 FLAT "test-pt.vmdk" 0 RW 24579387 FLAT "\\.\PhysicalDrive0" 63 RW 131716935 ZERO RW 5103 ZERO # Extent Description RDONLY 63 ZERO RDONLY 156296322 V2I "import.v2i" RDONLY 32130 ZERO |
This section defines where
the actual data is stored. Each line defines - separated by spaces : <access type> <size> <vmdk-type> <path to datachunk> <offset> <access type> options are RW or RDONLY <size> gives the nominal size in sectors <vmdk-type> options are FLAT , SPARSE , VMFS , V2I , ZERO <path to data-chunk> examples are "test.vmdk" or "\\.\PhysicalDrive0" <offset> offset is given in sectors. Paths can be absolute or relative - of course it is highly recommended to use relative paths. for more examples inspect the disktype-example-list |
ddb.virtualHWVersion = | "4" = Workstation 4, VMserver
, ESX 3 "6" = Workstation 5 "7" = Workstation 6 , VMserver 2 , ESX 4 |
ddb.adapterType = | valid options are "ide" , "buslogic"
, "lsilogic" for all the newer types like LSI-SAS use "lsilogic" |
Disk-geometry parameters only appear in regular vmdks - not in snapshots
ddb.geometry.cylinders =
* ddb.geometry.heads = "16" ddb.geometry.sectors = "63" ddb.geometry.cylinders = "16383" ddb.geometry.heads = "16" ddb.geometry.sectors = "63" ddb.geometry.cylinders = * ddb.geometry.heads = "255" ddb.geometry.sectors = "63" |
first block shows the typical geometry
for a IDE disk smaller than 8 Gb second block shows the typical geometry of a IDE-disk larger thaan 8 Gb - yes - for any larger IDE-disk you can use this fixed values ! last block shows a typical geometry for a SCSI-disk |
The following parameter is only used by snapshots - not in regular vmdks
parentFileNameHint="test.vmdk" | this sets the path to the parent disk relative paths and absolute paths can be used |
The following parameters are optional.
ddb.geometry.biosSectors = ddb.geometry.biosHeads = ddb.geometry.biosCylinders = |
BIOS-geometry - often used by physical disk description can skipped |
encoding= | Do not mess with the encoding parameter unless you really have to ! |
isNativeSnapshot= |
|
ddb.uuid = ddb.longContentID = |
autogenerated values - do not change if unsure do not use this parameters in recovery scenarios you can ommit this |
ddb.deletable = | options are "true" or "false" this parameter is used by VMware backup tools like VCB and VDR in recovery scenarios you can ommit this |
ddb.thinProvisioned = | options are "0" and "1" regard this as a "for your information only" parameter. A disk stored on VMFS will use the setting "1" if it is currently useing thin provision. Disk stored with thick provision don't have this setting or it is set to "0" |
VMware uses CID-values to verify if the snapshot chain is clean before
starting a VM.
If a snapshot chain is corrupt the CID-chain is broken.
Snapshot chains may get corrupted when
- snapshots were deleted manually
- the host crashed
- the system run out of diskspace
- unwise manual edits of vmdk or vmx-files
- a virtual disk was attached to a different VM
- the basedisk was expanded
- ....
All those mentioned cases will be noticed by VMware at startup because
of a break in the CID-chain..
As starting the VM in this conditions would further corrupt the virtual
disks the VM will not be started.
In this simplified listing of one basedisk and its two snapshots in all
cases the child references the CID-value of its parent correctly.
###################### 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"
In this simplified listing of one basedisk and its two snapshots
the parentCID in the first snapshot does NOT reference the correct CID-value
of its parent.
This means that during the last use of the "windows Vista.vmdk"
it probably was used
by another VM, or it was expanded or ...
###################### Windows Vista.txt
CID=a123b123
parentCID=ffffffff
RW 104857600 SPARSE "Windows Vista.vmdk"
###################### 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"
CID=fffffffe
parentCID=ffffffff
This vmdk is a newly created basedisk
CID=fffffffe
parentCID=ffffffff
This vmdk is a newly created basedisk
CID=12345678
parentCID=12345678
When the parentCID-value matches the CID-value this snapshot may
have
been created while the VM was powered off.
Using identical values when manually editing CID-chains is not recommended.
A vmdk can be connected to different controllers
- IDE
- Bus-logic-controller
- LSI-logic-controller
- LSI-logic SAS-controller
- new paravirtualised SCSI-controller
In the vmdk-description this is assigned in the parameter
ddb.adapterType =
The vmdk description only understands three values : "ide" , "buslogic"
, "lsilogic"
For all the newer controllers like the LSI-SAS use "lsilogic".
If you need to change the adapter-type of a disk that is used to boot a
guest it is recommended
to also change the disk-geometry.
If the disk is only used for data adjusting the geometry may not be necessary.
Keep in mind that the adapter-type for a VM is also configured in the vmx-file.
So if you rewrite a IDE-disk to a SCSI-disk do not forget to also change
/ check the vmx-file
ide0:0.filename = "ide-disk.vmdk"
to
scsi0.present = "true"
scsi0.virtualDev = "lsilogic"
scsi0:0.present = "true"
scsi0:0.filename = "changed-disk.vmdk"
There are several reasons why you want to calculate the disk-geometry manually:
- change the adapter-type of an existing vmdk
- create a vmdk description for a dd-file
- create a vmdk description for a img-file like used by Starwind
- create a vmdk description for a *-flat.vmdk when the original description
is lost
For all cases we first need the nominal size of the disk in sectors.
Look up the size of the image-file in bytes.
<size of image in bytes> / 512 = <size in sectors>
Next decide which type of geometry you want : IDE or SCSI
For SCSI-disks the typical geometry is * cylinders x 255 heads x 63 sectors
ddb.geometry.cylinders = *
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
To get the number of cylinders calculate
<size in sectors> / 16065 = <number of cylinders>
When the vmdk uses adapertype buslogic or lsilogic this formula is valid
for all disks larger than 1 Gb
For IDE-disks the typical geometry is * cylinders x 16 heads x 63 sectors
ddb.geometry.cylinders = *
ddb.geometry.heads = "16"
ddb.geometry.sectors = "63"
To get the number of cylinders calculate
<size in sectors> / 1008 = <number of cylinders>
When the vmdk uses adapertype ide the maximum value for <number of cylinders>
is 16383.
So for all disks larger than that - 8Gb - you can use this geometry
ddb.geometry.cylinders = "16383"
ddb.geometry.heads = "16"
ddb.geometry.sectors = "63"
# Disk DescriptorFile |
"monolithicSparse" native Workstation format Required files: Very convenient format as long as everything works fine. |
# Disk DescriptorFile |
|
# Disk DescriptorFile |
"twoGbMaxExtentSparse"native Workstation format Required files: Can be imported to ESX with vmkfstools Can be exported from ESX with vmkfstools |
# Disk DescriptorFile |
|
# Disk DescriptorFile # Extent description # The Disk Data Base ddb.virtualHWVersion = "4" |
|
# Disk DescriptorFile version=1 encoding="windows-1252" CID=f19b298e parentCID=ffffffff createType="streamOptimized" # Extent description RW 16777216 SPARSE "test.vmdk" # The Disk Data Base #DDB ddb.geometry.biosSectors = "63" ddb.geometry.biosHeads = "255" ddb.geometry.biosCylinders = "1044" ddb.adapterType = "lsilogic" ddb.geometry.sectors = "63" ddb.geometry.heads = "255" ddb.geometry.cylinders = "1044" ddb.uuid = "60 00 C2 9f 9b b0 9d 17-15 6c 54 9c 40 8d 33 71" ddb.virtualHWVersion = "7" ddb.toolsVersion = "0" |
"streamOptimized"portable format Required files: this type is used along with an ovf file |
# Disk DescriptorFile # The Disk Data Base ddb.toolsVersion = "7202" |
"vmfsSparse"
|
# Disk DescriptorFile # The Disk Data Base ddb.virtualHWVersion = "6" |
|
# Disk DescriptorFile # The Disk Data Base |
Snapshot used by Workstation
|
# Disk DescriptorFile |
|
# Disk DescriptorFile |
|
# Disk DescriptorFile version=1 encoding="UTF-8" CID=0dd6c4a4 parentCID=ffffffff createType="vmfsPassthroughRawDeviceMap" # Extent description RW 156301488 VMFSRDM "iscsi-lun-rdmp.vmdk" # The Disk Data Base #DDB ddb.virtualHWVersion = "7" ddb.longContentID = "32d4a0950fb635a71add77e10dd6c4a4" ddb.uuid = "60 00 C2 93 7d 93 ff 85-b2 c0 9a 49 9b aa 70 88" ddb.geometry.cylinders = "9729" ddb.geometry.heads = "255" ddb.geometry.sectors = "63" ddb.adapterType = "lsilogic" |
"vmfsPassthroughRawDeviceMap"physical disk used by ESX Required files: test.vmdk and test-rdmp.vmdk The rdmp-file is a link to the physical disk. In datastorebrowser or winscp it seems to have the same size as the capacity of the physical device. In the virtual hardware editor of ESX this type is listed as Mapped Raw Lun. To create this type click "add disk" - select LUN and select "virtual" compat mode. |
# Disk DescriptorFile version=1 encoding="UTF-8" CID=0dd6c4a4 parentCID=ffffffff createType="vmfsRawDeviceMap" # Extent description RW 156301488 VMFSRDM "iscsi-lun-rdm.vmdk" # The Disk Data Base #DDB ddb.virtualHWVersion = "7" ddb.longContentID = "32d4a0950fb635a71add77e10dd6c4a4" ddb.uuid = "60 00 C2 93 7d 93 ff 85-b2 c0 9a 49 9b aa 70 88" ddb.geometry.cylinders = "9729" ddb.geometry.heads = "255" ddb.geometry.sectors = "63" ddb.adapterType = "lsilogic" |
"vmfsRawDeviceMap"
Required files: iscsi-lun.vmdk and iscsi-lun-rdm.vmdk The rdm-file is a link to the physical disk. In datastorebrowser or winscp it seems to have the same size as the capacity of the physical device. In the virtual hardware editor of ESX this type is listed as Mapped Raw Lun. To create this type click "add disk" - select LUN and select "physical" compat mode. |
# Disk Descriptor file # Extent Description # The disk database |
|
# Disk Descriptor file # Extent Description # The disk database
|
"custom"
|
# Disk DescriptorFile .... # The Disk Data Base ddb.encoding = "windows-1252" |
this is a snapshot for the Stoarge Craft Shadow protect from above |
# Disk DescriptorFile version=1 CID=77ae5c02 parentCID=ffffffff createType="twoGbMaxExtentFlat" # Extent description RW 8388608 FLAT "multiple-expand-flat.vmdk" 0 RW 8388608 FLAT "multiple-expand-flat1.vmdk" 0 # The Disk Data Base #DDB ddb.toolsVersion = "0" ddb.adapterType = "ide" ddb.geometry.sectors = "63" ddb.geometry.heads = "16" ddb.geometry.cylinders = "16383" ddb.virtualHWVersion = "4" |
experimental
|