bug-ddrescue
[Top][All Lists]
Advanced

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

Re: [Bug-ddrescue] --exit-on-slow ; NO DEVICE NAMES shown; skip+pause+re


From: Antonio Diaz Diaz
Subject: Re: [Bug-ddrescue] --exit-on-slow ; NO DEVICE NAMES shown; skip+pause+reopen+skip_more_than_1Gb
Date: Thu, 21 Jul 2016 13:46:04 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.9.1.19) Gecko/20110420 SeaMonkey/2.0.14

Dmitry Kostin wrote:
I tried to use the newest version of ddrescue (1.22-pre3) and found some issues:

1) How should I compile it to force showing the drives' names when copying with 
--ask:

Have you tried 'configure --enable-non-posix' ?


2) Being run on disk with slow areas with -a4194304 --exit-on-slow options, the 
program works for !!! 30 seconds !!! before exiting. It copies at about 4 - 32 
kb/s while the most of areas are being read at 15 Mb/s. So works skipping, too. 
That is very bad for my case, because long-time readings of slow areas often 
end up with read errors - and such readings may damage the rest of the disk 
surface. I have found line 741 in rescuebook.cc:
     rates_updated( false ), sliding_avg( 30 ), first_post( false ),
- if I change 30 to 2 - will I get the program exit or skip after 2 seconds 
instead of 30?

No. The right place to change is line 151 of rescuebook.h:

  bool slow_read() const
    { return ( t1 - t0 >= 30 &&         // no slow reads for first 30s
               ( ( min_read_rate > 0 && c_rate < min_read_rate &&
                   3 * c_rate < 2 * a_rate ) ||
                 ( min_read_rate == 0 && c_rate < a_rate / 10 ) ) ); }


Or, can you please add one more option such as "sensitivity" or something to 
set the interval (1-2-5-10-20-30) instead of built-in 30 seconds. (?)

Sure. Meanwhile you can modify the 30 in line 151 above.


3) The initial idea of skip+pause+reopen_input extension to 
--min-read-rate=<time>[,pause] was very interesting. Can you implement it? 
Maybe, it will fit my case better than --exit-on-slow. Not to invent a script to 
pause and restart ddrescue with new -i -s parameters until exit.

Have you tried --reopen-on-error ? It also reopens the file after slow reads.


4) I want to skip that slow areas every 1280 Mb - but the program does not allow to 
set -K<value>  to more than 1Gb. Can you please make a version that allows? Or, 
maybe, give me an idea, where to patch the value(s).

I'll remove the limit on max_skipbs. Meanwhile you can increase 'max_max_skipbs' in line 48 of rescuebook.h:

  enum { default_skipbs = 65536, max_max_skipbs = 1 << 30 };


Thanks for your efforts and program!

You are welcome.



reply via email to

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