Eu tenho muitas máquinas de caixa virtual no meu Ubuntu12.04, cada vez que eu desligo ou reinicializo, preciso iniciá-las uma a uma.
Quero uma ajuda para escrever um script para iniciar automaticamente automaticamente as máquinas VBox durante a inicialização.
boot
scripts
virtualbox
autostart
Maythux
fonte
fonte
Respostas:
Você pode usar o serviço de inicialização automática do VirtualBox. Um bom tutorial descrevendo como fazer isso está publicado no blog "Life of a Geek Admin" .
As etapas a seguir são adaptadas da postagem do blog vinculada:
Primeiro você precisa criar o arquivo
/etc/default/virtualbox
e adicionar algumas variáveis.VBOXAUTOSTART_DB, que contém um caminho absoluto para o diretório de banco de dados de inicialização automática e
VBOXAUTOSTART_CONFIG, que contém o local das definições de configuração de inicialização automática. O arquivo deve ser semelhante a este:
Agora precisamos criar o
/etc/vbox/vbox.cfg
arquivo e adicionarNota: Se o nome do arquivo
vbox.cfg
não funcionar acima, tente nomeá-loautostart.cfg
.Se você é o único usuário, basta adicionar a linha
default_policy = allow
aovbox.cfg
arquivo.Defina as permissões no diretório para o grupo vboxuser e verifique se os usuários podem gravar no diretório e também em bits.
Adicione cada um dos usuários ao
vboxusers
grupo.(substitua
USERNAME
pelo nome de usuário)NOTA : Se você alterou as permissões de grupo para o usuário atual, efetue logout e logon novamente para atualizar as permissões. (crédito @ kR105)
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
e habilite a inicialização automática para uma VM individual com
Isso criará um
myuserid.start
arquivo no/etc/vbox
diretórioAgora reinicie o vboxautostart-service para ler as alterações.
Reinicie seu sistema e sua VM deve iniciar
fonte
Tive incidentes infelizes semelhantes ao tentar esta operação no LTS de baunilha.
Nesta versão, o arquivo de chave /etc/init.d/vboxautostart-service não foi instalado.
Tanto quanto eu sei que todo o VitualBox e requisitos foram colocados pelo apt-get, não posso dizer por que o arquivo 'vboxautostart-service' também não foi fornecido. Mas, para superar isso, aqui está minha atualização para o post do kdmurray.
1) O arquivo / etc / default / virtualbox existia para mim. Então, deve adicionar vars:
2) É necessário criar /etc/vbox/autostart.cfg conforme indicado pelo OP.
6b) Precisa obter um script de serviço vboxautostart e torná-lo executável.
6c) Alerte o controlador rc.d, mas usei 24 como horário de início. Colocando apenas 20 e não foi iniciado. Talvez tenha sido executado antes mesmo do virtualbox estar funcionando.
A reinicialização iniciou a VM corretamente.
fonte
vboxdrv
nas linhas# Required Start
/# Required Stop
porvirtualbox
. Parece que eles renomearam o serviço, portanto, o sistema operacional não pode detectar as prioridades de inicialização / parada corretamente. Eu acho que você não precisa da etapa 6c se tiver substituído essas linhas.Você pode usar
vboxmanage startvm "my virtual machine" --type=headless|gui|sdl
(um desses). Use "decapitado" se forem servidores aos quais você se conecta por outros meios que não o uso da GUI.Para realmente executar esses comandos no momento certo durante a inicialização, você deve ler o Upstart.
fonte
Depois de muitas horas infelizes tentando fazer com que os procedimentos do kdmurray acima funcionassem, sem sucesso, finalmente encontrei um método que funcionava simplesmente.
Primeiro, meu host Linux (Mint 17) foi configurado no momento da inicialização para efetuar login automaticamente na minha conta principal.
Segundo, usei os recursos da GUI do VirtualBox (v4.3.12) para criar um atalho para cada máquina virtual na área de trabalho. {clique com o botão direito do mouse na VM na coluna esquerda e selecione "Criar atalho na área de trabalho"}
Próximo: Eu já havia descoberto que abrir Menu-> Centro de Controle -> Aplicativos de Inicialização -> Adicionar e adicionar atalhos da área de trabalho fornecia arquivos que não funcionavam, vi em outra resposta nesta página que a localização das startups é / home /USERNAME/.config/autostart, então cliquei com o botão direito do mouse em cada um dos atalhos da VM da área de trabalho e colei-os nessa pasta, substituindo os arquivos ruins anteriores. Agora eles desenvolveram os ícones 'bonitos' do VirtualBox.
E com certeza, ao reiniciar o computador host, as 3 VMs foram iniciadas automaticamente.
:-)
Bill Williams
PS: infelizmente ainda tenho algo faltando, porque muitas vezes as Máquinas Virtuais não iniciam na inicialização. Em vez disso, elas geram uma caixa de diálogo de erro informando que estão bloqueadas, mesmo que eu tenha pedido para que desligassem antes da reinicialização do host.
fonte
Além da boa descrição do serviço vboxautostart acima, você pode fazer
para parar automaticamente o convidado no desligamento. Para o Ubuntu 14.04, tive que adicionar um sono 30 na seção vboxautostart-service stop, para que espere até que o hóspede seja salvo completamente.
fonte
Eu encontrei uma maneira mais simples no Ubuntu 16.04 executando o VBox 5.1.34.
Enquanto estiver no VBox, clique com o botão direito do mouse na VM inativa ou em execução na lista, selecione 'Criar atalho na área de trabalho ". Depois de ver o ícone na área de trabalho, abra com qualquer ferramenta que permita ver o comando subjacente criado pela VBox (no meu clique com o botão direito do mouse e selecione 'propriedades') Copie isso para a área de transferência.
Abra o programa para atualizar 'aplicativos de inicialização' e crie um novo aplicativo que inicie no momento da inicialização, colando o comando que você copiou do link da área de trabalho criado pelo VirtualBox.
fonte
Para iniciar uma VM ao fazer login em nossa sessão, podemos definir um arquivo .desktop:
Quando esse arquivo foi copiado ou movido para o diretório de inicialização automática, ele será executado após o login:
A execução do Virtual Box no espaço do usuário pode ajudar a evitar efeitos colaterais indesejados ao iniciá-los durante a inicialização (por exemplo, a VM é executada como raiz, o tempo de inicialização aumenta incrivelmente, ...).
fonte
Isso pode ser feito usando a Interface de gerenciamento de linha de comando do VirtualBox. Basta executar o seguinte script na inicialização.
Há um bom tutorial para mais informações.
fonte
Complemento para a resposta @kdmurray.
Se você receber um erro em:
Para resolver isso, tive que criar manualmente os arquivos "nome de usuário" .start e "nome de usuário" .stop com:
E mude o proprietário com:
executar novamente:
reinicie o serviço:
verifique se está tudo bem com:
e você verá o processo "VBox ..." em uma lista, se a máquina virtual estiver em execução
fonte
Você também pode obter o gerenciador de sessões gnome descrito aqui. Gnome Session Manager Está no centro de software ou você pode simplesmente acessar um terminal e digitar
sudo apt-get install gnome-session-common
Em seguida, você pode criar um pequeno script para executar e usar o gerenciador de sessões do gnome para iniciá-lo. Aqui está um pequeno exemplo de script para você começar ...
fonte
É assim que inicio o meu Centos (nome da minha máquina virtual) quando minha máquina host é reinicializada. Eu uso o crontab para esse trabalho. Aqui está minha entrada do crontab:
fonte
Para o servidor Ubuntu 16.04.1 LTS, resolvi isso fazendo:
Primeiro ative o rc-local.service
Adicione a seguinte linha em
/etc/rc.local
Observe que o virtual_box_user é aquele que pode ver a máquina virtual (que você deseja iniciar) executando o comando:
Exemplo:
O modificado
/etc/rc.local
deve ficar assimSe você não escolher o proprietário certo do virtualbox, verá o erro ao digitar o comando:
Espero que isso possa ajudar
fonte
1 - Crie um arquivo:
Cole isto:
/bin/su validuser -c "/usr/bin/vboxmanage startvm MACHINENAME2--type headless" /bin/sleep 1
2 - Torne o arquivo vm-start executável:
3 - Editar rc.local
Adicione isso:
4 - Reinicie.
fonte