Restoring files if your Duplicati installation is lost is the standard path. It builds a custom partial temporary database. That should finish faster than a full database recreate which would have to make all files and all versions. You can point it at the downloaded backup files to gain a little extra speed from the local access.
You’re in somewhat strange territory if you’re downloading blocklist volumes, so I don’t know if the Direct restore from backup files
would suffer the same fate of having to look for missing block information. Anything on the progress bar past 90% is the last exhaustive search for info that may or may not be found. Please record any error messages if it finishes with a complaint. We don’t want to do a rerun to get those.
I don’t know if I’ve done a partial before. I’ve done a complete, but I don’t know how much space you have. The help text says “Use the filters, --exclude, to perform a partial restore.”, but it crashes on me if exclude matches something. Possibly a bug, but what I was really hoping for you was that --include would work…
If you have another system, you can certainly try different methods in parallel to see which works, and fast.
EDIT:
My crash on --exclude match:
Using set 0 with timestamp 10/3/2020 1:14:33 PM
Building lookup table for file hashes
Index file has 5 hashes in total
Building lookup table with 4 entries, giving increments of 1
Computing restore path
Restoring 1 files to C:\tmp\RecoveryToolRestore
Removing common prefix C:\backup source\length1.txt\ from files
error: System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string.
Parameter name: startIndex
at System.String.Substring(Int32 startIndex, Int32 length)
at Duplicati.CommandLine.RecoveryTool.Restore.MapToRestorePath(String path, String prefixpath, String restorepath)
at Duplicati.CommandLine.RecoveryTool.Restore.Run(List`1 args, Dictionary`2 options, IFilter filter)
I can avoid a crash (and have exclude work) by omitting --targetpath and letting it restore to original path. Information on the theory behind that (and the workaround that works here for that sort of crash) is here. Depending on how different the desired path is from the undesired ones, it might be possible to exclude.