## 15 Generate mode ¶

When ddrescue is invoked with the option `--generate-mode` it operates in ’generate mode’, which is different from the default ’rescue mode’. That is, in ’generate mode’ ddrescue does not rescue anything. It only tries to generate a mapfile for later use.

So you didn’t read the manual and started ddrescue without a mapfile. Now, two days later, your computer crashed and you can’t know how much data ddrescue managed to save. And even worse, you can’t resume the rescue; you have to restart it from the very beginning.

Or maybe you started copying a drive with ‘`dd conv=noerror,sync`’ and are now in the same situation described above. In this case, note that you can’t use a copy made by dd unless it was invoked with the ‘`sync`’ conversion argument.

Don’t despair (yet). Ddrescue can in some cases generate an approximate mapfile, from infile and the (partial) copy in outfile, that is almost as good as an exact mapfile. It makes this by simply assuming that sectors containing all zeros were not rescued.

However, if the destination of the copy was a drive or a partition, (or an existing regular file and truncation was not requested), most probably you will need to restart ddrescue from the very beginning. (This time with a mapfile, of course). The reason is that old data may be present in the drive that have not been overwritten yet, and may be thus non-tried but nonzero.

For example, if you first tried one of these commands:

    ddrescue infile outfile
    or
    dd if=infile of=outfile conv=noerror,sync

then you can generate an approximate mapfile with this command:

    ddrescue --generate-mode infile outfile mapfile

Note that you must keep the original offset between `--input-position` and `--output-position` of the original rescue run.