it-swarm.com.ru

VM стал "недоступным" - Vagrant больше не работает

По какой-то причине этим утром, когда я запускаю ' vagrant up ', я получаю следующую ошибку (это работало абсолютно нормально в течение года)

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.

Я мог бы попытаться удалить мою существующую папку .vagrant и сделать vagrant, но это навсегда изменится на наших очень медленных скоростях интернета - кто-нибудь может подсказать, как это быстро исправить?

30
Zabs

Это сработало для меня

Немного покопавшись в выходных данных отладки, я обнаружил, что хотя фактическое VM не повреждено (я могу загрузить и запустить его из приложения с графическим интерфейсом VirtualBox), где-то в его кишках VirtualBox пометил это VM как "". Бродяга, справедливо веря тому, что сказано, выкладывает сообщение об ошибке.

Посмотрев на помощь VBoxManage, я обнаружил, что одна из его команд, list vms, неудивительно, что перечисляет все виртуальные машины, зарегистрированные в 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}

Одна из тех виртуальных машин, помеченных как недоступные, - моя потерянная виртуальная машина! Пришло время исправить вагон VBoxManage, отменив регистрацию VM как недоступную, а затем заново зарегистрировав его с правильным именем:

  1. Откройте файл конфигурации для вашей потерянной виртуальной машины. Мой был сохранен в C:\cygwin\home\Philip\VirtualBox VMs\Rails-vm-v2\Rails-vm-v2.vbox
  2. Найдите и скопируйте значение атрибута uuid узла Machine. Мой был 9709d3d5-ce4d-42b9-ad5e-07726823fd02.
  3. В командной строке Windows (или терминале Cygwin) отмените регистрацию VM с помощью команды unregistervm, используя значение [uuid] из шага 2:

    $ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe unregistervm [uuid]
    
  4. Теперь зарегистрируйте VM с помощью команды registervm, указав путь к файлу конфигурации VM:

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

    Теперь вы сможете запустить VM как положено.

Источник: http://www.psteiner.com/2013/04/vagrant-how-to-fix-vm-inaccessible-error.html

11
Zabs

это работает для меня:

В моей папке "C:\Users {user}\VirtualBox VMs {vm-id}" находятся два файла.

  • {VM-ID} .vbox-пред
  • {VM-ID} .vbox-TMP

Переименование из "{vm-id} .vbox-tmp" в "{vm-id} .vbox" решило мою проблему, и я могу назвать "vagrant up"

97
Ultimate Fighter

Вы можете просто удалить папку .vagrant из папки вашего проекта и снова запустить vagrant. 

25
user5454185

Ничто здесь не работает для меня. 

  1. Я удалил (или переименовал см. Первый комментарий) все файлы из 

C:\Users [YourNameHere] .VirtualBox

  1. Запустите vagrant снова: 

    vagrant up

Теперь все кончено.

7
osanger

Найдите тот, который недоступен с помощью одной из следующих команд:

$ vagrant global-status

или же:

$ VBoxManage list vms

Затем запишите GUID и удалите его из файла VirtualBox.xml (OS X: ~/Library/VirtualBox/VirtualBox.xml, Windows: %HOME%/.VirtualBox).

Либо удалите папку .vagrant из папки, в которой находится VM, и начните с нуля (vagrant up).

См. Также: Невозможно удалить «недоступные» виртуальные машины из графического интерфейса Virtualbox на VirtualBox

4
kenorb

VirtualBox Manager, скорее всего, даст вам немного более полезной информации, например, в моем случае он сообщил, что файл .vbox не существует.

После осмотра проблема действительно заключалась в том, что файл не существовал - что-то переименовало его в x.vbox-tmp (возможно, выключение компьютера, когда VM еще работает?)

Я скопировал файл x.vbox-prev в x.vbox и снова попытался загрузить VM, и все заработало нормально.

4
Danny Wheeler

Моя проблема была той же, но исправление было совсем другим ... мои виртуальные машины хранятся на сетевом диске, доступном через общий ресурс NFS. После перезагрузки удаленный диск не удалось запустить, поэтому виртуальные машины были недоступны .... Мне потребовалось некоторое время, чтобы понять причину, и тем временем охотился SO по всему пути без решения.

Затем я понял, подтянул лицо, смонтировал дорожки, и все заработало.

Итак, в двух словах, это был вопрос пути.

Я чувствовал, что должен включить это здесь на случай, если это поможет кому-то в одной лодке.

2
gbe

Случайно, если кто-то удалит ваш виртуальный компьютер из папки виртуальных машин VirtualBox вручную, в этом случае ваш виртуальный компьютер станет недоступным. Однако вы не сможете вернуть свою машину, а vagrant все равно покажет ваш vm в списке. Чтобы полностью удалить его из списка виртуальных машин, перейдите в 

\.vagrant.d\data\machine-index 

и откройте индексный файл. Удалить ссылку недоступной машины. В следующий раз, когда вы запустите команду ниже, она не покажет вашу недоступную машину.

vagrant global-status --Prune
2
Krishna Gond

Мне пришлось переименовать [vm-id] .vbox-tmp (на виртуальных машинах VirtualBox) в [vm-id] .vbox. После этого, без удаления папки .vagrant, я смог запустить vagrant, и это сработало очень хорошо.

0
Anderson