I've recently started using Virtualbox, Vagrant and VVV for my local Wordpress development environment. It's very slick.
One issue I've had is that after shutting things down with 'vagrant halt', the next time I start with 'vagrant up' I get this error:
==> default: Setting the name of the VM: vagrant-local
The name of your virtual machine couldn't be set because VirtualBox
is reporting another VM with that name already exists. Most of the
time, this is because of an error with VirtualBox not cleaning up
properly. To fix this, verify that no VMs with that name do exist
(by opening the VirtualBox GUI). If they don't, then look at the
folder in the error message from VirtualBox below and remove it
if there isn't any information you need in there.
VirtualBox error:
VBoxManage.exe: error: Could not rename the directory 'C:\VirtualBox VMs\ubuntu-cloudimg-trusty-va
230_94704' to 'C:\VirtualBox VMs\vagrant-local' to save the settings file (VERR_ALREADY_EXISTS)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component SessionMachine, interface IMac
VBoxManage.exe: error: Context: "SaveSettings()" at line 3015 of file VBoxManageModifyVM.cpp
I visit the location listed C:\VirtualBox VMs\ and indeed, that directory 'vagrant-local' already exists. If I delete (or rename) this directory and run 'vagrant up' again, the machine starts. But, it also performs the full provisioning process. Which, of course, takes a very long time.
I'm using all the default configurations for VVV and Vagrant out-of-the-box. What should I do to help VirtualBox "clean up properly" and recognize that it doesn't need to recreate the VM every time I halt and restart.
Or, am I just missing something?
"Beginner level" responses are welcome, if not preferred. I'm a beginner in this area and I appreciate the help! Thanks.
CURRENT STATUS: I've deleted the VM in question from C:\VirtualBox VMs\; Running Git Bash as administrator, I've been able to use vagrant up
(full provision takes place), vagrant halt
, and vagrant up
again all with expected results (no provisioning on second up
). As of now, it appears that everything is working. Appears... :)
Hum .. This is a weird issue. when you run vagrant halt
it just send signal to terminate the VM.
Vagrant keeps all the configuration under a .vagrant
directory (at least for mac os and linux, not fully sure if windows) , you should never delete this directory as it has all the reference to your vm, so when you run vagrant up
next time, vagrant will search for information from this directory to start the corresponding vm, and it knows it does not need to recreate the VM nor provisioning.
The correct way to remove information about your vm is to run vagrant destroy
, it will delete all the .vagrant directory and the vm.
The are then ways to make this linkage again from .vagrant and your vm but its a bit tricky and not sure they are officially supported
When you use vagrant, VirtualBox should become (almost) transparent, you should not need to start it to use your VM, everything should be run from vagrant (at least at beginner level)
Note : running on windows, you should be fine if you run as administrator
If you are on a Mac, and vagrant destroy
doesn't work, and you get the message: The name of your virtual machine couldn't be set because VirtualBox is reporting another VM with that name already exists.
Then you need to go to the VirtualBox VMs folder in your user folder and delete the VM folder.
It's in a weird state where it can't build the VM because it's trying to create settings for a folder that is already there with the same name.
Mine was a little simpler than most of these. I checked the "Virtual Box VMs" directory (for windows) and deleted the folder that was named what it was trying to be named as. This resolved the issue for me.
I got above mentioned git bash error while vagrant up. There are multiple possibilities to occur this issue.
I have used below mentioned steps and vagrant command working properly.
- Open Oracle VM virtual manager - In this Oracle VM virtual
manager panel, Remove current running virtual machine.
- Exit from git bash command prompt
- Open git bash again
- Run vagrant up command as vagrant up
Vagrant up command will run successfully.
Please note:
Make sure you will run vagrant halt command while close git bash command prompt.
First, vagrant halt and then exit command.
VBoxManage: error: Could not rename the directory '<SOURCE>
' to '<DESTINATION>
' to save the settings file (VERR_ALREADY_EXISTS
)
If you don't care about your VM state and you can provision it from scratch, remove your destination folder, then it should work. Also double check if you've removed it from VirtualBox list as well.
This could happened with VirtualBox not cleaning up properly or you interrupted the process of cleaning (e.g. Ctrl-C in the middle of vagrant destroy
).