About a week ago a storm caused a brief power outage, which apparently messed up my machine's ext3 file system. After the outage, it booted fine (it ran a file system check), but after today's kernel update and a reboot, fsck reports a problem and then apparently hangs at fixing it.

/dev/sda1 is fine ("clean"), but /dev/sda2 (which is /home) "contains a file system with errors" and a "check is forced". At about 70%, a message appears: "Duplicate or bad block in use!", and then it just sits there.

What should I do? I can skip the check and boot into Ubuntu just fine, but how do I properly correct this error before it gets worse?