Como iniciar uma máquina virtual do VirtualBox automaticamente no boot do LUbuntu 18 LTS
Neste artigo, irei mostrar como iniciar automaticamente no boot do LUbuntu, uma máquina virtual do VirtualBox. Pode ser utilizado em situações, onde após uma queda de energia, se faz necessário que uma máquina virtual seja carregada para que um determinado sistema volte a funcionar.
Iniciando automaticamente uma máquina virtual do VirtualBox no boot do LUbuntu 18 LTS
Cenário: LUbuntu 18 LTS
- VirtualBox: 5.2.42 instalado do repositório
- ExtensionPack instalado
- O VirtualBox precisa do linux-headers-5.4.0-42-generic: sudo apt install linux-headers-5.4.0-42-generic
Conteúdo do script vbox-inicia-vms.sh para iniciar as máquinas virtuais salvo em /etc/init.d:
#### INICIO ####
#!/bin/sh
### BEGIN INIT INFO
# Provides: myscript
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Inicia as maquinas virtuais do Virtual Box
# Description: Execute my script at startup
### END INIT INFO
cd /usr/bin/
VBoxManage startvm EndianFirewall --type gui
### CASO TENHA MAIS MAQUINAS PARA INICIAR INCLUIR UMA LINHA PARA CADA MAQUINA
# VBoxManage startvm --type gui
### TERMINO ####
#!/bin/sh
### BEGIN INIT INFO
# Provides: myscript
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Inicia as maquinas virtuais do Virtual Box
# Description: Execute my script at startup
### END INIT INFO
cd /usr/bin/
VBoxManage startvm EndianFirewall --type gui
### CASO TENHA MAIS MAQUINAS PARA INICIAR INCLUIR UMA LINHA PARA CADA MAQUINA
# VBoxManage startvm
### TERMINO ####
Permissão de execução do arquivo contendo o script:
sudo chmod +x /etc/init.d/vbox-inicia-vms.sh
Agendando a execução no início do sistema:
crontab -e
Incluir a seguinte linha no final do arquivo:
@reboot /etc/init.d/vbox-inicia-vms.sh
CONFIGURAÇÃO DO VIRTUALBOX PARA PERMITIR A EXECUÇÃO DA MÁQUINA VIRTUAL NO BOOT DO SISTEMA
Este último com as seguintes alterações e não precisou dos itens do 5 em diante:
- 1 - sudo vi /etc/default/virtualbox
- 2 - Incluir esta duas linha ao final:
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/vbox.cfg
- 3 - sudo mkdir /etc/vbox
- 4 - sudo nano /etc/vbox/vbox.cfg
- 5 - Colocar o seguinte conteúdo neste arquivo alterando o nome do usuário que terá a permissão para executar a máquina virtual. A linha startup_delay, é necessária caso mais de um usuário terá permissão para não sobrecarregar o sistema. Se não precisar é só comentar:
# Default policy is to deny starting a VM, the other option is "allow".
default_policy = deny
# Bob is allowed to start virtual machines but starting them
# will be delayed for 10 seconds
bob = {
allow = true
startup_delay = 10
}
- 6 - Permissões necessárias nos arquivos e pastas:
sudo chgrp -R vboxusers /etc/vbox
O diretório deve ter o sticky bit definido:
sudo chmod -R 1775 /etc/vbox
- 7 - Adicionar o nosso usuário ao grupo do VirtualBox:
sudo usermod -a -G vboxusers $USER
- 8 - Reiniciar o sistema para aplicar as alterações do grupo e pasta:
sudo reboot
- 9 - Definir o caminho para o diretório do banco de dados de inicialização automática:
VBoxManage setproperty autostartdbpath /etc/vbox
- 10 - Habilitar a inicialização automática para cada máquina virtual:
VBoxManage modifyvm--autostart-enabled on
- 11 - Reiniciar o sistema para testar esta configuração:
sudo reboot
FONTES:
https://docs-oracle-com.translate.goog/en/virtualization/virtualbox/6.0/admin/autostart.html?_x_tr_sl=en&_x_tr_tl=pt&_x_tr_hl=pt-BR&_x_tr_pto=schttps://docs.oracle.com/en/virtualization/virtualbox/6.0/user/vboxmanage-startvm.html
https://www-baeldung-com.translate.goog/linux/virtualbox-vm-start-on-boot?_x_tr_sl=en&_x_tr_tl=pt&_x_tr_hl=pt-BR&_x_tr_pto=sc
______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro
Meu GitHub Pessoal: https://github.com/mxnt10