I have seen this a couple of times ...
The usual approach is to boot the VM with a LiveCD that has Testdisk installed. You can either use a Linux or Windows -LiveCD ... does not matter.
Then let Testdisk run a scan for lost partitions - in most cases it will be able to recover the partition-table.
Once you have written the table back to disk the next boot should go into a BartPE-LiveCD so that you can run a checkdisk against the partitions