Zabs
Zabs

Reputation: 14142

VM has become 'inaccessible' - Vagrant no longer working

For some reason this morning when I run 'vagrant up' I get the following error (this has worked absolutely fine for over a year)

Your VM has become "inaccessible". Unfortunately, this is a critical error with VirtualBox that Vagrant can not cleanly recover from. Please open VirtualBox and clear out your inaccessible virtual machines or find a way to fix them.

I could try removing my existing .vagrant folder and doing a vagrant up but that will take forever on our very slow internet speeds - can anyone suggest how to fix this quickly?

Upvotes: 52

Views: 39619

Answers (13)

inandi_techm
inandi_techm

Reputation: 43

Try deleting from oracle VM manager. You can see inaccessible boxes, by removing them it should fix it. worked for me.

oracle VM box

Upvotes: 0

PHZ.fi-Pharazon
PHZ.fi-Pharazon

Reputation: 2093

By using command line, you can remove all inaccessible boxes by using an one-liner:

VBoxManage list vms |grep inaccessible |cut -d "{" -f2 |cut -d "}" -f1 |xargs -L1 VBoxManage unregistervm 

See https://phz.fi/?p=8422

Upvotes: 2

dinobi
dinobi

Reputation: 560

I also had this problem. when change directory of virtualBox after restart macOS virtualbox get inaccessible to all vms.

my solution worked.

just move virtual box to default directory. remove all inaccesible vms from gui, then register vms from default path next run it.

or

vagrant up

Upvotes: 0

klapshin
klapshin

Reputation: 801

On Linux the following will unregister the machines:

VBoxManage list vms
VBoxManage unregistervm <inaccessible machine UID>

After that you may want to restart VB services:

sudo /sbin/vboxconfig

Deleting .vagrant folder may help but you had to rebuild the machines.

Upvotes: 1

Krishna Gond
Krishna Gond

Reputation: 143

By chance if someone deletes your vm from VirtualBox VMs folder manually, also in this case your vm would become inaccessible. However, you will not be able to get your machine back but vagrant will still show your vm in the list. To remove it completely from the vm list, go to

\.vagrant.d\data\machine-index 

and open index file. Delete the reference of inaccessible machine. Next time when you run below command, it will not show your inaccessible machine.

vagrant global-status --prune

Upvotes: 4

Anderson
Anderson

Reputation: 11

I had to rename [vm-id].vbox-tmp (on VirtualBox VMs) to [vm-id].vbox. After that, without delete the .vagrant folder, I could run vagrant up and it worked very well.

Upvotes: 1

Danny Wheeler
Danny Wheeler

Reputation: 61

VirtualBox Manager will likely give you a bit more useful information, for example in my case it reported that the .vbox file did not exist.

After taking a look the problem was indeed that the file didn't exist - something had renamed it to x.vbox-tmp (shutting the PC down with the VM still running maybe?)

I copied the x.vbox-prev file to x.vbox and tried booting the VM again and everything worked fine.

Upvotes: 6

gbe
gbe

Reputation: 163

My problem was the same, but the fix was quite different... my VMs are stored on a network drive, accessible by NFS share. The remote drive had failed to come up after a reboot, so the VMs weren't accessible. Took me a while to realise the reason, and meantime hunted all over SO without a solution.

Then I realised, facepalmed, mounted the paths, and it all worked.

So in a nutshell, it was a path issue.

I felt I should include it here in case it helps someone in the same boat.

Upvotes: 2

osanger
osanger

Reputation: 2352

Nothing here worked for me.

  1. I deleted (or renamed see first comment) all files from

C:\Users[YourNameHere].VirtualBox

  1. Run vagrant again:

    vagrant up

Now it's up.

Upvotes: 9

kenorb
kenorb

Reputation: 166487

Find the one which is inaccessible with one of the following commands:

$ vagrant global-status

or:

$ VBoxManage list vms

Then note the GUID, and remove it from VirtualBox.xml file (OS X: ~/Library/VirtualBox/VirtualBox.xml, Windows: %HOME%/.VirtualBox).

Alternatively remove .vagrant folder from the folder where is your VM and start from scratch (vagrant up).

See also: Cannot Delete "Inaccessible" virtual machines from Virtualbox GUI at VirtualBox

Upvotes: 5

Zabs
Zabs

Reputation: 14142

This worked for me

After some digging through the debug output, I discovered that even though the actual VM is intact (I can load and run it from the VirtualBox GUI app), somewhere in its guts, VirtualBox flagged this VM as "". Vagrant, rightly believing what it's told, spits out the error message.

After looking at VBoxManage's help, I found that one its commands, list vms, unsurprisingly lists all of the VMs registered with VirtualBox:

$ /cygdrive/c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe list vms
"precise64" {3613de48-6295-4a91-81fd-36e936beda4b}
"<inaccessible>" {2568227e-e73d-4056-978e-9ae8596493d9}
"<inaccessible>" {0fb42965-61cb-4388-89c4-de572d4ea7fc}
"<inaccessible>" {c65b1456-5771-4617-a6fb-869dffebeddd}
"<inaccessible>" {9709d3d5-ce4d-42b9-ad5e-07726823fd02}

One of those VMs flagged as inaccessible is my lost VM! Time to fix VBoxManage's wagon, by unregistering the VM as inaccessible, then re-registering it with the correct name:

  1. Open the configuration file for your lost VM. Mine was saved to C:\cygwin\home\Philip\VirtualBox VMs\rails-vm-v2\rails-vm-v2.vbox
  2. Find and copy the value of the uuid attribute of the Machine node. Mine was 9709d3d5-ce4d-42b9-ad5e-07726823fd02.
  3. In a Windows command prompt (or Cygwin terminal), unregister the VM with the unregistervm command, using the [uuid] value from step 2:

    $ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe unregistervm [uuid]
    
  4. Now register the VM using the registervm command, with the path to the VM configuration file:

    $ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe registervm C:\cygwin\home\Philip\Virtual VMs\rails-vm-v2\rails-vm-v2.vbox
    

    Now you should be able to start the VM as expected.

Source : http://www.psteiner.com/2013/04/vagrant-how-to-fix-vm-inaccessible-error.html

Upvotes: 18

user5454185
user5454185

Reputation: 435

You can simply delete the .vagrant folder from your project folder and run vagrant up again.

Upvotes: 41

Ultimate Fighter
Ultimate Fighter

Reputation: 1797

this works for me:

In my "C:\Users{user}\VirtualBox VMs{vm-id}" folder are two files

  • {vm-id}.vbox-prev
  • {vm-id}.vbox-tmp

Renaming from "{vm-id}.vbox-tmp" to "{vm-id}.vbox" solved my problem and i can call "vagrant up"

Upvotes: 157

Related Questions