Aus irgendeinem Grund bekomme ich heute Morgen, wenn ich ' vagrant up ' renne, die folgende Fehlermeldung (dies hat seit über einem Jahr absolut funktioniert)
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.
Ich könnte versuchen, meinen vorhandenen .vagrant-Ordner zu entfernen und einen Vagabund aufzubauen, aber das wird für unsere sehr langsamen Internetgeschwindigkeiten ewig dauern.
Das hat bei mir funktioniert
Nach einigem Graben durch die Debug-Ausgabe entdeckte ich, dass VirtualBox, obwohl die tatsächliche VM intakt ist (ich kann sie von der VirtualBox-GUI-App laden und ausführen kann), irgendwo in ihrem Innern diese Eigenschaft als VM kennzeichnet "". Vagrant, der richtig glaubt, was er gesagt hat, spuckt die Fehlermeldung aus.
Nachdem ich mir die Hilfe von VBoxManage angesehen hatte, stellte ich fest, dass einer der Befehle, list vms, alle mit VirtualBox registrierten VMs auflistet:
$ /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}
Eine dieser VMs, die als nicht erreichbar gekennzeichnet sind, ist meine verlorene VM! Zeit zum Reparieren des Wagens von VBoxManage, indem die Registrierung der VM als nicht erreichbar aufgehoben und der Name anschließend erneut mit dem richtigen Namen registriert wird:
C:\cygwin\home\Philip\VirtualBox VMs\Rails-vm-v2\Rails-vm-v2.vbox
gespeichert.9709d3d5-ce4d-42b9-ad5e-07726823fd02.
Heben Sie in einer Windows-Eingabeaufforderung (oder einem Cygwin-Terminal) die Registrierung von VM mit dem Befehl unregistervm
auf. Verwenden Sie dazu den Wert [uuid]
aus Schritt 2:
$ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe unregistervm [uuid]
Registrieren Sie nun den VM mit dem Befehl registervm und den Pfad zur Konfigurationsdatei VM:
$ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe registervm C:\cygwin\home\Philip\Virtual VMs\Rails-vm-v2\Rails-vm-v2.vbox
Jetzt sollten Sie die VM wie erwartet starten können.
Quelle: http://www.psteiner.com/2013/04/vagrant-how-to-fix-vm-inaccessible-error.html
das funktioniert für mich:
In meinem Ordner "C:\Users {Benutzer}\VirtualBox VMs {vm-id}" befinden sich zwei Dateien
Das Umbenennen von "{vm-id} .vbox-tmp" in "{vm-id} .vbox" löste mein Problem und ich kann "vagrant up" aufrufen
Sie können den .vagrant-Ordner einfach aus Ihrem Projektordner löschen und Vagrant erneut ausführen.
Nichts hat hier für mich gearbeitet.
C:\Users [YourNameHere] .VirtualBox
Führen Sie Vagrant erneut aus:
vagrant up
Jetzt ist es soweit.
Suchen Sie denjenigen, auf den nicht zugegriffen werden kann, mit einem der folgenden Befehle:
$ vagrant global-status
oder:
$ VBoxManage list vms
Notieren Sie sich dann die GUID und entfernen Sie sie aus der VirtualBox.xml
-Datei (OS X: ~/Library/VirtualBox/VirtualBox.xml
, Windows: %HOME%/.VirtualBox
).
Entfernen Sie alternativ den .vagrant
-Ordner aus dem Ordner, in dem sich Ihre VM befindet, und beginnen Sie von vorne (vagrant up
).
Siehe auch: "Unzugängliche" virtuelle Maschinen können nicht aus der Virtualbox-Benutzeroberfläche gelöscht werden at VirtualBox
VirtualBox Manager gibt Ihnen wahrscheinlich ein paar nützliche Informationen. In meinem Fall wurde beispielsweise gemeldet, dass die Datei .vbox
nicht vorhanden ist.
Nach einem Blick war das Problem in der Tat, dass die Datei nicht existierte - etwas hatte sie in x.vbox-tmp
umbenannt (Herunterfahren des PCs mit der VM läuft immer noch?
Ich kopierte die x.vbox-prev
-Datei nach x.vbox
und versuchte erneut, die VM zu booten, und alles hat gut funktioniert.
Mein Problem war dasselbe, aber die Lösung war ziemlich unterschiedlich. Meine VMs sind auf einem Netzlaufwerk gespeichert, auf das über die NFS-Freigabe zugegriffen werden kann. Das Remote-Laufwerk war nach einem Neustart nicht hochgefahren, sodass auf die VMs nicht zugegriffen werden konnte. Es dauerte eine Weile, bis ich den Grund erkannte, und jagte überall SO ohne eine Lösung.
Dann bemerkte ich, dass ich mit dem Gesicht auf die Pfade kam, und alles funktionierte.
Kurz gesagt, es war ein Pfadproblem.
Ich dachte, ich sollte es hier einschließen, falls es jemandem im selben Boot hilft.
Wenn jemand Ihre VM aus dem VirtualBox VMs-Ordner manuell löscht, kann auch auf Ihre VM nicht zugegriffen werden. Sie können Ihre Maschine jedoch nicht zurückbekommen, aber Vagrant zeigt Ihre VM trotzdem in der Liste an. Um es vollständig aus der VM-Liste zu entfernen, gehen Sie zu
\.vagrant.d\data\machine-index
und öffnen Sie die Indexdatei. Löschen Sie die Referenz eines nicht erreichbaren Computers. Wenn Sie das nächste Mal den folgenden Befehl ausführen, wird der Computer, auf den Sie nicht zugreifen können, nicht angezeigt.
vagrant global-status --Prune
Ich musste [vm-id] .vbox-tmp (auf VirtualBox-VMs) in [vm-id] .vbox umbenennen. Danach konnte ich, ohne den .vagrant-Ordner zu löschen, Vagabund ausführen und es funktionierte sehr gut.