My wife's Parallels broke today. For some reason it just died when starting up - no matter what mode we tried to start Windows XP in. We tried repairing Windows XP by means of the installation CD, but this caused even weirder errors.
So I ran a Disk Repair and Permissions Repair - neither working.
I then decided I am going to try and upgrade the disk image to the latest Parallels - 3.0. Well, whilst copying the .hdd file this happened:
karin-nells-computer:~/Library/Parallels/winxp karin$ cp winxp.hdd winxp_backup.hdd
cp: winxp.hdd: Input/output error
Hmmm.... Bad sector? So my mission started to find a utility that can (a) find bad sectors, and (b) relocate them. This was necessary since both Finder as well as cp failed with an IO error.
I looked at TechTool Pro 4, but alas, just as I was about to purchase it I discovered it is only available as a shipping product - not a download. Bummer.
Next I looked at DiskWarrior - this seemed like it could do the job so I paid $115 for it, and downloaded it. Running it on my laptop with the iMac in firewire target disk mode, I rebuilt the directory structures but it did not fix anything. Damn - $115 wasted.
(PS: I needed to recover her Parallels image since all our accounting information is stored in QuickBooks for Windows).
I found a trial of Drive Genius - and ran the surface scan. About 1/3 way through the disk it started picking up some bad sectors - so at least now I confirmed this. But it cannot do anything with those bad sectors. By now I was getting desperate.
I googled some more (this is now after about 10 hours on/off searching for solutions) and found a solution. A free solution too!
The idea is simple - I want to copy the Parallels disk image to a new area on the hard drive where there are no bad sectors, and I am willing to sacrifice the couple of bad blocks causing all this trouble. So by using
dd if=winxp.hdd of=winxp_copy.hdd conv=noerror,sync
I managed to copy the file with 10 bad blocks filled with NUL bytes - a fair compromise.
PS: dd is a standard Unix utility for copying raw data blocks.
I started up Parallels - ran through the automatic NTFS check at startup and only lost 10 files - all which are replaceable.