O gerenciador de boot do Linux, o GRUB 2, pode inicializar arquivos de imagem ISO diretamente do disco rígido do seu computador. Esse recurso, permite você inicializar (“dar boot“) um sistema LiveCD sem a necessidade de um pendrive ou CD/DVD para queimar a imagem ISO. Além disso, é possível instalar um sistema Linux, em uma outra partição do disco rígido já particionada, sem queimar em um disco ou iniciar a partir de um pendrive.
Embora seja fácil de queimar arquivos ISO em um disco USB ou CD/DVD; em certos casos, pode-se querer executar a mesma imagem ISO muitas vezes ou executar diferentes sistemas Live regularmente. Com o GRUB 2 é possível configurar de modo que você não precise queimar as imagens ISOs constantemente ou usar uma unidade USB. Basta executar usar um sistema Linux Live diretamente do disco a partir de uma imagem ISO.
Ambiente de Teste
Realizamos este processo no Ubuntu 14.04 – Ubuntu e distribuições Linux baseada no Ubuntu tem um bom suporte para isso. Outras distribuições Linux deve funcionar de forma semelhante.
Mão na massa
1 – Obtendo a imagem ISO
Para obter uma imagem ISO, você deverá visitar o site da distribuição desejada e fazer download de qualquer imagem que seja compatível com a sua configuração. Se a imagem pode ser iniciada a partir de um pendrive, ela deve ser capaz de iniciar a partir do menu GRUB também.
No no nosso caso, escolhi a imagem ISO do Fedora.
2 – Determinando o caminho da partição do disco rígido
O GRUB usa uma notação diferente do sistema Linux para referenciar o dispositivo de disco. Em um sistema Linux, /dev/sda0 é a primeira partição no primeiro disco rígido. No GRUB, (hd0,1) é equivalente a /dev/sda0. O 0 (“zero”) significa o primeiro disco rígido, já o 1 (“hum”) significa a primeira partição desse disco.
Você pode usar o comando fdisk -l para exibir essas informações. No Ubuntu, abra um terminal e execute o seguinte comando:
Você verá uma lista de caminhos de dispositivo do Linux, que você pode alterar para nomes de dispositivo do GRUB. Por exemplo, abaixo podemos ver a partição do sistema é /dev/sda1 – de modo que (hd0,1) será usado para o GRUB.
Disco /dev/sda: 500.1 GB, 500107862016 bytes 255 cabeças, 63 setores/trilhas, 60801 cilindros, total de 976773168 setores Unidades = setores de 1 * 512 = 512 bytes Tamanho do setor (lógico/físico): 512 bytes / 512 bytes Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes Identificador do disco: 0x359d0186 Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 * 2048 206847 102400 83 Linux /dev/sda3 411525118 976771071 282622977 5 Estendida /dev/sda6 970915840 976771071 2927616 82 Linux swap / Solaris
3 – Verificando o conteúdo da imagem ISO
Uma etapa importante é verificar o caminho correto dos principais arquivos que inicializam o sistema e carregam o kernel; initrd e vmlinuz, respectivamente.
Depois de baixada a imagem ISO, verifique seu conteúdo usando o recurso gráfico do Ubuntu – botão direito sobre a imagem e gerenciador de arquivos/pacotes. Algo similar a imagem abaixo:
Normalmente, esses arquivos encontram-se na pasta casper. Contudo, no caso do Fedora (baixado no exemplo) o caminho é diferente: pasta isolinux. Na próxima etapa, as duas últimas linhas que serão adicionadas, no arquivo do GRUB, indicarão esse caminho.
4 – Configurando o GRUB 2
A maneira mais fácil para adicionar uma entrada de inicialização personalizada é editar o arquivo /etc/grub.d/40_custom. Este arquivo é projetado para entradas de inicialização personalizados adicionados pelo usuário.
Após editar esse arquivo, o conteúdo do arquivo /etc/defaults e dos arquivos /grub, /etc/grub.d/ serão alterados para criar o arquivo /boot/grub/grub.cfg – você não deve editar esse arquivo manualmente.
Agora, você vai precisar para abrir o arquivo /etc/grub.d/40_custom para edição com privilégios de root. No Ubuntu, você pode fazer isso abrindo uma janela de terminal e executando o seguinte comando:
#!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above.
Para iniciar o Fedora Live a partir da imagem ISO pelo GRUB, adicione o seguinte trecho ao final do conteúdo mostrado à cima:
menuentry "FEDORA LIVE ISO" { set isofile="/home/ricardo/Fedora-Live-Workstation-x86_64-22-3.iso" loopback loop (hd0,1)$isofile linux (loop)/isolinux/vmlinuz0 boot=isolinux iso-scan/filename=${isofile} quiet splash initrd (loop)/isolinux/initrd0.img }
Salve o arquivo quando concluir. Por fim, retorne para a janela do Terminal e execute o seguinte comando:
A próxima vez que você iniciar seu computador, você verá a entrada de inicialização do arquivo ISO. Assim, você poderá escolhê-lo para inicializar diretamente pela imagem ISO. Quando iniciar o PC, segure a tecla Shift durante a inicialização para aparacer a tela de GRUB.
Onde Encontrei
How to Run ISO Files Directly From the HDD with GRUB2
Este exemplo pode ser utilizado para outras distros como kali,debian,CentOS? acredito que seja necessárias algumas alterações para que este procedimento seja utilizado. Em testes com o Kali por exemplo os comandos necessitam de algumas alterações.
https://wiki.archlinux.org/index.php/Multiboot_USB_drive
Arch wiki sempre sendo arch wiki