Virtual Disk Descriptor Missing

"Virtual Disk Descriptor Missing" — Fix in Under 30 Minutes

Server & Cloud Intermediate 👁 6 views 📅 Jun 22, 2026

Got this error on VMware or Hyper-V? Means your VM can't find its virtual disk file. Here's how to fix it fast, no BS.

First Things First — What Actually Happens Here

You try to start your VM, and bam — error that the virtual disk descriptor is missing. I've seen this on VMware Workstation, ESXi, and even Hyper-V setups. It means the VM can't read the small descriptor file that tells it what kind of disk it's attached to. Usually happens after a crash, a bad backup restore, or someone manually moving files around. Had a client last month whose entire print queue died because of this on a Hyper-V host — they'd deleted the wrong file thinking it was temp data.

The real fix depends on whether the actual disk data (the big .vmdk or .vhdx file) is still there. Let's start with the quick stuff.

Quick Fix (30 Seconds) — Check the File Names

This sounds stupid simple, but it's the number one cause. Open the folder where your VM lives. You're looking for two files per disk:

  • For VMware: A small .vmdk file (like 1KB) and a big -flat.vmdk file (the real data, often gigabytes).
  • For Hyper-V: A .vhdx file (big) and sometimes a .avhdx file (for checkpoints).

If someone renamed the big file or moved it to a different folder, the VM can't find it. Fix: make sure the file names match exactly what the VM config (.vmx or .xml) expects. Common mistake: renaming the -flat.vmdk but not the small descriptor. I've seen admins do this after a backup restore — they only restore the big file and forget the small one.

Still broken? Move to the next step.

Moderate Fix (5 Minutes) — Rebuild the Descriptor in VMware

This is for VMware specifically, since Hyper-V doesn't use separate descriptor files. If the small .vmdk descriptor file is missing or corrupted, but the big -flat.vmdk is fine, you can rebuild it.

  1. Open VMware Workstation or vSphere client.
  2. Create a new VM, but don't add a disk yet.
  3. After the VM is created, edit settings, add new virtual disk, and select "Use an existing virtual disk".
  4. Browse to the -flat.vmdk file. VMware will ask you to point to the descriptor or create one.
  5. Let it create a new descriptor file. It'll generate a fresh small .vmdk that points to the big file.

Alternatively, if you're comfortable with text editing, you can create a descriptor file manually. Here's a template for a typical 40GB SCSI disk:

# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=fffffffe
parentCID=ffffffff
createType="vmfs"

# Extent description
RW 83886080 VMFS "vmname-flat.vmdk"

# The Disk Data Base
#DDB

adapterType="lsilogic"

systemNumSCSISlots="16"

hwVersion="7"

#MME

#KED

#Grain

Save this as vmname.vmdk in the same folder as the -flat file. Change 83886080 to your disk size in sectors (size in MB * 2,048). The adapter type must match what your VM originally used — LSI Logic or BusLogic. If it's wrong, the VM won't boot.

For Hyper-V, you don't rebuild descriptors. If you get this error there, it's usually a corrupt .vhdx file. Try attaching the disk to another VM as a secondary drive and see if you can read data. If yes, the descriptor is fine but the VM config is wrong.

Advanced Fix (15+ Minutes) — Check the Disk for Corruption

If the descriptor is rebuilt but the VM still errors out, the actual disk data file might be damaged. Here's how to check:

For VMware (VMDK):

  1. Run vmware-vdiskmanager -R vmname.vmdk to repair the disk. This scans for structural issues.
  2. If that fails, try vmware-vdiskmanager -p vmname.vmdk to convert the disk to a new format, which often fixes descriptor corruption.
  3. Worst case: Use a third-party tool like R-Studio to recover files from the -flat.vmdk directly.

For Hyper-V (VHDX):

  1. Open PowerShell as admin and run Repair-VHD -Path C:\VMs\vmname.vhdx. This checks and fixes the VHDX header.
  2. If repair says it's unbootable, try mounting the VHDX on a different machine using Disk Management or Hyper-V Manager. Look for the "Attach" option — sometimes the descriptor is fine but the VM's bootloader is corrupt.
  3. Still no luck? Use Optimize-VHD -Path C:\VMs\vmname.vhdx -Mode Full to rewrite the entire disk structure. This takes time but fixes weird descriptor errors.

Real-World Scenario That Caught Me Out

Had a small business client running a file server on VMware Workstation. They got the descriptor missing error after a power outage. The -flat.vmdk file was intact, but the small .vmdk descriptor was zero bytes. I rebuilt it using the manual method above — took maybe 2 minutes. But the bigger issue? Their VM had multiple snapshots, and one of the snapshot descriptor files was also missing. So the chain broke. I had to delete all snapshots (commit them) and then rebuild the current disk descriptor. Lesson: always check snapshot files when this error appears.

Another time, a sysadmin moved a VM folder to a different drive but forgot to update the VMX file path. The error said "descriptor missing" but really it was just a file path mismatch. Took longer to diagnose because the error message is misleading.

What to Do If Nothing Works

If you've tried all three steps and still get the error, the disk data file itself is likely corrupt or missing. Restore from your last backup. If you don't have one (and I've seen that too many times), you can try file recovery tools on the physical host's storage where the VM files live. But honestly, that's a hail mary. Prevention: enable backups on your VM host, and never delete descriptor files manually.

One last thing: if you're using thin provisioning or thick disk types, make sure the host has enough free space. A full datastore can cause descriptor corruption when the VM tries to write.

Quick recap: Start by checking file names (30 seconds), then rebuild descriptor (5 minutes), then repair disk (15+ minutes). Most cases stop at step 1 or 2.

Was this solution helpful?