Como selecionar o SO via grub no sistema sem cabeça?

3

Eu tenho um sistema de inicialização dupla (Linux e Windows) que eu normalmente corro sem cabeça e que inicializa por padrão no Linux (que é o que eu uso principalmente). Isso tudo funciona bem, exceto que em ocasiões em que quero inicializar o Windows, tenho que conectar um teclado e um monitor apenas para selecionar o Windows na tela inicial de inicialização do grub. Gostaria de saber se existe uma maneira mais fácil de fazer isso? Não me importo se eu precisar inicializar o Linux primeiro, só quero poder reiniciar o Windows ocasionalmente sem precisar conectar periféricos.

Paul R
fonte
Não importa o que você faça, você precisará de uma maneira de enviar sinais para o sistema quando ele inicializar. Se estiver sem cabeça, o que você tem disponível? um rato ? alguns botões programáveis ​​pelo usuário? um console serial? somente acesso à rede?
b0fh
Além disso, você já pensou em usar a virtualização em vez da inicialização dupla?
b0fh
@bofh: é apenas um PC genérico, então eu tenho rede, USB, os periféricos de bordo habituais, etc. Eu queria saber se pode haver uma maneira de configurar algo em um pendrive e fazer com que o sistema inicialize a partir dele, se está inserido?
Paul R
@ bofh: Eu não acho que a virtualização ajudará (supondo que você queira executar um ou ambos os sistemas operacionais como VMs), pois eu preciso executar coisas como ferramentas de criação de perfil que precisam de acesso direto aos registros de desempenho da CPU etc.
Paul R
1
que parece mais simples - você poderia ter USB tendo maior prioridade de inicialização do Windows, e ter o linux instalar lá
Journeyman Geek

Respostas:

1

Não existe uma maneira muito simples de fazer isso, pois o grub é controlável apenas através do teclado no modo de inicialização e não possui funcionalidade de controle remoto.

Duas possibilidades me vêm à mente para resolver esse problema. O primeiro é baseado em scripts: escreva algum script simples para ajustar o seu grub.conf / menu.lst antes de reiniciar. Veja a entrada padrão na seção de configuração no manual do grub:

# By default, boot the first entry.
default 0

Defina isso para a entrada que você deseja inicializar.

Esta solução requer que você instale um driver ext2 / ext3 no Windows, para alterar o crub.conf / menu.lst de um sistema Windows inicializado.

A segunda solução em que estou pensando pode ser uma inicialização PXE ajustada, em que a configuração do menu de inicialização da imagem pxe será definida no disco local correspondente.

Este link fornece muitas informações, incluindo "inicialização a partir do primeiro disco", configurando a inicialização pxe

Eu nunca tentei isso, mas acho que pode ser possível.

De qualquer forma, essas soluções parecem um pouco invasivas para mim. Talvez alguém encontre uma melhor.

matthias krull
fonte
Obrigado por todas as sugestões - eu vou ler sobre isso um pouco mais.
Paul R
2
Se você optar por editar menu.lst, não precisará absolutamente do Windows para modificá-lo: você também pode configurar o grub 1 para inicializar o Windows uma vez e depois o Linux na próxima vez. Há um exemplo no manual do grub em "inicializando apenas uma vez".
Gilles
@ Gilles: obrigado - eu vou ler sobre isso - não ter que fazer alterações significativas no ambiente Windows é sempre bem-vindo.
Paul R
2

Estou apenas procurando algo semelhante e http://www.gnu.org/software/grub/manual/legacy/Booting-once_002donly.html parece promissor:

13.1.7 fallback

Se essa variável estiver definida, ele identificará uma entrada de menu que deve ser selecionada se a entrada de menu padrão falhar ao inicializar ...

... esse recurso, no entanto, parece ter sido descontinuado no Grub2 ... no meu caso, http://www.gnu.org/software/grub/manual/grub.html#fallback pode fazer o truque, mas provavelmente não no teu:

4.3.1 Inicializando apenas uma vez

Você pode ensinar o GRUB a inicializar uma entrada apenas no próximo momento de inicialização. Suponha que você tenha um kernel antigo old_kernel e um novo kernel new_kernel. Você sabe que o old_kernel pode inicializar seu sistema corretamente e deseja testar o new_kernel. ...

axm
fonte
Huh - provavelmente velho demais uma pergunta ...
AXM
1
Cite as partes essenciais da resposta nos links de referência, pois a resposta pode se tornar inválida se as páginas vinculadas forem alteradas.
DavidPostill
1

edite o grub para ter o Windows primeiro antes de reiniciar, suponho - será necessário um pouco de planejamento, mas suponho que você possa ter um par de arquivos de configuração alternativos que você renomeia para o correto antes da inicialização

Journeyman Geek
fonte
Obrigado - eu não sei muito sobre grub - você pode me dizer qual arquivo eu precisaria editar?
Paul R