Solucionado (ver solução)
Solucionado
(ver solução)
17
respostas

[Linux - Ubuntu 18.04 LTS] Erro ao executar o comando vagrant up - There was an error while executing `VBoxManage`, a CLI used by Vagrant

Estou com problemas a executar o comando "vagrant up" no diretório com o arquivo Vagrantfile.

Aula 1 do curso de Grafana e Telegraf: Monitoramento em tempo real.

Segue log do erro:

/usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/driver/version_5_0.rb:714:in block in start': There was an error while executingVBoxManage`, a CLI used by Vagrant (Vagrant::Errors::VBoxManageError) for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "248ed2d2-7f37-40a6-a885-7d733f801e66", "--type", "headless"]

Stderr: VBoxManage: error: The virtual machine 'alura-grafana-poc_default_1605206146954_83507' has terminated unexpectedly during startup with exit code 1 (0x1) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine There was an error while executing VBoxManage, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "248ed2d2-7f37-40a6-a885-7d733f801e66", "--type", "headless"]

Stderr: VBoxManage: error: The virtual machine 'alura-grafana-poc_default_1605206146954_83507' has terminated unexpectedly during startup with exit code 1 (0x1) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine

17 respostas

Olá, Gustavo. Beleza?

Você pode fornecer mais informações sobre seu ambiente?

  • Qual distribuição Linux você está usando?
  • Que método você usou para instalar o VirtualBox?
  • É a primeira vez que você está usando o VirtualBox nessa máquina?

FIco te aguardando!

Olá Vitor, então respondendo seus questionamentos, segue:

  • Distribuição Ubuntu 18.04 LTS;
  • Para a instalação tanto do Virtual Box, como do Vagrant eu utilizei as indicações deste link: https://cursos.alura.com.br/forum/topico-instalacao-no-ubuntu-16-04-lt-26360 (fiz dos dois jeitos com apt-get install e caí neste problema reportado, como também baixando o .deb (versão mais recente) de ambos e instalando com dpkg -i);
  • Sim é a primeira vez que estou utilizando Virtual Box;

Opa! E ai, Gustavo!

É bom verificar se a virtualização está habilitada na bios do seu computador. Se não estiver, habilite e testa de novo o vagrant.

Se não funcionar, recomento que você desinstale os pacotes do virtualbox que estão instalados, pode ter alguma falha de compatibilidade por conta das versões do Virtualbox e do seu Ubuntu ou algo de errado pode ter acontecido na instalação.

Recomendo que instale da seguinte forma, diretamente do site oficial do virtualbox:

#1) Baixa as chaves GPG da oracle:
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

2)Adiciona o repositório do virtualbox:
$ sudo add-apt-repository "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib"

3)Instala o VirtualBox:
$ sudo apt update
$ sudo apt install virtualbox-6.0

4)Instala headers do kernel e umas bibliotecas necessárias para  compilação:
$ sudo apt-get install build-essential linux-headers-$(uname -r) dkms virtualbox-dkms

5) Ativa o modulo do kernel:
$ sudo modprobe vboxdrv

Depois reinicie a máquina.

Fico aguardando o resultado.

A Virtualização está habilitada na BIOS Vitor. Desinstalei tudo e instalei da forma como sugeriu acima, aplicando comando por comando, a instalação foi realizada com sucesso. Na sequência reiniciei a máquina, chequei as configurações da BIOS, e a realmente a Virtualização já estava habilitada.

Aí tentei executar o comando novamente "vagrant up" e o problema persiste:

Bringing machine 'default' up with 'virtualbox' provider...

==> default: Checking if box 'ubuntu/bionic64' version '20201111.0.0' is up to date...

==> default: Clearing any previously set forwarded ports...

==> default: Clearing any previously set network interfaces...

==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat default: Adapter 2: hostonly default: Adapter 3: bridged

==> default: Forwarding ports... default: 22 (guest) => 2222 (host) (adapter 1)

==> default: Running 'pre-boot' VM customizations...

==> default: Booting VM... There was an error while executing VBoxManage, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "b69d8f73-1548-4ebb-a194-16a518bcfad8", "--type", "headless"]

Stderr: VBoxManage: error: The virtual machine 'alura-grafana-poc_default_1605296412063_54439' has terminated unexpectedly during startup with exit code 1 (0x1) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine

Eu sugiro uma conversa por Google Meet caso realmente esteja disposto a me ajudar.

