I've had a nice adventure in the last 24 hours, a virtual machine I was using to test a few things crashed, VirtualBox showed Invalid Header and I couldn't mount the VHD file in Disk Management.
Turns out the guys at Connectix (bought by Microsoft) designed the VHD structure with the header in the footer (but also with a copy of the footer in the header, or to put things simply, the disk structure in the end of the file but with a copy in the beginning of the file), so if you're using dynamic size VHD files and run out of disk space and have the luck to get the VirtualBox machine frozen, the VHD file becomes unusable
Could be the specification but I'm thinking also implementation could prevent that from happening.
Anyway, enough rambling, solutions?
- VirtualBox didn't even recognize it as a valid VHD file, so I didn't try using its internal conversion, hopefully there won't be a next time to try that..
- Trying to mount in Disk Management - failed.
- CloneVDI - failed.
- WinImage - Convert Virtual Hard Disk Image - failed.
But there's success in the end:
1. Create a new VHD file through Disk Management, set the size, type and mount it.
2. WinImage - Restore Virtual Hard Disk image on physical drive.
Now that everything is running, I hope I'll find the time to convert the disk to another format, just to be safe, but if not, its only for testing, so its just a good lesson.