@seanmcl
If I may, it is perfectly possible that the unallocated space after the last partition has "merged" with "more general" unallocated space of the target 500 Gb, the only way to know which is which, as you pointed out, is if a Pattern (or the lack of it) is detected and we don't have this info from the OP.
@All
If the drive was originally partitioned using XP, and possibly with most of the partitioning utilities around, it has been partitioned respecting Cylinder boundaries and with a CHS geometry of
nx255x63.
Generally hard disk capacity expressed in sectors is NOT a number exactly divisible by 255x63=16,065 and a certain amount of space at the end of the hard disk (after last partition is left unallocated in the partition table).
If the drive has been "automagically" partitioned by any of the most common utilities, the rest is smaller than one whole Cylinder.
I.e. after the end of the last partition any number of sectors in the range:
0<=x<16065
can be part of the original 250 Gb image.
In other words anything between 0 and 8,224,768 bytes in 512 bytes steps can be part of the "old" image.
Of course if the drive was partitioned manually, this "slack space can be almost anything, and same applies for anything normally formatted under Vista/7 which by default do not respect cylinder boundary, trying to do "partition alignment".
As an example a typycal 250 Gb drive has:
www.seagate.com/www/en...ifications
488,397,168 minimum sectors available.
Since 488,397,168/255/63=30,401.3176 Cylinders, Xp would map last cylinder as
30401x255x63=488,392,065
488,397,168-488,392,065=5,103
5,103x512=2,612,736 bytes
So, knowing the exact make and model of the original 250 Gb may narrow the range in which to perform the MD5 hash calculation or check for the pattern.
By checking another same make/model drive, one could also check the "exposed by the XP driver" Cylinder number.
jaclaz