If you look through your log files (/var/log/syslog and syslog.1) you may see clues to a hard drive failure: read errors, write errors, drive cache errors. The linux kernel expects perfect hardware, so when hardware is intermittent, it looks like software issues, but capturing the actual hardware fault is not done by any of the default system loggers. The SMART status will capture 2/3's of the failure modes, but the remaining 1/3 will happen without notice.
For an old hard disk, it could simply be a sticky bearing that makes the platter slow to spin up. If you have it booted or if you can read it, then capture as much data as you can before it seizes up completely.
Open a terminal, post the output of:
Your device may be different (sdb or sdc).
sudo smartctl -a /dev/sda