É possível "retornar" ao GRUB após a inicialização do Linux sem reiniciar

21

Estou inicializando duas vezes o Windows e o Linux no meu SSD e me vejo alternando entre os dois sistemas operacionais. O SSD é realmente rápido e os dois sistemas operacionais são inicializados em cerca de 3 segundos depois de selecionados no GRUB. No entanto, leva uma eternidade (cerca de 30 segundos) para que meu BIOS, RAID e o segundo controlador SATA sejam inicializados antes que eu finalmente esteja no GRUB.

Então, eu queria saber se é possível pular essas inicializações e apenas "retornar" ao GRUB depois de inicializar o Linux. Idealmente, eu também seria capaz de fazer o mesmo no Windows, mas minha esperança não é muito alta lá :)

Fiz uma pequena pesquisa on-line e não encontrei nada além de um carregador de linux um tanto desatualizado - loadlin.exe, que podia ser executado no Dos ou no Windows 95/98 para inicializar o Linux. Portanto, pelo menos o conceito de alternar entre sistemas operacionais sem reiniciar não é novo. Alguém sabe de uma ferramenta atual que faz isso?

Caso contrário, existe um problema técnico que nos impede de escrever esse programa ou simplesmente não há demanda suficiente?

ATUALIZAÇÃO: Um amigo meu acabou de me falar sobre o Kexec . Usando isso, parece ser possível iniciar um kernel Linux diferente de dentro de um kernel em execução, mas é possível voltar ao GRUB ou iniciar uma instalação do Windows diretamente?

Dimitar Asenov
fonte
4
Pergunta interessante. Uma razão pela qual posso pensar por não haver muito interesse nisso é que as VMs melhoraram recentemente. A maioria das pessoas apenas executa seu sistema operacional secundário dentro de uma VM em seu sistema principal, em vez de inicialização dupla.
Noufal Ibrahim 9/09/11
Eu também estava pensando em usar uma VM, mas preciso de um desempenho gráfico rápido e até agora as VMs não oferecem desempenho satisfatório. Talvez as coisas mudem agora que o Xen (e em breve outros) tem uma opção completa de passagem para placas gráficas. No entanto, ainda seria interessante ver se existe uma maneira de mudar rapidamente. No que diz respeito ao segundo comentário, eu realmente não estava ciente do unix.stackexchange.com. Certamente vou dar uma olhada e talvez postar lá se eu não receber uma resposta primeiro. Obrigado pela sugestão.
1
30 segundos ? Eu acho que em um servidor IBM é como 5 minutos.
Sirex
1
Deve ser possível com os gerenciadores de inicialização EFI (não faço ideia de como). Um pouco mais difícil com os MBR, pois eles esperam ser iniciados no modo real de 16 bits e configuram tudo eles mesmos, o que pode não ser possível depois que o sistema for inicializado uma vez.
grawity
@ Sirex: Mas quem inicializa os servidores IBM? :)
grawity

Respostas:

6

Usando o kexec, você pode resolver o problema. Não há necessidade de envolver o GRUB. Você pode usar o kexec-loader para inicializar diretamente em diferentes sistemas operacionais no Linux. (Verifique se o suporte ao kexec está compilado no seu kernel.)

Fabel
fonte
1
Até onde eu sei, o kexec_load()syscall se destina apenas ao carregamento de um kernel Linux. A ferramenta kexec-loader que você vinculou parece também suportar apenas os kernels do Linux. --- É possível inicializar, por exemplo, memtest86, mas nunca vi alguém inicializar o Windows diretamente usando o mecanismo kexec, mas é possível através do GRUB : Como inicializar diretamente no Windows a partir do kexec + Grub4DOS .
7284 pabouk
2

Verifique se você possui suporte UEFI. Isso pode melhorar drasticamente a velocidade de inicialização.

Milind R
fonte
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem.
Jawa
1
@Jawa, o OP está tendo um problema porque seu POST está demorando inaceitavelmente. A UEFI definitivamente corta esse tempo: o próprio objetivo de sua criação.
precisa
2
Duas coisas aqui: 1) A questão não é "como inicializo mais rápido", mas "como retorno ao GRUB após a inicialização?" 2) As respostas de uma linha provavelmente são as melhores como comentários.
Kevin Panko
Obrigado pela sugestão. Desde que postei a pergunta original, alterei a configuração do disco rígido e, agora, otimizei algumas configurações na bios para melhorar o tempo de inicialização. Em essência, eu poderia desativar as coisas relacionadas ao RAID (das quais não preciso mais) e também ativar a inicialização EFI. O efeito geral é uma inicialização muito mais rápida. No entanto, a pergunta original ainda é interessante para mim e até agora não encontrei uma solução confiável.
precisa saber é o seguinte
1

Para encurtar a história, não com a maneira como as coisas funcionam agora. Uma abordagem melhor pode ser descobrir por que o seu controlador BIOS / RAID / SATA está demorando tanto. Pode haver atualizações do BIOS disponíveis e possivelmente atualizações de firmware para o controlador RAID.

Zeroedout
fonte
Um possível motivo para um POST lento é que você tem seu controlador de disco rígido configurado para detectar automaticamente unidades inexistentes no BIOS. Se você tiver um único HDD e um único CD / DVD, não há sentido em tentar detectar automaticamente os outros 2 (ou 4) slots, esses testes precisam expirar e levar algum tempo.
26511 Haqa
1

Não. A menos que seu BIOS tenha uma opção de configuração específica para pular o POST durante uma reinicialização (eu vi uma vez), isso não existe desde o Windows 98 / ME (o truque de reinicialização rápida que realmente apenas recarregou o Windows).

Talvez alguém com hackers de inicialização com tempo suficiente possa reproduzir isso e recarregar o GRUB, mas teria que mudar a forma como o INIT reinicia o sistema.

Nakarti
fonte
0

Se você não encontrar as atualizações sugeridas pelo Zeroedout, convém executar o sistema host em máquinas virtuais, portanto, a reinicialização é quase gratuita.

Além disso, alguns sistemas têm um modo de inicialização rápida / rápida, onde algumas verificações são omitidas. Você pode querer verificar isso.

billc.cn
fonte