If i were you i would load up a live cd/rescue system and check your hd for any problems. There is a program called spinrite (i've never used it though) for checking disks - i think its from www.grc.com
, and you could use the tools that come on most bootable linux's to check your linux partitions for errors.
i believe there are reiserfsck, fsck, e2fsck, etc.
A warning though, i once used reiserfsck on the wrong filesystem and it ate my data. Be sure of what you are doing before you do it. Read the man pages, they are incredibly helpfull.