Dicas para o Virtual Box

Aqui estou listando os comandos para manipular e executar a grande maioria das operações do Oracle Virtual Box através da linha de comando.

Listar máquinas virtuais registradas

vboxmanage list vms

Listar máquinas virtuais que estão em execução

vboxmanage list runningvms

Parar uma máquina virtual que está em execução (é como puxar o fio da tomada)

vboxmanage controlvm <nome_registrado> poweroff

Reiniciar uma máquina virtual que está em execução (é como apertar o botão de reset)

vboxmanage controlvm <nome_registrado> reset

Mostrar as informações de uma máquina registrada

vboxmanage showvminfo <nome_registrado>

Inicializar uma máquina virtual registrada

vboxmanage startvm <nome_registrado>

Inicializar uma máquina virtual registrada sem o vídeo (roda a máquina virtual em background)

vboxmanage startvm --type headless <nome_registrado>

Opções mais avançadas

Anexando discos remotos através do protocolo ISCSI.

Na controladora SATA

vboxmanage storageattach <nome_registrado> --storagectl "SATA" --port 1 --type hdd --medium iscsi --server <ip_do_NAS> --target <iSCSI_target_name>

Na controladora IDE

vboxmanage storageattach <nome_registrado> --storagectl "IDE" --port 0 --device 1 --type hdd --medium iscsi --server <ip_do_NAS> --target <iSCSI_target_name>

Criando filtros para limitar a banda passante de uma placa de rede virtual

vboxmanage bandwidthctl <nome_registrado> add Limit --type network --limit 1024k
vboxmanage modifyvm <nome_registrado> --nicbandwidthgroup<index> Limit

Impor um limite na banda passante da rede virtual sem a necessidade de reiniciar a máquina virtual (shape). Este só funciona depois do filtro Limit estar criado e assinalado a placa de rede virtual.

vboxmanage bandwidthctl <nome_registrado> set Limit --limit 768k

Retirar o limite na banda passante da rede virtual, ou seja, sem nenhum limite (shape). Este só funciona depois do filtro Limit estar criado e assinalado a placa de rede virtual.

vboxmanage bandwidthctl <nome_registrado> set Limit --limit 0

Como configurar as informações da BIOS virtual da máquina virtual criada, assim você pode praticamente simular o seu hardware real, copiando as informações da BIOS da sua máquina real.

VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" "HP Inc."
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion" "1.2.3"
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseDate" "02/28/2005"
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMajor" 3
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMinor" 2
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMajor" 2
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMinor" 3
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "HP Inc."
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct" "EliteBook 254"
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVersion" "<EMPTY>"
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "C120X9DH1ND"
VBoxManage setextradata <nome_registrado> "VBoxInternal/Devices/pcbios/0/Config/DmiSystemFamily" "X86-based PC"

Criar uma máquina virtual VirtualBox através da linha de comando

Aqui tenho uma receita para sair do zero com o virtualizador VirtualBox criando uma máquina virtual através da linha de comando. Então vamos ao passo-à-passo:

Vou usar como exemplo um cliente Windows Server 2008 64bit, mas você pode modificar conforme a sua necessidade.

$ VM='Server-2008-64bit'

Criando um disco virtual de 32GB

$ VBoxManage createhd --filename $VM.vdi --size 32768 --variant fixed

Se por um acaso você quiser criar um disco dinâmico, ou seja, que cresce conforme você vai usando até o máximo especificado, aí o comando seria o seguinte:

$ VBoxManage createhd --filename $VM.vdi --size 32768 

Agora vamos descobrir quais os sistemas cliente que o seu VirtualBox é capaz de reconhecer. Use o comando a seguir:

$ VBoxManage list ostypes

Escolha a melhor opção da lista obtida acima e coloque-a no comando abaixo:

$ VBoxManage createvm --name $VM --ostype "Windows2008_64" --register

Agora, vamos acrescentar a controladora de discos e atachar o disco virtual criado anteriormente, no caso vou optar pela emulação SATA, que é mais eficiente:

$ VBoxManage storagectl $VM --name "SATA Controller" --add sata --controller IntelAHCI
$ VBoxManage storageattach $VM --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium $VM.vdi

Vamos também anexar uma controladora IDE padrão para atachar o arquivo ISO do DVD do Windows Server 2008.

$ VBoxManage storagectl $VM --name "IDE Controller" --add ide 
$ VBoxManage storageattach $VM --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium /path/to/windows_server_2008.iso

Algumas configurações adicionais para finalizar a descrição da máquina virtual:

$ VBoxManage modifyvm $VM --memory 1024 --vram 128
$ VBoxManage modifyvm $VM --boot1 dvd --boot2 disk --boot3 none --boot4 none
$ VBoxManage modifyvm $VM --ioapic on
$ VBoxManage modifyvm $VM --nic1 bridged --bridgeadapter1 e1000g0

Pronto !!! Tudo pronto para iniciarmos a máquina virtual. Se estiver usando uma máquina remota, teremos que iniciar o virtualizador em modo headless e atachar o console via desktop remoto usando o endereço da máquina remota na porta padrão, vboxhost:3389.

$ VBoxHeadless -s $VM

Após a finalização da instalação do sistema operacional cliente, vamos remover o DVD virtual da máquina:

$ VBoxManage storageattach $VM --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium none

Pronto agora já temos uma máquina virtual rodando como cliente o Windows Server 2008.

Se você quiser, ainda, pode pensar em fazer algum snapshot com certa regularidade, para que sempre que for necessário, voltar a um estado conhecido e não precisar re-instalar tudo do zero. Para isso basta usar os comandos abaixo:

Criando um snapshot:

$ VBoxManage snapshot $VM take <nome_do_snapshot>

Restaurando um snapshot em particular para voltar a um estado conhecido:

$ VBoxManage snapshot $VM restore <nome_do_snapshot>
Exceto onde for informado ao contrário, o conteúdo neste wiki está sob a seguinte licença: Public Domain