This is why I stopped using physical partitions and LVM instead entirely.
If you fill your physical partition, it really doesn't like it, and all hell breaks loose, as you see. Boot from a boot cd, clear some space, and reboot.
Start with "sudo du -h --max-depth=1", figure out what is filling your disk, and delete some. Reboot. Usually logs, updates, packages, etc cruft - kill it all.
When it's sane, move to a more agreeable FS structure, use LVM, I can fill a disk and stay up, much less impact if/when this occurs.
I break /var and /var/log into separate partitions always, these are typically what fill and break. Keep them separate with LVM's, much happier to recover if any one fills up. I normally keep /usr with debians separate too, but arch installs hate this. Also I keep /home separate, as I fill this commonly, which breaks anything running in userland if/when occurring.
Funny, I do this because this is how we installed solaris this way with slices like +20-some years ago to not blow up, but over-simplification these days ignores fun facts like these.
-mb