Warning in advance that this going to be a slightly long one.
I had an old Dell laptop running XP die last year due to returning a HDD read error when attempting to boot. I booted from a live linux USB and was able to mount the backup partition (but not the main system partition) and rescue my backed-up data. I assumed that the disk was physically on its last legs so wrote the laptop off.
Today I found the XP recovery CD and decided to have a go at reviving the laptop, which as you'll see was a big mistake. The XP Recovery Centre failed to resolve the problem so I removed the disk and connected it to a Samsung netbook via a HDD to USB connection. Unfortunately when I booted I forgot that I'd set USB to have priorty over the internal HDD and booted from the faulty drive. When I rebooted, the Samsung's internal drive (which had worked perfectly before) would no longer boot and produced the same error as the Dell drive. At that point tt dawned on me that the Dell laptop must have had some from of boot sector virus that I had now transferred to the netbook.
Booting the Samsung from the Linux USB, it is no longer possible to mount the internal HDD. Running fdisk reveals why:
Disk /dev/sda: 58.5 GB, 58506416640 bytes
255 heads, 63 sectors/track, 7113 cylinders, total 114270345 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 63 14683409 7341673+ 12 Compaq diagnostics
/dev/sda2 * 14683410 163678207 74497399 7 HPFS/NTFS/exFAT
/dev/sda3 163678208 312578047 74449920 7 HPFS/NTFS/exFAT
The partitions are found correctly, but the disk size is reported incorrectly as 58.5Gb (it is actually 160Gb).
When fdisk is run on the drive from the Dell this also returns the correct partition structure but again incorrectly reports the disk size as 58.5Gb.
The fact that all the partition structure seems to be in place gives me hope that the disks could be restored to a functioning state, but I can't figure out how to rectify the problem and nothing I've found online so far has been terribly helpful.
Can anyone offer any ideas?