Hi rand_jian, from what you've described it seems that your hard disk has worn itself out. Have you ran disk-checking utilities like chkdsk?
One more thing you can try is reformat and reinstall everything. If the problems continue, then it's time for a new hard disk, my friend.
Thanks, r_manic, I've tried reinstalling everything, and I'm still getting random fatal errors in both linux and windows. So I guess I should try to buy a new hard disk.