ls -lh /vmfs/volumes/datastore1/YourVM/ Look for *-flat.vmdk . If it exists but the small .vmdk is missing or zero bytes, recovery is possible. You have three reliable methods. Method A: Use vmkfstools (ESXi command line) This is the safest and fastest method.
The descriptor points to the flat file. Without it, VMware has no way to interpret the raw data. Check the file size. A flat VMDK should be exactly the provisioned size of the disk (e.g., 40 GB). Use the datastore browser or command line: recover virtual machine from flat vmdk
Introduction If you have ever browsed a VMware datastore, you have likely seen two files for a single virtual disk: a small .vmdk (descriptor file) and a large -flat.vmdk (raw data file). When the descriptor file is missing, corrupted, or accidentally deleted, the VM cannot be powered on or registered—even though your actual data is safe inside the -flat.vmdk . ls -lh /vmfs/volumes/datastore1/YourVM/ Look for *-flat
This guide explains exactly how to recover a fully functional virtual machine from a flat VMDK file. | File | Purpose | |------|---------| | vmname.vmdk | Small text descriptor (disk geometry, CID, parent link, etc.) | | vmname-flat.vmdk | Raw binary data (all VM contents: OS, files, partitions) | Method A: Use vmkfstools (ESXi command line) This
Critical: The extent size must match the flat file size in sectors. Compute:
# Disk DescriptorFile version=1 CID=12345678 parentCID=ffffffff createType="vmfs" RW 83886080 VMFS "recovered-flat.vmdk" The Disk Data Base ddb.adapterType = "lsilogic" ddb.geometry.cylinders = "5221" ddb.geometry.heads = "255" ddb.geometry.sectors = "63" ddb.longContentID = "abcdef1234567890" ddb.thinProvisioned = "1" ddb.virtualHWVersion = "13"