I'm trying to clone a Windows XP Embedded image on a Transcend 1 gb CompactFlash drive to a 2gb Adata Compact Flash drive. After cloning the drive(I used RMPrepUSB), I tried booting it up on the system and it threw a Disk Read Error after saying verifying DMI pool data. I can boot from the Transcend drive and I checked the Adata drive for errors and no errors showed up.
I found this really interesting (and old) discussion about someone having a similar issue.
Nigel Bree explains that backup and restore softwares don't know what bootcode they should copy over when restoring a backup onto a drive. One of three possibles choices needs to be chosen, which are:
- Keep the bootcode that is currently present on the drive
- Copy a safe bootcode that should work in most cases (but is different from either the source or target bootcode)
- Copy the bootcode that was saved during the backup
Most software solutions don't ask the user which solution is preferred and will use a default option, which in some cases might not work.
What's more, in the third case, some programs won't copy custom multi-sector boot records and will thus restore only the first sector of these special bootcodes, breaking them in the process.
If this is the issue, then making a raw, sector by sector, copy of the drive and restoring it in the same way could help keep the boot track intact. However, I suppose that the source and target disks or cards need to be identical in size and geometry. Some programs allow to copy and restore the whole boot track unaltered for changes in geometry, like it appears to be the case in Ghost.
Some other possible problems arise when the disk is interpreted as having the wrong geometry (either linear, like flash storage, or rotating, like conventional hard drives) on backup or restore. I'll leave you to read the source in order to get all the subtilties of it.