Fico no aguardo.

Opa, e ai Gustavo.

Eu acabei esquecendo de colocar os comandos para instalação e ativação dos modulos do kernel para o virtualbox.

Eu editei a resposta acima. Você pode rodar os comandos que estão com a numeração 4) e 5). Teoricamente, depois de rodar o 5) já deve funcionar, pois creio que o erro é pela falta do módulo de kernel e esse comando o ativa. Mas se quiser reiniciar pode ser mais garantido, pois os módulos necessários são ativados na inicialização.

Se continuar dando errado, a gente pode marcar a conversa.

O problema persiste, mesmo após aplicar os comandos 4 , 5 e reiniciar o SO. Podemos marcar um call para segunda-feira ? Mande um invite no meu e-mail gdutra.gustavo@gmail.com, pode ser o melhor horário para você.

Podemos sim. Já já te mando o invite.

Fala, Gustavo. Beleza?

Vamos continuar tentando resolver o problema por aqui para que outras pessoas com problemas parecidos tenham uma ajuda também.

Eu tentei simular os passos que você seguiu aqui na minha máquina e algumas coisas podem estar acontecendo:

  • Falha de compatibilidade entre a versão do Vagrant e do VirtualBox.
  • Como você instalou o VirtualBox de algumas formas diferentes, pode estar acontecendo algum conflito entre essas versões.
  • Uma versão incompatível do módulo do kernel pode ter sido instalada

Vamos conseguir mais informações sobre o seu ambiente. Você pode postar aqui as seguintes informações?


1) Verificar a versão do kernel instalado
$ uname -r

2) Verificar quais pacotes estão instalados
$ sudo apt list --installed | grep virtualbox
$ sudo apt list --installed | grep vagrant
$ sudo apt list --installed | grep linux-headers

3) Verificar quais repositórios estão sendo usados
$ cat /etc/apt/sources.list | grep virtualbox

É bastante coisa, mas quando acontecem problemas assim cada caso pode ter suas complicações, então é bom a gente ter a maior quantidade de informação relevante possível.

Fico aguardando.

Ok Vitor, dando sequência na investigação do possível problema. Apliquei os comandos que você sugeriu, a fim de levantar as informações necessárias, segue o relatório:

Versão do Kernel -> 5.4.0-53-generic
-------------------------------------------------------------------------------------------

Retorno do comando "sudo apt list --installed | grep virtualbox":

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

virtualbox/bionic-updates,now 5.2.42-dfsg-0~ubuntu1.18.04.1 amd64 [installed,automatic]
virtualbox-dkms/bionic-updates,bionic-updates,now 5.2.42-dfsg-0~ubuntu1.18.04.1 all [installed]
virtualbox-qt/bionic-updates,now 5.2.42-dfsg-0~ubuntu1.18.04.1 amd64 [installed,automatic]
-------------------------------------------------------------------------------------------

Retorno do comando "sudo apt list --installed | grep vagrant":

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

vagrant/now 1:2.2.13 amd64 [installed,local]
-------------------------------------------------------------------------------------------

Retorno do comando "sudo apt list --installed | grep linux-headers":

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

linux-headers-5.3.0-28/bionic-updates,bionic-updates,bionic-security,bionic-security,now 5.3.0-28.30~18.04.1 all [installed,automatic]
linux-headers-5.3.0-28-generic/bionic-updates,bionic-security,now 5.3.0-28.30~18.04.1 amd64 [installed,automatic]
linux-headers-5.4.0-52-generic/bionic-updates,bionic-security,now 5.4.0-52.57~18.04.1 amd64 [installed,automatic]
linux-headers-5.4.0-53-generic/bionic-updates,bionic-security,now 5.4.0-53.59~18.04.1 amd64 [installed]
linux-headers-generic-hwe-18.04/bionic-updates,bionic-security,now 5.4.0.53.59~18.04.47 amd64 [installed]
-------------------------------------------------------------------------------------------

Retorno do comando "cat /etc/apt/sources.list | grep virtualbox":

deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian bionic contrib
# deb-src [arch=amd64] http://download.virtualbox.org/virtualbox/debian bionic contrib

E aí gustavo, beleza?

Massa! A situação aí está bem parecida com a daqui.

Vamos remover todos os pacotes relacionados com o virtualbox e vagrant, remover os arquivos relacionados e tentar deixar o sistema "livre" deles, do zero.

