Step by step guide for verifying / restoring backups from a different machine?

Just getting started with VB and purchased a Commercial license for a single ESXi host. I was able to muddle through setting it up and backing up using Cron to a Backblaze B2. I think it’s working (I’m getting sucessful email reports)

But, I need to test this to be able to sleep at night. I want to add the remote B2 repo to my workstation (using Duplicacy?) and do a test restore and make sure I can successfully boot up the backed up VMs. I tried to do this but I am getting stuck. Is this the right command to set up the local directory?

duplicacy init <vm-name>@<esxi-hostname> b2://VB-BUCKETNAME

Is there a step-by-step guide for this somewhere? I want to be able to do simple things like:

  • fetch a list of VMs that are available in a B2 repo
  • see the date of the last successful backup
  • download the latest snapshot, or a specific snapshot
  • view the size of a VM in the bucket

Sorry if I overlooked this info in the docs but I couldn’t find it.

Thank you.

That init command is correct. What error messages did you get?

This guide may be helpful:

Or you can run the new web GUI available from, which is free for managing backups (even for commercial use). There is a user guide at

@gchen Thank you, those links were helpful. I was able to successfully restore 2 complete backups from B2 to a fresh machine and was able to boot both of them in VMware. Great! I didn’t know about the Web GUI, playing with that now. It looks very nice! But, for now I prefer to stick with the CLI.

One followup question: With the restore command, is it correct that you cannot specify an id to restore? E.g. I have set up a storage with e.g. init esx01 b2://BUCKET01 and can list all my VMs using duplicacy list -a but if I want to restore a particular snapshot, I have to switch to a different directory, initialize again specifying the specific VM id e.g. init vm-winsrv-01@esx01, and only then will I be able to restore?

Just seems a bit odd that restore would not accept an -id parameter, so I am asking. Thanks!

This is intentional – an -id option would make it more likely to mess up the repository by overwriting files from another repository.

Got it. Thank you for the clarification.