Forrest Gump
Member
Recently, I had Parallels (3.0 5584) for Mac present an error when I attempted to create a new snapshot. "An error occurred during reverting to snapshot. Return code 419502468.
From that point on, I could no longer restore to any snapshot, nor could I boot up the virtual machine. "Parallels Desktop is unable to access the virtual disk image file <blah>" Upon further investigation, I found that the DiskDescriptor.xml file in the VM's .hdd directory was corrupt. The first half of this file was overwritten with:
"Sometime i'll remove this warn and just set the PID here" and a bunch of null bytes.
By retrieving the default XML header lines from another VM and then re-creating the missing <Image> elements by recovering the GUIDs from the <Snapshots> section at the and of the XML file, I was able to recover the DiskDescriptor.xml file by hand. I've attached copies of the "before" and "after" versions of this XML file.
A few comments/questions:
1) What may have caused the snapshot to fail and corrupt the DiskDescriptor.xml file? I would think that the "Sometime i'll remove this warn and just set the PID here" text at the beginning of the corrupt file might be a clue to the developers!
2) This isn't the first time I've had a VM go bad due to corruption of text files in Parallels. In the past I've had a .PVS file get overwritten with garbage too. Could it not be possible for Parallels to create backups of these files when they are written to, to prevent this very sort of problem? Those files are tiny, so the overhead would be trivial, but it would at the very least allow a technical user to manually go in and restore from them. Ideally, Parallels could automatically attempt to use the backup file when a problem is encountered with the primary one. e.g. a dialog: "Parallels has encountered a problem opening disk image <blah>, would you like to try the backup copy?"
From that point on, I could no longer restore to any snapshot, nor could I boot up the virtual machine. "Parallels Desktop is unable to access the virtual disk image file <blah>" Upon further investigation, I found that the DiskDescriptor.xml file in the VM's .hdd directory was corrupt. The first half of this file was overwritten with:
"Sometime i'll remove this warn and just set the PID here" and a bunch of null bytes.
By retrieving the default XML header lines from another VM and then re-creating the missing <Image> elements by recovering the GUIDs from the <Snapshots> section at the and of the XML file, I was able to recover the DiskDescriptor.xml file by hand. I've attached copies of the "before" and "after" versions of this XML file.
A few comments/questions:
1) What may have caused the snapshot to fail and corrupt the DiskDescriptor.xml file? I would think that the "Sometime i'll remove this warn and just set the PID here" text at the beginning of the corrupt file might be a clue to the developers!
2) This isn't the first time I've had a VM go bad due to corruption of text files in Parallels. In the past I've had a .PVS file get overwritten with garbage too. Could it not be possible for Parallels to create backups of these files when they are written to, to prevent this very sort of problem? Those files are tiny, so the overhead would be trivial, but it would at the very least allow a technical user to manually go in and restore from them. Ideally, Parallels could automatically attempt to use the backup file when a problem is encountered with the primary one. e.g. a dialog: "Parallels has encountered a problem opening disk image <blah>, would you like to try the backup copy?"