0

I initiated the following:

ddrescue -f -r3 /dev/sdb /dev/sdc mapfile

After 4 days I got a "Finished". The mapfile contains:

# Mapfile. Created by GNU ddrescue version 1.26
# Command line: ddrescue -f -r3 /dev/sdb /dev/sdc mapfile
# Start time:   2022-05-09 17:49:25
# Current time: 2022-05-14 05:33:32
# Finished
# current_pos  current_status  current_pass
0xD6C5FE00     +               3
#      pos        size  status
0x00000000  0xBAA15000  +
0xBAA15000  0x00001000  -
0xBAA16000  0x0002B000  +
0xBAA41000  0x00002000  -
0xBAA43000  0x00012000  +
0xBAA55000  0x00001000  -
0xBAA56000  0x00001000  +
0xBAA57000  0x00001000  -
0xBAA58000  0x000EA000  +
0xBAB42000  0x00003400  -
0xBAB45400  0x0021CC00  +
0xBAD62000  0x00001000  -
0xBAD63000  0x000DA000  +
0xBAE3D000  0x00005000  -
0xBAE42000  0x00003000  +
0xBAE45000  0x00001000  -
0xBAE46000  0x00107000  +
0xBAF4D000  0x00001000  -
0xBAF4E000  0x00005000  +
0xBAF53000  0x00002000  -
0xBAF55000  0x00005000  +
0xBAF5A000  0x00004000  -
0xBAF5E000  0x02377000  +
0xBD2D5000  0x00000400  -
0xBD2D5400  0x00000C00  +
0xBD2D6000  0x00001400  -
0xBD2D7400  0x00009C00  +
0xBD2E1000  0x00001000  -
0xBD2E2000  0x000E1000  +
0xBD3C3000  0x00004000  -
0xBD3C7000  0x192C8000  +
0xD668F000  0x00001000  -
0xD6690000  0x00450000  +
0xD6AE0000  0x00001000  -
0xD6AE1000  0x000B8000  +
0xD6B99000  0x00002200  -
0xD6B9B200  0x739A06AE00  +

I'd like to try again (to re-try the errors a few more times). Will the -f cause the mapfile to be ignored and overwrite my last recovery so far? Or can I simply re-run the last command (as above)?

Sorry if I'm missing something. I'm having a tough time fully understanding how my situation with -f and device-to-device (rather than to image file) applies to the docs.

  • I answered below, this comment is a side note. What if ddrescue ignored the mapfile and started anew? We don't expect it to write random data to /dev/sdc, do we? If it started anew, it would read from /dev/sdb again, so it would start overwriting /dev/sdc with data that is already there. It could erase the mapfile though, but you can save a copy beforehand just in case. So save a copy of the mapfile and just try. If you see ddrescue immediately at 99% then you will know. If it starts anew then my answer is wrong, still the copy on your /dev/sdc won't be invalidated. – Kamil Maciorowski May 16 '22 at 17:17

1 Answers1

0

Can I simply re-run the last command?

Yes. From the manual [emphasis mine]:

-f
--force

Force overwrite of outfile. Needed when outfile is not a regular file, but a device or partition. This option is just a safeguard to prevent the inadvertent destruction of partitions, and is ignored for regular files.

"Just a safeguard", so nothing more than a safeguard. The option just tells ddrescue you know what you're doing when specifying /dev/sdc as the outfile. In effect the tool starts without trying to save you from your potential mistake. The option does not change the way ddrescue works after it starts. ddrescue is designed not to ignore the mapfile, -f changes nothing in this regard.

  • Great info. Thank you. Executed as expected. Jumped to 99.99 and is re-trying. Appreciate the support. Well described. I'll use this info often. Cheers. – stevemagg May 16 '22 at 20:12