The proper way to backup (and later restore) vagrant box is by using vagrant package command. This command creates a re-usable box file that can be easily transfered and used on other machines.
I have two Vagrant boxes I use on Ubuntu host machine. The last time I reinstalled my host machine OS I forgot to backup the boxes using vagrant package command, but saved the ~/VirtualBox VMs/ folder and all the files in it. This folder contains the virtual machines I amusing with VirtualBox (the virtual HDs to be more specific), so I used them to restore my boxes. Below are the steps I used to recover the boxes using the virtual HDs (vmdk files)
1. Import the machine
Go to ~/VirtualBox VMs/<name of the machine>/ and double click on the file with vbox extension. This should open VirtualBox GUI and import the machine.
2. Create base box file using the virtual machine you just imported
Use the following command to create a box file.
vagrant package --base <name of running virtual machine> --output ubuntu.box
3. Import the base box
First at all, you have to know the name of vagrant box you are restoring. Just open the Vagrantfile and look for line like this
config.vm.box = "ubuntu/trusty64"
As you can see, the box I am trying to restore is named “ubuntu/trusty64” and so I have to run the following command:
vagrant box add "ubuntu" ./ubuntu.box
Of course, you have to adjust the file path to the ubuntu.box file you have created in step 2.
To confirm that box is successfully added, you can run
vagrant box list
If everything is OK, you can now start your box in the usual way – using vagrant up command. Enjoy!