Is it possible to restore a snapshot on a drive that already has the files from an older backup?

Hello everyone. Thank you for the amazing software as always. I am not sure if I explained the problem in the title. So here is a detailed explanation.

I use FreeFileSync to mirror my drive to another external drive. Lets say my drive crashed and the latest backup is the one I have from restic that I have on yet another drive or cloud.

Since I already have most of the files on my local backup drive that I mirrored with FreeFileSync, lets say a week ago, would it be possible to point restic to that drive and only restore the files that are not there (files created or modified in the last week since the backup on the external drive), saving me bandwidth and time on the restore?

Thanks.

Use Restore using mount

Then you can utilise whatever program you prefer to “sync back” only files you need.

Hi there! Thank you for the help. So it looks like I can not use this on Windows, but I can always dual boot Lubuntu and use that.

Thanks again! Hope you are doing well these days.

As according to one of their mottos “Microsoft loves Linux” you can always use WSL

I have not tried it myself but I see people around using it extensively.

Other option is to try rustic - restic spin off alternative (I use it myself). It does support restore in place and can scan and use already existing files - something what restic can not do yet.

Both programs are “repo compatible”. So you can for example keep using restic and use rustic only for specific restore task.

If I restore from online, will restic mount need to download everything first before the mount takes place? Is the same true for rustic? Thanks.

No - it only reads metadata to list content. Downloads only what you request to transfer.

No neither. Rustic first would scan existing local files to ensure if needed to restore. Then only downloads what is missing.

Thank you so much! I am going to do some test restores to get used to it.

Disclaimer: I’m the author of rustic.

Note that it depends what you are doing with the mount, especially how your syncing is working. Restic has to download all data content that are accessed during the mount. And it may even download contents multiple time if duplicated data is needed at more places. (yes, there is a blob cache but this is limited, of course)

So, if your sync is based on metadata, restic doesn’t download all file contents, but only the needed ones (but maybe some blobs multiple times).

If your syncing reads (all) data from the mount in order to compare what it has to do, restic will need to download everything before even the sync starts.

If you use rustic in-place restore, only the local data is read to determine what to restore. By default, this relies on metadata to speed-up, but there is the option --verify-existing.
Moreover, duplicate blobs are only read once from the repository during the restore.

You could try mounting the repo and use rsync --ignore-existing flag.

The next restic version will have a bunch of new restore options: Make restore overwrite behavior configurable · Issue #4817 · restic/restic · GitHub

1 Like