run fsck manually
A bad hard drive (or an error that can occur from application/os crash) may corrupt the disk...
Linux (ubuntu even) will give you a warning:
"Unexpected Inconsistency: run fsck manually"
The answer is that running fsck on a mounted file system will cause more corruption. Boot from a rescuecd and use the following
fsck /dev/sda1
(note that fsck -y /dev/sda1 will just answer default yes to al prompts)
Interesting things are fixed like "last mount time is in the future", "short read", "Force rewrite"
sudo fsck.ext4 -v /dev/xxx
This could tell you if you have a bad super block, different steps required...