drccsc, you were exactly right. I had two of the rubber pieces between the PCB and head stack connection.
Drive is now recognized by BIOS. When plugged in on a secondary IDE chain (by itself), booting off a different hard drive, Windows XP locks up after the splash screen. The screen goes black, and a faint clicking sound can be heard from the notebook drive if I put my ear to it. Otherwise I don't hear anything.
Thinking I had messed up on the head replacement, I moved the heads back to the donor drive. I was able to read and write data to the donor drive, proving to me that the heads were still OK.
I moved them back to the data drive, and am getting the same result when attempting to boot off a different XP drive. (I have tried a different PCB as well.) I tried using a notebook drive to USB adapter, and Windows software locks up once it tries using the drive.
I moved the drive to my Linux (CentOS) machine, and could see it just fine.
fdisk -l /dev/hda
Disk /dev/hda: 30.0 GB, 30005821440 bytes
255 heads, 63 sectors/track, 3648 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 3647 29294496 7 HPFS/NTFS
I ran ddrescue, and I think the drive is getting stuck on a spot on the platter. After 50 minutes or so, I was at this spot, and stopped operation:
ddrescue /dev/hda /dev/sde ddrescue.logfile
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 0 B, errsize: 0 B, errors: 0
Current status
rescued: 126992 kB, errsize: 29878 MB, current rate: 0 B/s
ipos: 27315 MB, errors: 1, average rate: 31645 B/s
opos: 27315 MB
Splitting error areas...
Interrupted by user
I can't see platter damage, and the pillow isn't silver.
fdisk -l doesn't see the drive at this point. I reboot, and it sees the drive just fine again.
I'm not sure resuming ddrescue with the logfile is best at this point. Looks like when the drive hits a spot on the platter, it freezes up and stops being recognized.
Does it sound correct, that there must be platter damage on a spot I can't see? (There's two platters so I can't check the unseen sides.) How do I proceed? ddrescue I think will automatically read in reverse if needed, but once it hits that spot on the platters, it can't see the drive without a reboot.
I wouldn't mind buying another donor drive and trying a new set of heads, but I think they're fine since when I tried them in the donor drive they worked fine.