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

Problemas com o comando vagrant up no mac

Ao executar o comando "vagrant up" na minha VM (Ubuntu 18.04/Linux) aparece o seguinte erro:

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

Command: ["startvm", "c2771e45-dde5-4d64-9121-8ccf16eb48f4", "--type", "headless"]

Stderr: VBoxManage: error: VT-x is not available (VERR_VMX_NO_VMX) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole

Estou utilizando MacBook Pro 2015. Li diversos artigos na internet e tentei algumas alternativas descritas aqui no forum como por exemplo, o comando vagrant up --provider virtualbox mas, nada funcionou. Se puderem me ajudar ou dar alguma dica serei eternamente grato. Obrigado.

7 respostas

Olá Fernando, tudo bem? O erro está relacionado com a virtualização, você já habilitou a virtualização na BIOS? Outra possibilidade é o Processador não dar suporte a virtualização, mas como você falou que está utilizando um MacBook Pro 2015, então podemos descartar essa possibilidade. Veja primeiro se a virtualização está habilitada na BIOS! Se tiver habilitada então informa aqui pra gente verificar outras possíveis soluções!

Olá Jonilson, boa tarde!Tudo bem e com você?! Obrigado por responder.

Procurando na internet encontrei um comando que informa se a virtualização está habilitada no meu macbook pro.

sysctl -a | grep machdep.cpu.features

Após digitar o comando acima, recebi a seguinte mensagem:

machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C

Pelo que eu entendi e li nos fóruns que eu pesquisei, a virtualização está habilitada no meu macbook pro uma vez que aparece na saída o VMX.

Não sei se na minha primeira mensagem ficou claro mas, eu estou tentando fazer uma virtualização dentro de outra. Estou usando meu mac e tenho uma máquina virtual rodando Linux. Dentro do Linux eu estou acessando a página da alura e seguindo o curso por ali e tive o problema quando tentei fazer uma virtualização dentro dele.

Me desculpe qualquer confusão e fico no aguardo para saber como posso proceder neste caso. Obrigado.

Olá, sigo com essa dúvida sobre o comando vagrant up. Se alguém puder me ajudar eu agradeço. Obrigado!

Olá Fernando, peço desculpa pela demora no retorno, estive tentando verificar esse seu problemas esses dias. Bem, por tudo que vi, você precisa nesse caso utilizar um recurso chamado de "paravirtualização". No seu caso, você está com a virtualização habilitada na sua máquina física, e portanto consegue executar a máquina virtual com Ubuntu (e nessa máquina virtual está instalado o vagrant), porém quando você executa o comando vagrant up dentro dessa máquina virtual você está tentando criar uma outra máquina virtual dentro de uma que já é uma máquina virtual, e é por isso que acontece esse erro. A virtualização normal só serve para a primeira máquina virtual (com o Ubuntu e o Vagrant), para conseguir realizar isso é preciso permitir a "paravirtualização" onde o sistema operacional da máquina física emula a virtualização para essa máquina virtual (com o Ubuntu e o Vagrant) para que a mesma possa executar outras máquinas virtuais. A explicação foi um pouco complicado, então se não entendeu alguma parte é só falar!

Enfim, primeiro você poderia nos fornecer qual o gerenciador de máquinas virtuais você está utilizando na sua máquina física? É o VirtualBox ou outro? Porque o VirtualBox, só tem a "paravirtualização" a partir da versão 6.1.2, e também é preciso executar um comando na máquina virtual que vai precisar da "paravirtualização", esse comando foi testado no Linux Ubuntu 18.04, mais deve funcionar no OS X:

VBoxManage modifyvm <NomeMaquinaVirtual> --nested-hw-virt on

Porém ouvi um comentário falando que no Macbook, deu certo usando o Parallels, o cenário utilizado foi a máquina física (Macbook, com OS X), com um Ubuntu rodando como uma máquina virtual pelo Parallels e dentro desse Ubuntu foi executado um emulador do Android que é uma máquina virtual usando o VirtualBox.

Informa pra gente se ajudou essas dicas!

Olá Jonilson,

Desculpe a demora também e agradeço a sua explicação. Eu imaginei que dava para fazer isso mas, não sabia que o nome do processo era paravirtualização.

Coincidentemente, estou utilizando o VirtualBox 6.1.2 e o Ubuntu 18.04 então eu acredito que deva funcionar.

Eu só queria entender melhor, onde eu aplico esse comando VBoxManage modifyvm --nested-hw-virt on . Se é dentro da minha máquina virtual (Ubuntu 18.04) ou se é no terminal do meu Sistema Operacional (OS X). O nome da minha máquina virtual é ubuntu1804.

Pelo que eu entendi, eu tenho que executar esse comando no terminal do meu Sistema Operacional (OS X) para habilitar a paravirtualização da minha máquina virtual no VirtualBox.

Mais uma vez, agradeço a sua atenção e ajuda e aguardo um retorno. Obrigado!

solução!

É isso mesmo Fernando, você de usar o comando VBoxManage modifyvm <NomeMaquinaVirtual> --nested-hw-virt on na sua máquina fisica, no caso com o sistema operacional OS X, e colocando o nome da sua máquina virtual que está com o Ubuntu, da seguinte forma:

VBoxManage modifyvm ubuntu1804 --nested-hw-virt on

Recomendo que desligue a máquina virtual para realizar o processo.

Em caso de persistência do erro, sugiro você usar o Parallels!

Olá Jonilson, mais uma vez, me desculpe a demora. Não consegui resolver o problema e optei por fazer e estudar o curso sem utilizar essa máquina virtual que eu criei. Estou usando meu sistema OS mesmo para realizar as atividades.

Agradeço a sua atenção e obrigado pela ajuda.