Vagrant up занимает много времени после того, как "Ожидание загрузки машины. Это может занять несколько минут...", чтобы завершить загрузку

У меня есть виртуальный бокс ubuntu. Все работает нормально, за исключением того, что при загрузке это занимает около 5 или более минут после сообщения

Waiting for machine to boot. This may take a few minutes...

до завершения загрузки:

➜  my_box  vagrant reload
/Users/pinouchon/.vagrant.d/boxes/my_box/virtualbox/include/_Vagrantfile:5: warning: already initialized constant VAGRANTFILE_API_VERSION
[default] Attempting graceful shutdown of VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
# More port forwards 
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
# waits about 5 minutes at this point, then:

[default] Machine booted and ready!
[default] The guest additions on this VM do not match the installed version of
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please update the guest additions within the
virtual machine and reload your VM.

Guest Additions Version: 4.3.0
VirtualBox Version: 4.2
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant

Эта ячейка была намного быстрее (около 30 секунд для загрузки). Поэтому я думаю, что это сетевая конфигурация, которая вызывает тайм-аут или что-то в этом роде.

Он попробовал исправления, предложенные здесь: https://github.com/mitchellh/vagrant/wiki/%60vagrant-up%60-hangs-at-%22Waiting-for-VM-to-boot.-This-can-take-a-few-minutes%22

но без успеха. (Я попытался исправить Resolve it и workaround 2.).

Я также попытался удалить любые 127.0.0.1 записи в моих файлах /etc/hosts. Без успеха.

Любые подсказки?

ОС/Версии:

Host: OSX 10.8.5
Guest: Ubuntu 12.05
Virtualbox: 4.2

Ответ 1

Вы используете ящик с дополнениями для виртуальных ботов 4.3.x, но ваш хост работает 4.2.x

Из-за этого несоответствия Virtualbox не может выполнить какую-либо команду, которая является частью процесса создания.

Либо получить новый флажок с гостевыми дополнениями 4.2.x, либо обновить ваш виртуальный бокс до 4.3.x, скорее всего, решит эту проблему.

Обновить

Попробуйте установить в вашем бродяжном файле следующее:

config.vm.boot_timeout = 300

Также попробуйте включить отладку

vagrant up --debug

Обновление 2

Некоторые vm просто не играют хорошо с несовместимыми версиями гостевых дополнений. Например, поле centos и debian из той же компании. Целом будет тайм-аут, в то время как debian будет работать нормально.

http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210.box
http://puppet-vagrant-boxes.puppetlabs.com/debian-70rc1-x64-vbox4210.box

Ответ 2

Это также может произойти, если бродяга не может подключиться к SSH.

Кажется, что не сообщается какая-либо ошибка, почему она висит в этом случае.

Введите GUI, чтобы показать:

 # Show GUI or not.
config.vm.provider "virtualbox" do |v|
  v.gui = true
end

Вы можете увидеть "dev login:" или другое приглашение, как будто все в порядке.

Тогда вы, возможно, помните, что вчера вечером меня сменил набор SSH на гостевой...

Решение: скажите бродяге, где секретный ключ находится на хосте.

 # Use a new keyset
config.ssh.private_key_path = "~/.ssh/id_rsa"

Открытый ключ должен быть на гостях тоже.

Это будет работать, только если вы уже поместили соответствующий открытый ключ в файл authorized_keys на гостевой странице.

Это зависит от ОС, но в общем окне Precise64 он выглядит примерно так: от терминала:

Хост Linux с openssh-client

ssh-copy-id -i .ssh/id_rsa.pub [email protected]

Mac Host

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

Существует также порт ssh-copy-id для mac. https://github.com/beautifulcode/ssh-copy-id-for-OSX

Этот пост SO имеет простой встроенный механизм обеспечения обмена данными, чтобы поменять его на авторизованные_иблоки при настройке машины на автоматическую. По умолчанию бродяга небезопасна?

Ответ 3

У меня было это время от времени: VM занимает много времени, чтобы загрузиться, а затем что-то не так с его сетью (сайт, на котором я запущен, становится недоступным).

Для меня это было зафиксировано следующим образом:

  • vagrant ssh в VM
  • В VM запустите sudo /etc/init.d/networking restart

Ответ 4

Не уверен, что у вас уже есть это решение, но у меня была такая же ошибка, и чтобы исправить это, я удалил выданную dhcp-арендную плату на бродягу перед перезагрузкой.

@ваш локальный вы можете отключить виртуальную машину с помощью

VBoxManage controlvm <vmname> poweroff

Затем на VirtualBox вы должны удалить dhcp

sudo rm -Rf /var/lib/dhcp/*

Вы найдете дополнительную информацию, которая поможет вам понять.

https://github.com/mitchellh/vagrant/wiki/%60vagrant-up%60-hangs-at-%22Waiting-for-VM-to-boot.-This-can-take-a-few-minutes%22

Ответ 5

@spuder предложение vagrant up --debug исправило эту проблему для меня. Казалось, что графический интерфейс VirtualBox работает более плавно и быстрее появляется в этом окне. Я обратил это на то, что другие предложили:

config.vm.provider :virtualbox do |vb|
  vb.gui = true
end

и установил config.vm.boot_timeout = 600.

Это было связано с установкой для курса Full Stack Founds Udacity.

Ответ 6

Исправлена ​​ошибка. Что я сделал:

  • обновленный виртуальный бокс до 4.3.0
  • обновленный Vagrant до 1.4.2 (я думаю, что 1.4.3 работал бы так же)
  • после этого исправления (для обновления vBoxAdditions): https://gist.github.com/zbal/7800423

Примечания:

  • Обновление виртуального бокса необходимо, потому что виртуальные боты и vboxGuestAdditions совместимы. (мои vBoxGuestAdditions были слишком свежими)
  • Необходима модернизация бродяг, так как vagrant 1.3 не работает с virtualbox 4.3 (vagrant 1.4 делает).
  • Исправлено, что я сделал, это обновленная версия этого: https://gist.github.com/fernandoaleman/5083680

Другие примечания:

  • Изменение config.vm.boot_timeout = 300 не помогло

Изменить: Также попробуйте запустить remove /etc/udev/rules.d/70-persistent-net.rules на гостевой машине.

Ответ 7

Попробуйте создать insecure_private_key

Я решил это, удалив insecure_private_key, расположенный под ~/.vagrant.d

Возможно, причина в том, что файл insecure_private_key старый

Ответ 8

Я решил эту проблему:

wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
chown -R vagrant:vagrant .ssh

Некоторые также могут выполнять следующие действия:

Warning: Authentication failure. Retrying...

Ответ 9

Попробуйте раскомментировать строку:

config.vm.network "private_network", ip: "192.168.33.11"

внутри VagrantFile

Ответ 10

В Virtualbox Manager выберите нужную виртуальную машину, затем щелкните правой кнопкой мыши Settings → Сеть. Включить адаптер 1 → Кабель подключен. Наконец, выполните

$vagrant reload