Hello devs and users of GNU ddrescue :) I just finnished developing a benchmark suite that simulates faulty hardware for data resurection in a reproducable way (and without further damaging real hardware)
It works with a glibc wrapper library, simulating a virtual file/device, which will behave much like a real one. I can has: - simulated IO errors on faulty blocks - blocks that fail to read with IO error sometimes and sometimes work (recoverable blocks) - realistic timing characteristics for sector read times and seeking (both on faulty blocks and good ones) Its bundled with safecopy-1.5 ( http://safecopy.sourceforge.net ) (safecopy is free software, GPL v2 ) and will work with any program using read() and seek() calls to recover data. (cat, dd, dd-rescue, GNU ddrescue, safecopy, ... ) I have put more thorrough information about the simulation idea here: http://safecopy.sourceforge.net/analysis/analysis.html The actual statistics data of the drives I analyzed is in a tarball on sourceforge too (warning, huge): http://sourceforge.net/projects/safecopy/files/statistics-data/statistics-data.tgz/download Please tell me what you think and if you have any suggestions or comments. regards Corvus Corax demo: > ./benchmark.sh floppy > > Safecopy device simulator. > This program simulates bad media and allows you to benchmark programs > that try to read from it. > > Simulating floppy: > The virtual file simulating floppy is called 'debug' and accessible in > any directory. > You can now benchmark any program attempting to read from it. > > For example: > safecopy -b 512 -o badblocks.log debug output.dat > or > dd if=debug of=output.dat > > You can exit the simulator at any time with: > exit > > > Information on floppy: > This simulates a 5.25 inch floppy disk (with data coming from /dev/zero) > 80 tracks, 512 byte per sector, 1.2 MB capacity. > The disk has some buggy sectors on track 0 and 1 > ... > sh-3.2$ time ddrescue debug test.dat logfile > simulator initialising - reading config simulator.cfg > simulator time granularity: 127 usecs > simulator everything shorter will be busy-waiting > simulator simulated blocksize: 512 > simulator simulated filesize: 1228800 > simulator time to seek over 1000 sectors: 503905 usec > simulator delay on any sectors: 34 usec > simulator simulated soft error count: 2 > simulator opening data source: /dev/zero > simulator verbosity: 0 > > > Press Ctrl-C to interrupt > Initial status (read from logfile) > rescued: 269824 B, errsize: 58368 B, errors: 1 > Current status > rescued: 1227 kB, errsize: 1536 B, current rate: 512 B/s > ipos: 10240 B, errors: 3, average rate: 24510 B/s > opos: 10240 B > Finished > > real 0m38.985s > user 0m0.156s > sys 0m5.956s > sh-3.2$ _______________________________________________ Bug-ddrescue mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-ddrescue
