On Sunday, January 23, 2022 10:57:53 AM to...@tuxteam.de wrote: > 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.
I would guess that the actual details vary depending on the manufacturer and the revision level of the manufacturers firmware on the drive.