Real bad sectors could/would have already been mapped-out by the
drive itself (modern disks have a lot of onboard intelligence).
Note also it's inadvisable to do low-level checks on a live filesystem
because things could be changing and corruption is inevitable.
IIRC, Windows' defrag and checkdisk "lock" areas of the disk when
they're doing their thing; I'm unaware of something similar for Linux.
Best way to check a disk is boot a Live CD to check the unmounted raw
disk(s). There's even a way to do that in Windows.