Inicializando imagem .ISO no GRUB2

23 de jul de 2015 - Paulo Dias


Oi, tudo bem? Hoje quero escrever sobre como inicializar uma imagem .ISO de uma distribuição GNU/Linux através do GRUB2.

Vou tentar explicar todo o procedimento necessário para ter uma imagem .ISO de qualquer distribuição GNU/Linux dando Boot através do GRUB2. Porém, antes de iniciar é importante já ter conhecimento básico sobre o funcionamento do GRUB2. Se você não está seguro sobre as caracteristicas do GRUB2, veja esse artigo que escrevi em 2013 http://www.prmjuniorblog.blogspot.com.br/2013/02/configurando-o-grub2-no-debian-squeeze.html.

Sabendo disso, o primeiro passo a ser realizado é verificar a localização de 2 arquivos dentro da imagem .ISO. Os arquivos são vmlinuz e initrd. Para verificar o conteúdo da imagem utilize algum utilitário do tipo desempacotador (ark). Veja um exemplo de uma imagem do Ubuntu Server:

imagem de exemplo do Ubuntu

É importante verificar porquê a localização e as extensões desses arquivos podem mudar dependendo da imagem .ISO. Por exemplo, veja a um imagem do KUbuntu Desktop:

imagem de exemplo do Kubuntu

Perceba pela imagem que para a .ISO do KUbuntu os arquivos vmlinuz e initrd estão dentro da pasta casper.

Sabendo a localização dos arquivos na imagem .ISO, crie uma pasta na raiz do seu sistema e coloque essa imagem dentro dela. Exemplo: /isos/kubuntu-14.04.2-desktop-amd64.iso .

sudo mkdir /isos
sudo mv kubuntu-14.04.2-desktop-amd64.iso /isos/
sudo chmod 755 /isos -R

Feito isso, crie o arquivo /etc/grub.d/99_isos com o seguinte conteúdo:

#!/bin/sh
exec tail -n +3 $0

menuentry "KUbuntu 14.04 ISO" {

        set iso="/isos/kubuntu-14.04.2-desktop-amd64.iso"
        loopback loop (hd0,5)$iso
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$iso quiet splash
        initrd (loop)/casper/initrd.lz
}

Veja que vmlinuz, initrd e a pasta casper são referenciados algumas vezes. Faça as substituições conforme os dados da sua imagem .ISO .

Além disso, é necessário alterar a informação (hd0,5) conforme a sua situação. O hd0 faz referência ao primeiro HD( sda ) e 5 faz referência a 5ª partição desse HD( sda5 ). Altere essa informação conforme a partição onde a sua imagem .ISO estiver.

No artigo de 2013 sobre o GRUB2 eu escrevi sobre isso, mas é importante lembrar que o GRUB2 conta os HDs iniciando no zero( 0, 1, 2 ...) e as partições iniciando no 1 ( 1, 2, 3 ... ).

Depois de realizar todas as alterações necessárias, rode os comandos:

sudo chmod 755 /etc/grub.d/99_isos
sudo update-grub

Pronto reinicie o sistema e acesse alternativa correspondente a .ISO no menu do GRUB.

Eu criei esse artigo devido a uma dúvida que respondi no fórum Viva o Linux, veja: http://www.vivaolinux.com.br/topico/Desktops/Ubuntu-com-Isos/?pagina=1

Qualquer dúvida, deixe um comentário. Até mais...


Paulo Dias

Graduado no curso tecnólogo em análise e desenvolvimento de sistemas. Defensor do Software Livre e da democratização da informação. Possui as certificações Linux LPIC-1 e Java OCA. Atualmente exerce a função de coordenador técnico na área de telecomunicações.

Siga-me no Twitter


Tags: Linux