I have released a new passthrough patch to work with ddrescue-1.19 on my
site for ddrutility:
http://sourceforge.net/projects/ddrutility/files/ddrescue%20patches/passthrough%20patch/
There are a few improvements over the previous release.
First, since it does only work and compile on Linux, it now works with
the new configure --enable-linux option. Meaning that if you just do a
normal configure on a patched ddrescue, the passthrough options will not
be available, and it should still compile on a non-linux system. This
was tested on a Mac OSX system, and a patched ddrescue compiled and
operated normally.
Second, there are some improvements in the error handling of the
passthrough commands. And it also now detects the maximum cluster size
that can be used with the passthrough commands on the drive.
Third, and maybe the best new improvement, when using the
--ata-passthrough option no sector is tried twice. This is possible
because a failed ATA command will return the first bad sector of the
attempted read. The patch will now mark that sector as bad, and then
make one attempt to read the sectors up to the error. This can speed up
a recovery, as normally the linux kernel returns the whole block as
failed and then ddrescue has to read sector by sector to find any bad
sectors. And by making the attempt to read the data up to the error
while still on the copy pass can also increase the amount of good data
recovered on the copy passes.
I have done some extensive testing of this patch, including byte for
byte comparisons of recovered data on a couple different drives. While
that is no guarantee that it is perfect under every possible condition,
I am confident enough in it that I just used it to perform a recovery of
a friends 750GB drive, along with use of the latest release of
ddrutility (ddru_ntfsbitmap and ddru_ntfsfindbad). I can say that the
recovery looks very successful!
Scott
_______________________________________________
Bug-ddrescue mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-ddrescue