Android apps keep crashing with android.database.sqlite.SQLiteDiskIOException Starting yesterday, my Galaxy s2 device running Cyanogenmod 9 started to crash with android.database.sqlite.SQLiteDiskIOException exception for every running app. Does it means that my phone is dead or I can fix it? 

I was using an old cyanogenmod nightly on the device, and updated to cyanogenmod 9 rc1 after the problem started just in case, and it didn't helped me at all.
I encountered exactly the same problem as yours on my Galaxy S2 with CM9 earlier this week.

I figured out it might be the problem that the internal USB storage had some error on it.

Unfortunately, formate Dalvik Cache and Cache won't fix the problem. 

You can try to mount your phone onto your computer and try to fix the error using some disk check utilities, which I tried but phone freezes after mount as USB.

At last I fix the problem by doing a hard reset. So I suggest you start from trying mount your phone to your computer and do some quick backup first.

If you cannot even copy out your files, it is the problem of internal USB storage with some logical errors.