1) desinstala removendo arquivos de configuracao do virtualbox:
$ sudo apt purge virtualbox virtualbox-qt virtualbox-dkms

2) remove arquivos de VMs criados pelo virtualbox:
$ sudo rm -Rf /home/<SEU-USUÁRIO>/'VirtualBox VMs'

3) desinstala removendo arquivos de configuracao do vagrant:
$ sudo apt purge vagrant

4) remove arquivos de vms baixadas pelo vagrant:
$ sudo rm -Rf /home/<SEU-USUÁRIO>/.vagrant.d

5) comentar ou remover as linhas que citam o virtualbox no /etc/apt/sources.list (precisa ser root)

6) atualiza repositórios:
$ sudo apt update

7) remove pacotes orfãos do sitema (não utilizados):
$ sudo apt autoremove

8) limpa o cache do apt:
$ sudo apt clean

Depois disso, reinicie o sistema e, se você procurar qualquer traço dos programas, é improvável que ache.

Agora pode reinstalar o virtualbox e vagrant com:

$ sudo apt install virtualbox-dkms
$ sudo apt install vagrant

Crie um novo diretório e coloque o Vagrantfile que você deseja executar.

Execute vagrant up para ligar e depois vagrant ssh para acessar a máquina.

Esse foi o processo que eu fiz e funcionou por aqui.

Espero que dê certo! Estou agurdando o resultado.

Olá Vitor, fiz o passo a passo, e na instalação do vagrant aconteceram alguns erros:

Erros foram encontrados durante o processamento de:
 lvm2
 libguestfs0:amd64
 libguestfs-reiserfs:amd64
 libguestfs-perl
 libguestfs-hfsplus:amd64
 libguestfs-tools
 libguestfs-xfs:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Mesmo assim tentei executar o vagrant up, pois notei que o vagrant foi instalado mesmo com estes erros acima e o problema persiste.

Olá, Gustavo.

Sobre esses erros, é só desinstalar com sudo apt purge lvm2 e reinstalar com sudo apt install lvm2. Resolveu aqui.

Sobre o erro que persiste ao iniciar o vagrant, pelo menos a gente tem indícios de que o problema não é com a instalação dos programas, já que refizemos do zero. Só pra garantir, você iniciou outro diretório vazio e tinha apenas o Vagrantfile nele?

Pode mandar aqui o código do novo erro?

Fico aguardando.

Ok, os erros foram corrigidos com os comandos acima.

Sim, criei uma pasta limpa e coloquei só o Vagrantfile dentro, a partir dela executei o comando "vagrant up".

Detalhe não é um NOVO erro, é o mesmo problema que acontecia anteriormente:

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "a0875090-dbe3-4957-b329-97cca4850876", "--type", "headless"]

Stderr: VBoxManage: error: The virtual machine 'grafana-poc-iot_default_1605622747908_18925' has terminated unexpectedly during startup with exit code 1 (0x1)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine

Só um detalhe o virtual box não abre diretamente também.

Lembrando que os 8 passos sugerido por você anteriormente foram executados com sucesso, e na sequência reinstalei o virtualbox e o vagrant.

Refiz todos eles novamente, e mesmo assim o problema persiste.

Entendi, Gustavo.

Sobre o código de erro, especificamente:

Ele se refere a problemas na alocação de recursos pelo VirtualBox. Pode ser porque um modulo do kernel não está ativo, porque o modulo errado foi habilitado, porque está tentando alocar mais recursos do que a máquina host suporta ou qualquer outro motivo relacionado.

Não acho muito bom para o aprendizado, nem o ideal para se resolver problemas, mas talvez um ultimo recurso seja reinstalar o sistema. Falando nisso, por que não usar o Ubuntu 20 LTS?

Mas, antes de partir para esse último recurso, sugiro tentar de novo umas coisas. Isso que vou te falar agora eu acabei de fazer aqui na minha máquina e funcionou direitinho.

Considerando que nem o VirtualBox sozinho está abrindo também, acredito que teremos de abandonar os pacotes oferecidos pelos repositórios oficiais do Ubuntu 18.04. Vamos instalar o VirtualBox 6.0 e o Vagrant 2.2.13 (ultima versão).

Infelizmente, você vai precisar executar novamente aqueles passos para remoção. Vou deixar aqui para reunir tudo num só lugar:

1) desinstala removendo arquivos de configuracao do virtualbox:
$ sudo apt purge virtualbox virtualbox-qt virtualbox-dkms

