Vagrant SSH не работает с VirtualBox

61372
Till

vagrant up терпит неудачу, когда он попадает в часть ssh:

myterminal$ vagrant up [default] VM already created. Booting if its not already running... [default] Running any VM customizations... [default] Clearing any previously set forwarded ports... [default] Forwarding ports... [default] -- ssh: 22 => 2222 (adapter 1) [default] -- db2: 30003 => 30003 (adapter 1) [default] Cleaning previously set shared folders... [default] Creating shared folders metadata... [default] Booting VM... [default] Waiting for VM to boot. This can take a few minutes. [default] Failed to connect to VM! Failed to connect to VM via SSH. Please verify the VM successfully booted by looking at the VirtualBox GUI. 

Затем, когда я впоследствии пытаюсь подключиться с помощью vagrant ssh или vagrant reload или подобного, я получаю это:

myterminal$ vagrant reload [default] Attempting graceful shutdown of linux... SSH connection was refused! This usually happens if the VM failed to boot properly. Some steps to try to fix this: First, try reloading your VM with `vagrant reload`, since a simple restart sometimes fixes things. If that doesn't work, destroy your VM and recreate it with a `vagrant destroy` followed by a `vagrant up`. If that doesn't work, contact a Vagrant maintainer (support channels listed on the website) for more assistance. 

Пожалуйста помоги! Я действительно в тупике.

С уважением,

Люк

37

18 ответов на вопрос

26
Till

У меня была такая же проблема с коробкой, указанной в разделе «Начало работы» на сайте Vagrant. Мое решение ниже для коробки этого урока.

Я нахожу решение здесь: https://github.com/mitchellh/vagrant/issues/391

  1. в VagrantFile добавьте графический интерфейс: config.vm.boot_mode = :gui
  2. бежать vagrant up
  3. в графическом интерфейсе войдите с пользователем "vagrant" (пароль = "vagrant")
  4. В графическом интерфейсе, запустить sudo /etc/init.d/networking restart, в /etc/network/interfacesфайле, теперь вы должны иметь раздел с#VAGRANT-BEGIN [...]#VAGRANT-END
  5. беги vagrant reloadна физической машине
Это сработало для меня, спасибо. У меня раньше работал Vagrant, потом он перестал работать с новой коробкой. Любая идея, что вызывает это? Andrew Vit 12 лет назад 3
** sudo /etc/init.d/networking restart ** работает для меня, спасибо! Anatoly 12 лет назад 0
Это также сработало для меня. Спасибо! 12 лет назад 0
Я перезапустил, но в / etc / network / interfaces у меня нет раздела с # VAGRANT-BEGIN [...] # VAGRANT-END, какая-либо подсказка, почему? Могу ли я добавить его вручную? sparrovv 12 лет назад 2
работает sudo dhclient Ngo Minh Nam 12 лет назад 0
Я получаю `Следующие настройки не должны существовать: boot_mode` Calin 8 лет назад 1
Получил в последней версии вы должны поставить v.gui = true для конфигурации провайдера Calin 8 лет назад 1
Я также исправил эту проблему, временно отключив мостовой режим. Andrew Anthony Gerst 7 лет назад 0
9
Mark Cheverton

Я увидел эту проблему с моей настройкой и в итоге сузил ее до того факта, что добавил имя в файл локальных хостов. Итак, у меня было:

127.0.0.1 localhost myname myalias 

Удалил тот, myaliasкоторый я добавил, и он загрузился хорошо. Спасибо @saphirlazuli за подсказку, что это связано с сетью.

Какой обходной путь, если я хочу сохранить миалиас? Mickey Cheong 12 лет назад 0
Если вы хотите использовать псевдоним, способ Debian / Ubuntu состоит в том, чтобы оставить первую строку как просто `127.0.0.1 localhost`, но добавить вторую строку со своими псевдонимами, например так:` 127.0.1.1 foo bar baz` CodeGnome 12 лет назад 0
6
DuffJ

Для меня это непостоянная проблема, и определенно она связана с сетью. Я нашел более полезную информацию в выпусках Vagrant GitHub № 391 и № 455 . Я попытался удалить мою неиспользуемую сеть только для хоста в настройках VirtualBox (как рекомендуется в качестве возможного исправления в одной из проблем GitHub), которая, похоже, не помогла.

