Carregar janelas de dentro do Linux

3

Eu tenho uma pergunta incomum e acho que é muito difícil: -)

O que eu quero alcançar é uma maneira de configurar remotamente o sistema operacional que é inicializado em uma máquina cliente.

Por exemplo Eu tenho o Windows XP na partição 1 e Win7 na partição 2. Agora quero ligar o computador e esperar que um comando remoto decida qual partição inicializar.

Eu primeiro tentei fazer isso com o grub. O Grub pode inicializar e aguardar comandos no console serial. Neste console serial, posso enviar comandos de um segundo computador para decidir qual partição inicializar. Infelizmente isso só funciona em portas tradicionais. O USB para adaptadores seriais não funciona: - (

Por isso, pensei em inicializar em um mini Linux e abrir um soquete TCP. Após a chegada de um comando eu gostaria de inicializar (de alguma forma chainload) uma das partições do windows. É algo assim possível?

Muito obrigado, Fabian

    
por Fabian 16.06.2011 / 16:08

6 respostas

1

Estou respondendo minha própria pergunta aqui, já que implementei algo um pouco diferente do que foi sugerido.

Eu configurei o grub com esta configuração:

# First we load the current settings
if [ -s $prefix/grubenv ]; then  
  load_env  
fi

set default="DEFAULT ENTRY"

# Load the saved default entry
if [ ${saved_entry} ]; then
  echo Found a saved entry: ${saved_entry}
  set default="${saved_entry}"
fi

# Reset saved_entry to our boot service
set saved_entry="DEFAULT ENTRY"
save_env saved_entry

echo Selected boot entry is: ${default}

Isso é semelhante à resposta de Daves, exceto que o grub já está redefinindo a entrada de inicialização para um valor padrão. Portanto, o último sistema operacional selecionado não precisa ser inicializado.

A entrada padrão agora inicializa um pequeno sistema operacional com um servidor tcp. Com o servidor tcp eu posso receber um comando de inicialização que chama grub-editenv para selecionar uma entrada de inicialização diferente:

grub-editenv.exe D:\boot\grub\grubenv set saved_entry=NewEntry

Isto também deve assegurar que não corrompa inadvertidamente a configuração do grub.

    
por 21.06.2011 / 13:06
2

se você tem um linux separado e sempre em execução em sua rede, você pode configurar sua máquina para inicializar através da rede a partir desta máquina linux. Então, nessa máquina linux, você poderia servir diferentes imagens de inicialização com o grub carregando o sistema operacional como opção padrão.

    
por 16.06.2011 / 16:37
2

Uma ideia: adicione um sistema operacional adicional que seja um mini Linux, como você mencionou. Ele abre esse soquete TCP. Quando você obtiver o comando, modifique o arquivo de configuração do GRUB para definir o padrão como o SO correto e inicie a reinicialização. Quando qualquer um desses sistemas operacionais for iniciado, eles precisarão modificar novamente o script de configuração do GRUB para voltar ao mini Linux.

    
por 16.06.2011 / 16:38
1

Não faça nada disso. Em vez disso, coloque Xen (HyperV, etc.) na caixa e sempre inicialize isso, então controle as VMs do Windows e do Linux à vontade.

É mais fácil do que tentar reescrever remotamente os arquivos de configuração do Grub, o que pode potencialmente deixar você com um dispositivo não inicializável.

Na minha experiência, as VMs são ótimas para testes de qualquer maneira - se você cometer um erro, pode reverter para um estado anterior.

    
por 16.06.2011 / 18:04
0

Outra ideia: ter dois GRUBs armazenados no seu "control pc". O PC que está sendo controlado usa o PXE para recuperar o GRUB desejado. Use um servidor TFTP para isso. Faça um pequeno script que desative as configurações do GRUB na parte TFTP.

    
por 16.06.2011 / 17:02
0

bem .... você pode obter um redirecionador KVM através do dispositivo de rede. Por exemplo. Cartões AMI Mega RAC. Eles permitem que você controle a partir da tela de inicialização.

    
por 20.06.2011 / 08:12