Não consigo executar minha VM na inicialização.
Eu tentei os "aplicativos de inicialização" e o update-rc.d sem sorte.
sudo update-rc.d startvms defaults 99 10
Isso criou todos os links simbólicos apropriados para os diferentes níveis de execução, mas a VM ainda não inicia.
Aqui está o meu script startvms:
#!/bin/bash
### BEGIN INIT INFO
# Provides: startvms
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start my VMs at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
case "$1" in
start)
echo "Starting"
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
stop)
echo "Stopping $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
;;
restart|force-reload)
echo "Restarting $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
O que estou fazendo de errado?
virtualbox
startup
capdragon
fonte
fonte
VBoxManage startvm --type headless "UbuntuServer"
vez deVBoxHeadless
comandar?su -c 'VBoxHeadless --startvm <MACHINE>'
.Respostas:
Isto é o que finalmente funcionou!
1) Crie o arquivo de script de inicialização
em /etc/init.d -
sudo nano /etc/init.d/StartVM
.Copie Cole o seguinte no arquivo e substitua "My VM Name" pelo nome da sua VM:
2) Conceda ao script permissão executável
com
sudo chmod +x /etc/init.d/StartVM
.3) Diga ao script para executar na inicialização.
diga ao script o primeiro a desligar e o último a inicializar.
sudo update-rc.d StartVM defaults 99 01
fonte
VBoxManage startvm --type headless
seria melhor?Para sua informação, isso funciona no Opensuse sem nohup.
fonte
Isso está funcionando bem com o servidor Ubuntu 12.04 e o VirtualBox 4.2.20.
E
e
como indicado em uma resposta anterior.
fonte
Como você menciona que o VBoxHeadless funciona bem se você digitar na linha de comando de um terminal, mas não inicia nenhuma VM quando iniciada a partir de um script init, meu palpite é que ele está procurando alguma variável de ambiente definida quando você executa um shell no seu terminal, mas não definido no ambiente de script init (que está basicamente vazio, exceto pelos parâmetros fornecidos na linha de comando do kernel).
Você pode tentar substituir as invocações do VBoxHeadless no script por isso?
Aqui, "nome de usuário" e o caminho do diretório inicial devem ser alterados para corresponder aos do usuário que você usa para iniciar a VM.
Se isso funcionar, você pode querer usar su -l para executar o VBoxHeadless em vez deste env hack.
fonte
su -l
- esse é um bom ponto!Nas versões recentes do Virtualbox (4.2.0 em diante), não é necessário rolar o seu próprio script para iniciar automaticamente uma VM, mas é preciso 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 detalhadas e não é atualizado há séculos. Encontrei este post nos fóruns do VirtualBox com alguns detalhes extras.
Você pode simplesmente colocar uma linha no rc.local para iniciar o servidor, mas se você quiser fazê-lo da maneira "oficial", continue lendo.
Adicione estas linhas ao / etc / default / virtualbox:
Edite /etc/vbox/vboxautostart.cfg (este exemplo nega a permissão de inicialização automática para todos os usuários, exceto o usuário "Bob":
Adicione o grupo vboxusers ao / etc / vbox e sticky bit:
Adicione todos os usuários que usarão o virtualbox ao grupo "vboxusers", por exemplo:
Todo usuário que deseja habilitar a inicialização automática para máquinas individuais deve definir o caminho para o diretório de banco de dados de inicialização automática com:
Os usuários podem configurar as VMs para iniciar automaticamente e configurar como elas serão interrompidas (por exemplo, savestate, acpishutdown) com:
O exemplo acima funcionou para mim com o Virtualbox 5, instalado a partir do repositório virtualbox.org.
fonte
pode-se também querer definir diretamente a porta ao usar o vrdp .. comente a resposta superior, que compartimenta bem o uso de scripts diferentes para diferentes vms
fonte
Uau .. Estou vendo todas essas soluções, que parecem um pouco complexas, mas este é o meu terceiro laptop no qual acabei escrevendo:
VBoxHeadless -s "Ubuntu Server"
no meu arquivo rc.local no diretório / etc / e isso funcionou muito bem. Executa a máquina virtual automaticamente em uma reinicialização.
fonte