[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.