Hello, Antonio and community!
There are many different programs that can work with damaged disks. Among them 
there are: ddrescue, dmde, hddsuperclone.
The two last can recognize and distinguish the error codes got from the kernel 
after every read /write request. For example, when hddsuperclone detects the 
disk is offline (not ready) - it just waits for it to become ready again. So 
DMDE does. It shows different error codes allowing the operator to make the 
right decision about what to do. But my favourite tool ddrescue never made such 
a difference to the error codes! Either the error code was "CRC error" or 
"Device not ready!" - ddrescue made no difference and marked the requested part 
of source data as "bad" or "non-trimmed" (depending on whether the -N -n -c1 
settings were active or not) and continued working, marking the whole remaining 
domain as "bad" :(.
AFAIR, the problem had been discussed already with non-positive decision, but, 
still I think, it is possible to make ddrescue recognize/distinguish the error 
codes, too, just as other programs can do. Thus a feature can be of much use to 
determine, whether to try continuing the process just skipping bad areas or to 
quit the program when the drive goes offline/gets disconnected/not ready/is 
being reset.
Here's a translation of a part of discussion from the well-known Russian 
data-recovery forum ixbt.com:
If it gets "CRC" - that's simply a BAD sector, but I/O - the drive is 
disconnected. CRC may and must be ignored, and I/O must inform us of the drive 
connectivity problems. I/O must never be ignored! Maybe, it's possible for such 
feature  to be implemented.

Best regards,
"kickman", ddrescue user since 2015.

Reply via email to