2) remove arquivos de VMs criados pelo virtualbox:
$ sudo rm -Rf /home/<SEU-USUÁRIO>/'VirtualBox VMs'

3) desinstala removendo arquivos de configuracao do vagrant:
$ sudo apt purge vagrant

4) remove arquivos de vms baixadas pelo vagrant:
$ sudo rm -Rf /home/<SEU-USUÁRIO>/.vagrant.d

5) comentar ou remover as linhas que citam o virtualbox no /etc/apt/sources.list (precisa ser root)

6) atualiza repositórios:
$ sudo apt update

7) remove pacotes orfãos do sitema (não utilizados):
$ sudo apt autoremove

8) limpa o cache do apt:
$ sudo apt clean

Se tiver aquele problema do lvm2, é so dar purge e instalar novamente.

Agora instalar o VirtualBox pelo repositório oficial. Se você tiver comentado as linhas sobre o virtualbox no /etc/apt/sources.list, recomendo que remova e execute sudo apt update.

Instalar VirtualBox e Vagrant pela fonte oficial:

1) Baixa as chaves GPG da oracle:
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

2)Adiciona o repositório do virtualbox:
$ sudo add-apt-repository "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib"

3)Atualiza os repositórios:
$ sudo apt update

4) Instala o VirtualBox:
$ sudo apt install virtualbox-6.0

5)Instala headers do kernel e umas bibliotecas necessárias para  compilação:
$ sudo apt-get install build-essential linux-headers-$(uname -r)

6) Verifica a versão instalada do VirtualBox:
$ sudo apt list --installed | grep virtualbox

Opcionalmente, reiniciar o sistema.

7) Baixa o Vagrant pelo site oficial: 
(precisa instalar o curl, caso não tenha instalado)
$ curl -O https://releases.hashicorp.com/vagrant/2.2.13/vagrant_2.2.13_x86_64.deb

8) Instala o Vagrant:
$ sudo apt install ./vagrant_2.2.13_x86_64.deb

9) Verifica a versão instalada do Vagrant:
$ vagrant --version

Reiniciar a máquina.

Depois você tenta executar o vagrant up. Se tiver aquele problema, tenta abrir o virtualbox pela interfaçe grafica e executa a máquina. Se tiver algo errado, ele vai mostrar o erro e sugerir que você execute /sbin/vboxconfig. Geralmente, resolve o problema.

Espero que dê certo dessa vez! Fico aguardando o resultado.

Olá Vitor, o problema permanece.

Segue a saída do comando "sudo modinfo vboxdrv":


filename:       /lib/modules/5.4.0-53-generic/misc/vboxdrv.ko
version:        6.0.24 r139119 (0x00290008)
license:        GPL
description:    Oracle VM VirtualBox Support Driver
author:         Oracle Corporation
srcversion:     7CD57CADA17790865D65ED2
depends:        
retpoline:      Y
name:           vboxdrv
vermagic:       5.4.0-53-generic SMP mod_unload 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4
parm:           force_async_tsc:force the asynchronous TSC mode (int)

solução!

Olá, Gustavo.

Aparentemente, o modulo correto está carregado, baseado na versão do seu kernel.

Deve ter alguma coisinha aí incompatível, algo que não está aparente. Todas as soluções possíveis que eu conhecia, as pesquisas e teste que eu fiz aqui eu te passei.

Se usar outra versão do Ubuntu não é uma possibilidade e você não pode reinstalar por agora, uma opção é usar outra solução de virtualização em conjunto com o vagrant, o KVM.

Eu testei aqui sem precisar desinstalar novamente tudo, mas, como as coisas estão complicadas, talvez seja bom :). Nesse caso, você vai precisar somente do Vagrant instalado. Se não for reinstalar, remove o diretório ~/.vagrant.d para garantir que as coisas vão estar zeradas.

1) instala os pacotes necessários para usar o libvirt (API do KVM):
$ sudo apt install qemu libvirt-daemon-system libvirt-clients libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev ruby-libvirt ebtables dnsmasq-base

2) Instala plugins do vagrant para permitir o uso do libvirt e a conversão de uma boxes.
$ vagrant plugin install vagrant-libvirt
$ vagrant plugin install vagrant-mutate

3) Instala NFS (permite o compartilhamento de pastas entre o host e a maquina virtual):
$ sudo apt install nfs-kernel-server nfs-common

