Hello, Santiago Cassina. Once I experienced similar behavior, I used only 1 fully automated script:
...slow areas are being read at no more than 100 kb/s, sometimes even taking some seconds to read 1 physical sector (avg.rate ~1 kb/s). I used --exit-on-slow with (now useless since v.1.22-pre4 modified line 151 of ddrescue.h 1.22-pre3 (having changed 30 s to 1 s)). There is a new option in the latest version of ddrescue, --delay-slow * Version 1.22-pre4 released. * Added new option '--delay-slow'. * Option '-K, --skip-size' now accepts sizes up to 1 EiB. * '--ask', '-vv' now show size along with model and serial number. I used also -O -T0 -X -a4194304 - but nothing helps enough. Sometimes ddrescue worked for 2 minutes at speed about 4...16 kb/s without stopping by any reason. I interrupted it manually. I finally wrote a script to cycle the skipping, here it follows: #!/bin/bash # script for cycling the run of GNU ddrescue on disk with slow areas # for (( i=1276000; $i<=2720000; i=$i+1280 )); do #1280Mi best suits the skip size #areas before 1276000Mi and after 2720000Mi have been successfully read already. #1297760 - using the last position, for example if the script was stopped manually for (( i=1297760; i<=2720000; i+=500 )) ; do ia=$i'Mi' echo -i$ia ./ddrescue /dev/sdb /dev/sda ~/log.txt --cpass=1 -O -X -R -T0 -a4194304 -K120Mi -i$ia -s500Mi --exit-on-slow done You can easily modify the script for your needs - it exits on most error cases, then restarts the rescue from a new position; you can just restart after exiting. Also, try using direct mode as it was recommended. Besides, with the newest versions you probably wouldn't need any script at all. Just try ddrescue source destination mapfile_name.log -a9Mi -O --delay-slow=1 --cpass=1,2 --idirect _______________________________________________ Bug-ddrescue mailing list Bug-ddrescue@gnu.org https://lists.gnu.org/mailman/listinfo/bug-ddrescue