bug-ddrescue
[Top][All Lists]
Advanced

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

Re: [Bug-ddrescue] 2 Suggestions (bi-directional retry and user interrup


From: Antonio Diaz Diaz
Subject: Re: [Bug-ddrescue] 2 Suggestions (bi-directional retry and user interruption exit code)
Date: Thu, 13 Feb 2014 19:00:13 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.11) Gecko/20050905

Florian Sedivy wrote:
First of all I want to express my deepest appreciation for ddrescue. Although 
it follows a very simple concept (make a 1-to-1 copy), it is nevertheless 
continually refined year after year. Thank you very much!

You are welcome. :-)

The concept may seem simple, but there is no limit to how clever (or idiotic) the algorithm may become.


I have two suggestions. First is a very simple change of the exit status after user interruption. Currently this is 0, which makes it indistinguishable from a finished run. In the context of a script and/ or loop it is very useful to catch a user interruption in order to exit the loop or script.

Ddrescue returns 0 when interrupted because I considered it an "user-finished run", not an error. But if a nonzero value is useful, I have no objection to it. Only that -1 does not seem an appropiate value, as the return value is usually an unsigned 8-bit number.


The other suggestion is about retry mode. I wish ddrescue could automatically 
alternate the reading direction for each pass when retrying 2 or more times.

Good idea. But no need of using negative numbers for it. I think a suffix letter is less confusing and allows for infinite alternation (-r-1i for example). From the 3 obvious candidates (a, i, r), I prefer 'i' (from invert) because 'a' is an hexadecimal digit and 'r' can be understood as reverse mode.


Also I would have liked to insert a 5 second pause between passes, but don't know how to accomplish that in a platform independent way and without messing up the read statistics.

Implementing a pause between passes is possible. For example it can be specified as a time interval after the number of retries and optional "inverting" letter. "-r20i,5s" could then make 20 alternating passes (10 forward, 10 backward) with a 5 second pause between passes.



reply via email to

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