Em versões recentes do Virtualbox (4.2.0 em diante), você não precisa rolar seu próprio script para iniciar automaticamente uma VM, mas precisa de alguma configuração. Consulte a seção 9.24 do Manual do Virtualbox " Iniciando máquinas virtuais durante a inicialização do sistema "
Infelizmente, o manual fornece apenas instruções resumidas e não é atualizado há séculos. Eu encontrei esta postagem nos fóruns do VirtualBox com mais detalhes.
Você poderia simplesmente colocar uma linha no rc.local para iniciar o seu servidor, mas se você quiser fazer isso, leia a maneira "oficial".
Adicione estas linhas ao arquivo / etc / default / virtualbox:
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/vboxautostart.cfg
Edite /etc/vbox/vboxautostart.cfg (este exemplo nega a permissão de início automático para todos os usuários, exceto o usuário "Bob":
# 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
}
# Alice is not allowed to start virtual machines, useful to exclude certain users
# if the default policy is set to allow.
alice = {
allow = false
}
Adicione o grupo vboxusers ao / etc / vbox e ao sticky bit:
# chgrp vboxusers /etc/vbox
# chmod 1775 /etc/vbox
Adicione todos os usuários que usarão o virtualbox ao grupo "vboxusers", por exemplo:
# adduser Bob vboxusers
Todo usuário que deseja habilitar a autoinicialização para máquinas individuais precisa definir o caminho para o diretório de banco de autoinicialização com:
$ VBoxManage setproperty autostartdbpath /etc/vbox
Os usuários podem definir as VMs para iniciar automaticamente e configurar como elas serão interrompidas (por exemplo, savestate, acpishutdown) com:
$ VBoxManage modifyvm <vmname> --autostart-enabled on
$ VBoxManage modifyvm <vmname> --autostop-type acpishutdown
O acima funcionou para mim com o Virtualbox 5, instalado a partir do repositório virtualbox.org.