Como executar um bootloader do Linux?

6

Eu quero reiniciar do Linux para outro sistema (um CD inicializável para minha necessidade atual).
Eu não quero modificar o bootloader atual, nem modificar as configurações do BIOS.

Algum CD do Linux pode ser executado a partir do Windows (o Windows pára e o Linux é executado a partir do CD).
Como posso fazer o mesmo do Linux?

    
por Bertrand SCHITS 10.08.2012 / 02:12

2 respostas

6

Você pode conseguir algo com kexec .

Sim, kexec se destina a inicializar os kernels, mas nada o impede de kexec 'para qualquer binário (um binário "estaticamente linkado" que não dependa de bibliotecas ou de um sistema operacional existente e se destina a executar sob condições de pré-inicialização) que você quer, seja um gerenciador de inicialização ou mesmo memtest86 - essa página fala sobre alguns das armadilhas em que você pode cair. Por exemplo, se for um carregador de inicialização no modo de texto, você deve voltar ao modo de texto antes de emitir kexec .

Se você estiver usando Debian, o kexec-tools ou o que quer que seja, executa praticamente todas as etapas normais de desligamento, incluindo a mudança para o modo de texto, antes de emitir o comando kexec .

O que o kexec não fará é inicializar uma imagem de disco ou disco, mas você pode extrair o bootloader do CD e passá-lo para o kexec. Se o CD de boot estiver na unidade, não vejo por que não funcionaria, mas ainda não tentei.

Descompactar um .iso na RAM e fazer com que o bootloader do .iso seja executado a partir dele sem que o bootloader esteja ciente da situação seria tecnicamente possível, mas extremamente difícil. Não conheço nenhum utilitário capaz disso e não acredito que exista algum.

    
por 10.08.2012 / 03:10
6

Você pode executar grub4dos usando kexec :

    kexec -l grub.exe
    kexec -e

O Grub4dos pode então inicializar a partir do CD:

    cdrom --init
    cdrom --hook
    chainloader (cd0)
    boot

Os snippets são do tutorial do Grub4dos .

    
por 07.12.2013 / 21:53