Запуск в графическом режиме (как описано в предыдущем ответе) - отличный способ отладки / устранения проблем. Я обнаружил, что это потому, что по какой-то причине виртуальная машина не может получить IP-адрес при запуске. Запуск в режиме графического интерфейса пользователя, затем вход в систему (vagrant / vagrant) и запуск sudo dhclientв гостевой ОС приведет к получению IP-адреса, и процесс установки Vagrant завершится успешно.

Все еще ищу постоянное исправление, хотя.

Надеюсь это поможет!

[ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ]: В GitHub Issue # 455 было добавлено полезное предложение, включающее добавление следующей конфигурации в ваш Vagrantfile:

config.ssh.max_tries = 150 

В настоящее время это работает для меня, и, кажется, имеет смысл, поскольку проблема, по-видимому, связана с тайм-аутом - увеличение количества попыток должно увеличить вероятность успеха процесса SSH во времени. Во-первых, это периодически возникающая проблема, поэтому я на некоторое время оставлю за собой суждение, но скрестив пальцы, это сработает! Спасибо karel1980 за предложение исправить.

Удаление моей неиспользуемой сети только для хоста в настройках VirtualBox работало на меня! Спасибо! Duke 10 лет назад 0
Похоже, что этот параметр был запрещен с версии 1.3.X - https://github.com/berkshelf/berkshelf/pull/856. Jeremy Hajek 10 лет назад 1
5
Till

Если vagrant upне получается, я рекомендую следующее:

  1. Загрузитесь в режиме графического интерфейса : это помогает увидеть, не повреждено ли изображение (или, например, что оно делает до запуска инициализации), установите config.vm.boot_mode = :guiвVagrantfile
  2. Ведение журнала отладки : запустить подготовку с отладкой ,chef.log_level = :debug
  3. Перепакуйте коробку : иногда вам нужно что-то установить до того, как все остальное запустится - для начальной загрузки загрузчика. На самом деле это невозможно, поэтому проще всего загрузить виртуальную машину без какой-либо подготовки, установить все, что вам нужно, и заново упаковать коробку ( vagrant box repackage fooзатем vagrant import fooдобавить и добавить fooв свой Vagrantfile).

Примечание: режим графического интерфейса может иметь другие проблемы, например, для меня не работает инициализация с vagrant 0.7.5при включенном графическом интерфейсе. Хотя все еще здорово отлаживать реальную коробку.

2
Simon Celen

My network card type was originally set to 82540EM. I changed it to Am79C973 and now Vagrant up works every time. I've started multiple VMs, even rebooted the host and it still works.

The command is:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973 

Remember to repackage and readd your box to Vagrant.

I'm running Debian Squeeze 64-bit as host and guests, using VirtualBox 4.1.16 on a Core i7-2600 machine.

1

Если модуль ядра уже установлен, попробуйте запустить виртуальную машину напрямую с VirtualBox. Это покажет вам все ошибки запуска, встречающиеся при загрузке виртуальной машины. Такие проблемы, как ошибки файловой системы, будут мешать правильной работе демона сервера SSH.

1
sparrovv

У меня была такая же проблема на OSX (VirtualBox 4.1.0 и Vagrant 0.8.6), и для меня единственной помощью было:

  1. войти с помощью: gui по логину / пасс: vagrant / vagrant
  2. измените файл «/etc/rc.local», включив в него строку «sh /etc/init.d/networking restart» непосредственно перед «выходом 0».
  3. отключить: графический интерфейс
  4. Бродячая перезагрузка

Я нашел это по адресу: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.

1
diedthreetimes

У меня была такая же проблема. В моем случае 64-битная эмуляция не была включена. Включение этой функции в моем BIOS исправило проблему.

1
Kevin Meredith

Моя гостевая коробка не загружалась должным образом из-за проблемы с диском.

Я заставил ВМ закрыться через

VBoxManage controlvm poweroff

Затем я изменил мой, Vagrantfileчтобы включить эту строку:

config.vm.boot_mode =: gui

Далее я перезапустил

бродячий до

В появившемся графическом интерфейсе мне пришлось запустить утилиту «Disk Fixer».

После запуска дисковой утилиты моя виртуальная машина была успешно загружена, и я смог запустить vagrant ssh.

1
Pavan Katepalli

I uncommented the part in the Vagrantfile like this:

 config.vm.provider :virtualbox do |vb| # Don't boot with headless mode vb.gui = true # Use VBoxManage to customize the VM. For example to change memory: # vb.customize ["modifyvm", :id, "--memory", "1024"] end 

I saved it and then I did

vagrant reload 

and then things worked fine. I'm not sure why that fixed it though.

Похожие вопросы