A few weeks ago, one of my servers started complaining, via smartd, that one drive had one unreadable sector. I umounted it, and ran an fsck -c, then remounted it. Error didn't go away. Now, what's really annoying is that I've gotten back to it today, and it's reporting the problem, as it has for weeks now, every half an hour.
However, when I run
smartctl -q errorsonly -H -l selftest -l error /dev/sdb
it gives me *nothing*. Anyone understand why I get two different results?
mark "and I am waiting for the smartctl -t long /dev/sdb to complete"
The smart system works at the hardware level, reading diagnostic information from the SMART circuitry on the hard drives, themselves. The hard drives will often, now, try to move the data from bad sectors on the platters to good sectors, and then mark them so that they won't be used, later.
Running fsck only works at the logical filesystem layer. The fsck tool has no hooks to deal with the physical layer.