8
1
tl;dr in case a URE occurs on a hdd, will I loose 1bit, 1Byte, or the size of a sector (512Bytes, or 4096 Bytes AF)? and if possible explain why so?
Background: The question here arises when a hard disk has a problem reading data. Surely a disk can fail completly leaving all its data lost (DISK FAIL), but the case I ask about here about is that when just a smaller part of it is lost (URE, an uncorrectable read error).
Even though I have looked for information regarding URE, I have found out little for certain. This might have its cause in that what happens internally in the drive, i.e. what is hidden from direct user interaction like ECCs-correction, is for me hard to relate to what I access as a user - the sectors.
Let us imagine that the hdd has trouble reading data.
In that situation, surely this must mean either that:
- (a) some bits of the sector cannot be read, or
- (b) all bits are can be read, yet they do not pass a checksum test (off course expecting trouble a sector 4096 Byte is not just 8*4096 bits, but some additional bits/byte for error checking/correction (i.e. parity bits) (c) ????
No my believe is that when we are in the situation in which a combination of (a) and (b) occured and a relyable reconstrution of the 4096 sector's bytes cannot be done, then it is excessive to assume that necessarily all of them are garpage, actually if we were aware of the interal hdd error correction logic we might instead say "look something does not check out, and with a good change at least 1,2,3,n bits/bytes of the block data is "wrong"". If we were redundantly saving "hello,hello.....,hello" ASCII byte strings in this sector we actually might still have a fair succession of "hello,hello...." before there will be a "...Uellohello..." (i.e. "e" -> "U").
So what is the granularity of an URE?
UPDATE: there has been a comment inputing the idea of bad sector (and suggesting that this reflects the granularity of an URE event. It is not absurd, to suggest it and maybe can be used in answering the question. Yet I just read another related question asking about pending unreadable sectors (here https://unix.stackexchange.com/questions/1869/how-do-i-make-my-disk-unmap-pending-unreadable-sectors) which leads me to think that in some scenarios there is indeed a more blurry line in between the data lost in case of an URE.
Usually it is tens of thousands of blocks damaged at a time in the case of a crashed head. If it is dust, etc. accessing near blocks can spread the damage. So its rarely as simple as part of a larger area can be reconstructed. – JamesRyan – 2015-09-08T16:36:46.643
@JamesRyan good hint, it can always be worse. Maybe I was simply inquiring about the least bad case possible (that is only to loose a sector, or as it partly was resolved in the good answers, a part of the sectors data, depending on the type inside of it). maybe knowing more about the genesis of unreadable errors (and their persistence i.e. random bit rot, vs. head crash impact) will have to be considered. But we want answerable questions here, so I did not needlessly complicate the question any more – humanityANDpeace – 2015-09-09T04:49:44.523