Como desligar o host do Ubuntu 11.10 de dentro de um convidado do Windows 7 VirtualBox?

1

Eu instalei a caixa virtual 4.2 em um host Ubuntu 11.10.

Eu tenho o Windows 7 como o único sistema operacional convidado.

Eu sou capaz de iniciar automaticamente o Windows 7 virtual quando o Ubuntu inicializa, adicionando-o no aplicativo inicial com o comando "VBoxMange startvm Win7" na opção de comando.

Agora, quando encerro o Windows 7, o programa virtualbox está sendo fechado, mas volto para o Ubuntu, quando quero que o Ubuntu seja desligado também quando clico em Desligar no Windows 7 no VirtualBox.

Esta é uma tarefa para mim. Alguém por favor pode me ajudar nisso?

Além disso, quando a caixa virtual é inicializada automaticamente, a área de trabalho do Ubuntu não deve ficar visível.

    
por Bharath VRP 27.01.2013 / 12:45

2 respostas

3

A maneira de fazer isso é escrever um script para iniciar sua VM, esperar até que ela termine e, em seguida, emitir o comando shut-down.

Crie uma pasta bin em sua pasta pessoal (se ela ainda não existir).

Agora crie um arquivo com o seguinte conteúdo. Vamos chamá-lo de win7vmshutdown e salvá-lo na sua pasta bin .

#!/bin/bash

VBoxManage startvm 'Win7'                           # Start the VM.

sleep 10s                                           # Give it time to start up. 

while pgrep VirtualBox >/dev/null                   # As long as the VM is running...
do
        sleep 5s                                    # Wait a bit before trying again.
done

gnome-session-quit --power-off                      # Issue the command to shut down.

Torne o script executável; digite o seguinte em um terminal.

chmod +x ~/bin/win7vmshutdown

Nos seus aplicativos de inicialização, remova o comando VBoxManage ... e substitua-o por win7vmshutdown .

O comando shutdown solicitará o desligamento; se você não responder, ele será desligado em 60 segundos. Isso lhe dará tempo para interromper o desligamento em caso de problemas inesperados.

Reinicie seu computador para testar.

Você disse:

% bl0ck_qu0te%

Para fazer isso, você deseja executar sua VM em tela cheia. Instale o Guest Additions na sua VM, reinicie-o e execute-o em tela cheia.

    
por Paddy Landau 27.01.2013 / 14:52
1

Você precisa criar um script que seja executado em sua caixa do Windows que execute um desligamento coordenado de seus sistemas.

Pelo que li, você quer acionar isso de dentro da sua VM do Windows 7.

Para um desligamento programável do Windows 7, use o utilitário psshutdown da SysInternals.

Você também precisará sinalizar seu host para desligar. A melhor maneira de fazer isso é ativá-lo remotamente usando o shell seguro.

Na máquina Ubuntu:

Você deve criar um usuário especificamente para essa tarefa e uma chave SSH especificamente para esse usuário. Este usuário estará executando um script com privilégios elevados e o acesso a ele deve ser mínimo.

Na máquina Windows:

Você precisará de um meio para executar o script na máquina host via SSH. A versão do Cygwin do OpenSSH é provavelmente a melhor opção.

Portanto, seu script do Windows deve

  • Use o SSH para iniciar o script no host
  • Executar psshutdown -t 0 -k

O script do Ubuntu deve

  • Seja de propriedade do root
  • Ter o atributo setuid ativado para que ele seja executado com privilégios de root
  • sleep por um período de tempo maior que o desligamento da máquina Windows
  • Executar /sbin/poweroff

Quanto ao outro assunto - se você não quiser ver o desktop Ubuntu a qualquer momento, você pode simplesmente não carregá-lo. Adicione uma sessão do usuário X que apenas inicie a instância do VirtualBox no modo de tela cheia.

    
por Adrian 27.01.2013 / 14:58