bug-ddrescue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-ddrescue] ddrescue --max-error-rate


From: Antonio Diaz Diaz
Subject: Re: [Bug-ddrescue] ddrescue --max-error-rate
Date: Tue, 10 Jan 2012 17:12:13 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.11) Gecko/20050905

Hello Joey,

Joey Morin wrote:
first i want to say thank you for making such a useful utility.  i can't
tell you how much grief it has saved me.

I'm glad to know, thanks.


i have a question, and perhaps a request, regarding the new option
--max-error-rate.  it seems to me that the rate it is measuring is that of
the increasing number of error bytes as calculated by summing all
un-trimmed, un-split, and actually failed sectors (corresponding to logfile
status characters *, /, and -).  is this so?

Yes. In the current manual --max-error-rate is described as follows:

"Maximum growth per second of error size, in bytes, allowed before giving up".


if it is, then as such, it is unfortunately not helpful in the situation
where a drive has stopped responding properly, but rather instantaneously
returns a failure for any sector read without actually trying.  i have such
a drive in my recovery rig right now.  i'm down to the last 5,000 or so
sectors, many of which are bad.  the behaviour is as such:

   - i power on the drive
   - i start the recovery with -MT to treat all errors as new un-tried areas
   - the sectors fail, one at a time, slowly, as the drive clicks and
   re-seeks for a few seconds on each before failing
   - ddrescue makes it through copying untried data, and begins to trim,
   and then to split
   - all of a sudden, the rescue is 'finished', but no data has been
   recovered.  all once-failed sectors are failed again.  however, most of the
   remaining sectors failed in a giant blast in under a second.
   - it seems the drive 'gives up' actually trying to read after some
   period of time, but continues to respond to requests for sector reads by
   simply replying with an immediate failure.
   - adding --max-error-rate has no effect

it looks like --max-error-rate has no effect because the blast of failures
is occurring in the trimming or splitting phase, where the total error size
is not going up.

as it is unclear (without manual examination of the log file and the system
logs) which sectors were marked as failed without trying, it is difficult
to re-initiate the rescue.

i would like to suggest that --max-error-rate be changed, or a new option
added, whereby the rate being measured is only that of actually failing
sectors, not including error areas that are growing as a result of being
tagged for trimming or splitting.  this would help catch the case of a
drive that has stopped responding correctly but which still responds by
returning failure for every sector without actually seeking and trying the
read.

You are right. As currently implemented, --max-error-rate is only useful during the first pass. But what you propose (measuring bad-sectors only, if I understood correctly) is not useful during retry passes.

So I have implemented a real error rate measurement, and redefined --max-error-rate as follows:

`-E BYTES'
`--max-error-rate=BYTES'
     Maximum rate of errors allowed before giving up, in bytes per
     second.  Defaults to infinity. The rate being measured is that of
     actually failed reads, so the rescue may finish because of this
     rate being exceeded even if the total error size (errsize) does
     not change because the areas being tried are already marked as
     errors.


I expect the new --max-error-rate to be useful in all passes. I have just released ddrescue-1.16-rc1 with this change in. I'll announce it tomorrow, but you can download it from here http://download-mirror.savannah.gnu.org/releases/ddrescue/


Best regards,
Antonio.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]