I had a bad experience on an old Dell computer where shortly after installing Ubuntu on it, the hard drive failed due to excessive loading/unloading cycles. What is the best way to check the health of my hard drive in Ubuntu? Can it be done from the command line?
There is also a utility called badblocks, and another called shred. Both of these utilities can perform read/write operations on your write drive that can be used to make sure that a drive is safe for use. Personally, if I saw an error in either of these I'd replace the drive.
They are very slow and can take some time to complete, but can give you a an idea of their health. Also, since they are writing you'll lose the data on the drive and should be run from live cd as suggested by caesay. I've been lugging around SystemRescueCd lately.