I think that I have discovered what to do.
fsck.ext4 has two options: -c, which if doubled performs a non-destructive read-write test, and -k, which does not destroy old information about bad sectors. (It uses the badblocks application.)
I have been running the following command for 35 minutes (it is only 35% complete), but it has found four bad sectors.
Well, I presume it is four bad sectors, because the display shows "(4/0/0 errors)". I do not know quite what that means, but the scan did at one stage appear to hang before it showed the first error.
sudo fsck -CMfcck /dev/sdb8
(Do you know where to find a description of the output? It's not in the badblocks manual.)
I think that I can mark this as solved, now.
EDIT: Sorry, I missed your last post!