I recommend running some hardware tests. Start with
memfree86 to test your memory. Then move on to the
smartmontools package to read the S.M.A.R.T. data of your hard disk.
- Restart you computer.
- During startup push ESC key to show the Grub boot menu.
- Choose memfree86 memory entry and give it time to test a few passes of your memory.
NOTE: This step can take several minutes to an hour per pass depending on amount of RAM. The program will test over and over again until you cancel it. The UI notes the number of passes; that is the number of times it has tested all of your RAM.
Assuming your RAM is okay, boot to an Ubuntu Live CD. Install the package.
apt-get install smartmontools
Typically hard drives are located at
/dev/sda. Run the
smartctl command to see the health of your drive.
smartctl -a /dev/sda
The wikipedia page on S.M.A.R.T. does a good job of pointing out values you need to pay attention. You should look for errors typically in the magnitude of 1k-100k error events. On my drives, I've seen drives have as low as zero for all error events over the course of 5+ years usage.
If your RAM shows errors then pull out your RAM sticks and test them one at a time to determine the bad SODIMM. Replace any bad RAM stick.
If your hard drive is showing a lot of concerning errors then I recommend immediately recovering you data to a known healthy disk from a Live CD. The unhealthy disk should be replaced with a healthy one.
If both the RAM and disks show up as completely healthy then move on to checking software (such as