On Sun, Jan 23, 2022 at 08:14:06AM -0700, Charles Curley wrote: > On Sun, 23 Jan 2022 11:09:47 +0000 > Andy Smith <a...@strugglers.net> wrote: > > > Yes. When a drive sector goes bad, the drive cannot read from it, so > > you get an error in Linux when a read is attempted. > > As I understand things, that isn't entirely correct. From what I > understand: > > If the drive can read a sector without error, it passes the data to the > OS and that's it. > > If it gets an error, it uses cyclical redundancy check (CRC) data to > reconstruct the data. If that fails, it reports an error to the OS. If > the CRC reconstruction is successful, the drive re-writes the sector > and passes the reconstructed data back to the OS.
It is actually more complicated as this. As I understand this Wikipedia entry [1], some errors while reading a block are to be expected: it seems to be more profitable to push the density to the limit where error correction picks up some rest. Only when the error rate surpasses some threshold the block is remapped. I guess SMART counts the latter events, but actually I have no idea :) And the error correction codes are a bit more sophisticated than plain CRC: Reed-Solomon or, more modern, low-density parity-check codes. Cheers -- tomás
signature.asc
Description: PGP signature