Depois de instalar as dependências, reinicie o computador.

Agora é hora de criar o Vagrantfile. Com o libvirt, precisa ser um pouco diferente e você precisa usar boxes que são compatíveis. Você pode ver no site do Vagrant quais são: https://app.vagrantup.com/boxes/search?provider=libvirt. Para o ubuntu 18.04 usado no curso achei o generic/ubuntu1804.

Vagrantfile:

Vagrant.configure("2") do |config|

  config.vm.define "ubuntu1804" do |config|
      config.vm.hostname = "ubuntu-18.04"
      config.vm.box = "generic/ubuntu1804"
      config.vm.box_check_update = false
      config.vm.network "private_network", ip: "192.168.33.10"
      config.vm.provider :libvirt do |v|
          v.memory = 1024
      end
  end
end

Depois é executar o vagrant up --provider=libvirt para especificar que o virtualizador é o libvirt. A saída é um pouco diferente de quando usa o Virtualbox, e pode demorar um pouco. Depois é executar o vagrant ssh.

Foi isso que eu fiz aqui e funcionou. Espero que funcione para você.

Olá Vitor, a saída foi utilizar o KVM como solução de virtualização realmente, porém notei um erro ao subir vagrant:

gustavo@gustavo-desktop:~/Documentos/projetos-diversos-pocs/grafana-telegraf-poc$ vagrant up --provider=libvirt
Bringing machine 'ubuntu1804' up with 'libvirt' provider...
==> ubuntu1804: Creating image (snapshot of base box volume).
==> ubuntu1804: Creating domain with the following settings...
==> ubuntu1804:  -- Name:              grafana-telegraf-poc_ubuntu1804
==> ubuntu1804:  -- Domain type:       kvm
==> ubuntu1804:  -- Cpus:              2
==> ubuntu1804:  -- Feature:           acpi
==> ubuntu1804:  -- Feature:           apic
==> ubuntu1804:  -- Feature:           pae
==> ubuntu1804:  -- Memory:            1024M
==> ubuntu1804:  -- Management MAC:    
==> ubuntu1804:  -- Loader:            
==> ubuntu1804:  -- Nvram:             
==> ubuntu1804:  -- Base box:          generic/ubuntu1804
==> ubuntu1804:  -- Storage pool:      default
==> ubuntu1804:  -- Image:             /var/lib/libvirt/images/grafana-telegraf-poc_ubuntu1804.img (128G)
==> ubuntu1804:  -- Volume Cache:      default
==> ubuntu1804:  -- Kernel:            
==> ubuntu1804:  -- Initrd:            
==> ubuntu1804:  -- Graphics Type:     vnc
==> ubuntu1804:  -- Graphics Port:     -1
==> ubuntu1804:  -- Graphics IP:       127.0.0.1
==> ubuntu1804:  -- Graphics Password: Not defined
==> ubuntu1804:  -- Video Type:        cirrus
==> ubuntu1804:  -- Video VRAM:        256
==> ubuntu1804:  -- Sound Type:    
==> ubuntu1804:  -- Keymap:            en-us
==> ubuntu1804:  -- TPM Path:          
==> ubuntu1804:  -- INPUT:             type=mouse, bus=ps2
==> ubuntu1804: Creating shared folders metadata...
==> ubuntu1804: Starting domain.
==> ubuntu1804: Error when updating domain settings: undefined method `strip' for nil:NilClass
==> ubuntu1804: Waiting for domain to get an IP address...
==> ubuntu1804: Waiting for SSH to become available...
    ubuntu1804: 
    ubuntu1804: Vagrant insecure key detected. Vagrant will automatically replace
    ubuntu1804: this with a newly generated keypair for better security.
    ubuntu1804: 
    ubuntu1804: Inserting generated public key within guest...
    ubuntu1804: Removing insecure key from the guest if it's present...
    ubuntu1804: Key inserted! Disconnecting and reconnecting using new SSH key...
==> ubuntu1804: Setting hostname...
==> ubuntu1804: Configuring and enabling network interfaces...

Erro ao atualizar as configurações do domínio: Método 'strip' indefinido para nil:NilClass

Mesmo assim, na sequência consegui acessar a máquina virtual com ssh.

Vou marcar sua resposta como solução, caso atualize para o Ubuntu-20-04 LTS tentarei utilizar o Vagrant com o VirtualBox e comento aqui no fórum se tive problemas.