At this point, be PARANOID and grab a couple of different types of copies, if you have the external disks to do so:
1) Drag/drop copies to anything else you have (USB keys, hard drives, NAS share, whatever). Do this for your data. Get it, now!
2) Attempt to make an IMAGE backup of the hard drive (note, this will destroy all data on the external drive!!!):
- Attach a USB or FW drive of equal or larger capacity, format it with the name "external" or similar
- Identify the raw device names of your internal (failing) hard drive and the external by running the "mount" command from a terminal.
- Reboot from the installation media for Mac OS X
- Open up a terminal, and use "dd" to do a digital, block based copy of your internal hard drive to the external drive
If you aren't comfortable identifying and KNOWING the physical device name of the internal (failing) hard drive vs. the external hard drive, the above could wipe out your internal drive. The mount command should say something like this for your internal drive
/dev/disk0s2 on / (hfs, local, journaled)
(which means it's /dev/disk0)
and maybe something like this for your external:
/dev/disk2s2 on /Volumes/external (hfs, local, journaled)
which would be /dev/disk2
If you are copying disk0 to disk2, then you would use:
dd if=/dev/rdisk0 of=/dev/rdisk2 bs=64K
You might need to unmount (but not eject!) both of these disks from Disk Utility first.