I have an external drive that is most certainly failing (4+ years). I keep getting I/O errors when reading/writing, but before I replace it I do want to try to extend the life a little more.
I understand that I can use fsck -c /dev/sdX
to mark bad blocks, but does this also reindex the filesystem around those blocks as well? In my searches I haven't got a solid answer.
When I try fsck -c on the unmounted drive I get a bad superblock message, so I was thinking of reformatting, but this also hasn't helped in the past in terms of the I/O error, I've done it a few times before.
EDIT: For clarification, this is an old Verbatim external drive, SATA drive in an enclosure that has a SATA-to-USB with a power adapter. At this point it is just a toy drive (I've got everything else backed up onto a NAS) hooked up to a Raspberry Pi for futzing around.
As far as the question my main though was this: If I have a corrupt block that's making reading and writing data fail (according to dmesg and badblocks, is it possible to mark that block "dead" and use the next good block to read/write to?