
Portanto, tenho um arquivo .img totalmente funcional criado usando grub-mkstandalone. Coloquei isso em um CD e inicializa bem, o ISO carrega muito bem em uma VM, etc...
Agora, o que eu quero fazer é vincular um grub.cfg existente a este arquivo .img como se fosse uma inicialização normal. Isso faz sentido? Por exemplo, tenho um pendrive USB com o grub instalado. Tenho vários dispositivos de loop configurados para inicializar ISOs. Tudo Linux. No entanto, neste caso, quero carregar o arquivo .img (que possui seu próprio grub.cfg). Então, eu gostaria de ver o menu desse grub.cfg assim que o .img for carregado e inicializar o sistema operacional a partir dele.
Há dias que procuro a resposta e leio a documentação, mas não consegui encontrar a resposta.
Deixe-me saber se a pergunta não ficou clara e eu esclarecerei. Desde já, obrigado.
EDITAR:
Por exemplo, digamos que eu tenha esta entrada de menu:
menuentry 'My OS' {
set isofile="/iso/os_5.1.1_amd64.iso"
loopback loop (hd0,msdos1)$isofile
linux (loop)/vmlinuz boot=live toram nomodeset
initrd (loop)/initrd
}
Isso funciona bem. No entanto, quero carregar o arquivo .img que criei em vez de carregar o Linux assim para poder ver o menu grub que está dentro do ISO.
Então, algo assim?
menuentry 'My OS' {
set isofile="/iso/os_5.1.1_amd64.iso"
loopback loop (hd0,msdos1)$isofile
.... (loop)/boot/grub/my.img
}
Os pontos representam alguma mágica que não conheço para fazer isso funcionar (se é que é possível).
Responder1
Para imagens EFI, você pode usar chainloader
(mas suspeito que você estava usando BIOS na época; não sei se funciona para isso):
menuentry 'My OS' {
chainloader (hd0,msdos1)/BOOT/EFI/somedir/somebin.efi
}
Então, eu teria tentado (não testado!!):
menuentry 'My OS' {
set isofile="/iso/os_5.1.1_amd64.iso"
loopback loop (hd0,msdos1)$isofile
chainloader (loop)/boot/grub/my.img
}