I did something like that just a few weeks ago -- I got everything from a disk that had been sitting in storage for over 10 years! I had no intention of restoring the hard disk itself, I just wanted to get all the files from it, and put them onto my current disks. Fot that, I was hoping that the disk -- once plugged in -- would be alive long enough for me to grab an image of the whole disk as it is. And lucky me, it was indeed alive long enough for that.
First of all, boot into a Linux OS which isn't trying to be "smart" by automounting any disk it sees. You do not want to mount that old disk, you don't want to write to it whatsoever! Best yet, boot without the GUI. And also, make sure that you already have
ddrescue installed. That's all you need, and of course, enough free space on your regular disk to hold the whole image from the old disk.
Find out which device your old disk is showing as, by using
blockdev --report or
For the example here, I'll use /dev/sdz -- you adjust "OLD" and "DEST" accordingly. Run these commands:
ddrescue $OLD $DEST/saved.image $DEST/saved.mapfile
If that finishes without errors, then you're done! You can now
poweroff, and remove the old disk from the computer.
But if you're not that lucky, then you can run another pass like this:
ddrescue -d -r3 $OLD $DEST/saved.image $DEST/saved.mapfile
Once you have the good image, then you don't need the old disk inside your computer anymore. Remove it, and put it back up on the shelf. You can now work with the image, (preferrably, make a copy of it), loop-mount it, and extract anything you want from it.