Unbelievable, I just spotted your email address on the page. I guess what I should have asked is to have it placed near the very top or bottom of the page so it can readily be seen. Cheers!
I really like safecopy. When copying optical discs it is NOT like dd_rescue at all, because it actually works (instead of failing on I/O errors). I have a request though. Could you please, please, please put an email or some contact on the safecopy webpage.
I spent an hour looking over the page and through all your source code trying to find a way to contact you.
You might also want to look at GNU ddrescue http://freshmeat.net/projects/addrescue here. They do a similar thing however with different emphasis.
1. ddrecue does the equivalent of a safecopy 'multi stage rescue' fully automatically in a single run, partitioning the source file semi-intelligently depending on found IO errors, but IMHO gives the user less feedback and control over the copying process and occuring errors.
2. ddrescue is more optimized for overall copying speed, especially on non erroneous data. Whether its actually faster than safecopy on real data depends on hardware, error distribution and parametrisation. You can usually find parameters for safecopy to make it faster than ddrescue but ddrescue tries to be optimal on its own without the need of tweaking parameters. Generally, doing safecopy --stage1 plus --stage2 is roughly comparable in speed. Also doing a --stage3 makes safecopy considerable slower but also potentially rescues more data.
3. ddrescue to my knowledge has no low level IO capabilities on its own, but does support accessing /dev/raw devices for bypassing kernel level caching (raw device "mounting" needs to be done manually though. You should be able to do that with safecopy too, but honestly I didn't try that yet. Please give me a bug report if there are any problems :)
4. ddrescue's sector logfiles are not compatible to fschk, mkfs or safecopy badblock lists. That should be workaroundable with a simple perl or bash translator script though.
I have not yet done extensive tests and benchmarks to compare safecopy with other tools.
Safecopy has big advantages when it comes to damaged CDs thanks to lowlevel IO, and might be better suited for an experienced user, wanting fine control, while ddrescue might be better suited for users who don't know what they are doing and still want to get maximum data with minimum hardware harm and time.
Re: and dd_rescue?
yes I have - unfortunately after I already wrote the code, so indeed while it seems like the wheel has been reinvented just another time, lucky we are this tech is at least not patented (i hope), so we actually CAN do this ;)
while searching for alternatives I would also note:
dd_rhelp - a frontend for dd_recover which tries to speed up the retrieval of valid data
recoverdm - a tool that works slightly more low level on the hardware and therefore maybe more effective
cdrdao - together with further tools like bin2iso probably the best alternative while working on CDs
Have you looked at dd_rescue? It does largely the same things that you are doing . . . .
An open, cross-platform journaling program.
A scientific plotting package.