bug-ddrescue
[Top][All Lists]
Advanced

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

Re: [Bug-ddrescue] Question & suggestion


From: Antonio Diaz Diaz
Subject: Re: [Bug-ddrescue] Question & suggestion
Date: Tue, 06 Mar 2012 18:14:37 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.11) Gecko/20050905

Hello David,

address@hidden wrote:
I am trying to rescue a drive (120GB) which has large blocks of errors then
blocks of readable data. What I want to do is to try and read a large block
(1MB) of data, if it fails then skip on by 1MB and try again.  So I launched
ddrescue with -c 1024 (which should read 512K chunks as I understand it).
But I am not seeing what I expect in syslog, I would expect to see failed to
read sector @ n, followed by failed to read sector @ n+1024 in the error
areas, but the sector numbers go up by varying amounts, sometimes only a few
10's of sectors. It showing 40+minutes since last successful read so it
doesn't seem to be reading any good data (or is that the last time an entire
block was read without error?).

The amount skipped by ddrescue on a read error (or on a slow read) is quite variable. It depends on the previous history of read successes and failures.

On the first read error, ddrescue skips 'skipbs' bytes (currently defined as "max( 65536, 16 * hardbs )"). Then it reduces the skip_size every good read and doubles it every failed read.

A change that could achieve more or less what you want without modifying the default behaviour would be to redefine 'skipbs' as "max( 65536, softbs )"

BTW, the "x minutes since last successful read" means since the last time ddrescue managed to read something, even if it was 1 single byte.


Suggestion
Where a source drive goes offline during recovery is it possible to identify
this from the returned error code and abort ddrescue, rather than filling
the log up with failed sectors?  EG on IDE I got DID_Invalid & on usb I get
drive offline.  I think the logic should be 'media error code' carry on,
device / drive error 'abort'...

DDrescue is device-agnostic and does not even try to access low-level device error codes.

Ddrescue already stops if the drive dissapears from /dev (see example 7 in the manual), but if the drive does not dissapear, the only way of stopping it in case of total drive error is with --max-error-rate. See also the --try-again option.


Regards,
Antonio.



reply via email to

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