O Vagrant falha ao carregar porque o grub2 aguarda a seleção do kernel após o desligamento inadequado

5

Eu tenho uma caixa Vagrant com o Ubuntu 12.04 LTS. Às vezes, depois de forçar um desligamento (por exemplo, porque a máquina parou de responder), a caixa errante não inicializa da próxima vez.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[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)
[default] Running 'pre-boot' VM customizations...
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...

A captura de tela de visualização no Virtualbox sugere que a caixa trava no estágio do grub, sempre esperando uma entrada do usuário para selecionar o kernel.

Então, toda vez que isso ocorrer, eu defino vb.gui = true no Vagrantfile, reinicio a máquina e seleciono o kernel para inicializar manualmente. O interessante é que depois de selecionar o kernel uma vez, o subseqüente decapitado começa novamente a funcionar bem - até o próximo desligamento inadequado da máquina.

Minhas perguntas são: Existe uma maneira mais elegante que não requer intervenção manual para evitar que a caixa vagrant seja interrompida na tela de seleção do kernel do grub após um desligamento forçado?

    
por Michael Osl 23.03.2014 / 10:58

2 respostas

4

Primeiro, obtenha o ID da máquina

# Before v1.1
# MACHINE_ID=$(awk -F\" '{print }' .vagrant)
# After v1.1
MACHINE_ID=$(cat .vagrant/machines/default/virtualbox/id)

Desligue a VM

VBoxManage controlvm ${MACHINE_ID} poweroff

Em seguida, inicialize a máquina com um console GUI

VBoxManage startvm ${MACHINE_ID}

Aguarde que inicialize, faça login, execute:

sudo update-grub

Quando tiver sucesso, desligue-o

VBoxManage controlvm ${MACHINE_ID} poweroff

Depois disso, o vagrant up inicializará sua VM normalmente

Fonte

    
por Sylvain Pineau 23.03.2014 / 11:39
1

Adicione a /etc/default/grub da sua caixa:

GRUB_RECORDFAIL_TIMEOUT=0

E corra:

sudo update-grub
    
por Geoffrey Ragot 11.04.2014 / 12:15