@bsquared: Thanks for your details reply #12.
My observation is that the numbers don't add up: The partition 1 that you've tried to extract starts at block 1,048,576 / 512 = 2,048 (which should be used as the 'skip' parameter). It's size is 7,975,469,056 / 512 = 15,577,088 blocks (which should be used as the 'count' parameter). The size reported by 'parted' (i.e. 7,975,469,056 = 7606 MBytes), does not match with what 'fdisk' reports (i.e. 8,387,559,424 = 7999 MBytes).
I'd therefore suggest to check the file system (e.g. via fsck /dev/hda). You'll need an un-mounted file system for this, so you better boot with boot codes 'base norestore' to ensure that.
I guess you could make your life slightly easier if you'd use 'unit s' (for sectors, i.e. blocks) in 'parted'. That way the reported numbers can be used directly in a 'dd bs=512 ...' scenario.