Criar entrada (menuentry) ISO no Grub

Veremos como criar entradas (menuentry) no arquivo /etc/grub/40_custom para imagens ISOs Live e não Live, a fim de que você possa inicializar a ISO pelo disco sem precisar de pendrive.

[ Hits: 179 ]

Por: Buckminster em 07/04/2025


INTRODUÇÃO



Como criar uma entrada iso no Grub

Nível intermediário.

O Grub (Grand Unified Bootloader) é um bootloader, ou seja, um carregador de inicialização.

Isso é tudo o que você precisa saber sobre o Grub no momento, pois o Grub não é o escopo do artigo, o escopo é como criar uma entrada (menuentry) no arquivo /etc/Grub/40_custom, porém, primeiro segue uma explicação necessária sobre o processo de inicialização do Linux.

O binário do kernel do UNIX é chamado UNIX. Quando o kernel, em tempos antanhos, passou a ter suporte para memória virtual foi renomeado de "vmunix". O "vmlinuz" é derivado de "Virtual Memory LINUx gZip". O Kernel Linux, como é compactado geralmente com uma extensão z, gz, ou xz como é hoje, passou a se chamar "vmlinuz" e continua até hoje, mesmo tendo, algumas vezes, outra extensão. O "vmlinuz" é um arquivo compactado e inicializável do Kernel Linux, porém, não é apenas um arquivo compactado, ele também tem um descompactador embutido no código, além de outras coisas.

O initrd (Initial ramDisk - Disco RAM Inicial) fornece a capacidade de carregar um disco RAM pelo carregador de inicialização. Este disco RAM inicial pode então ser montado como um sistema de arquivos raiz temporário e pode ser executado a partir dele. Depois, um novo sistema de arquivos raiz pode ser montado a partir de um dispositivo diferente. A raiz anterior (do initrd) é então movida para um diretório e pode ser desmontado posteriormente.

Grosso modo, o initrd é uma porção de diversos arquivos/ferramentas/módulos, cada qual com sua função, por exemplo, a ferramenta insmod está incluída no initrd, e esse conjunto é juntado nesse pacote chamado initrd que é também um sistema de arquivos temporário carregado na memória RAM durante o processo de inicialização do Linux para que o Kernel possa montar o sistema de arquivos raiz real (aquele que você escolhe durante o particionamento na instalação do sistema, seja ext4, Btrfs, etc.

Apesar de que cada distribuição tem sua própria maneira de lidar com isso, geralmente é feito desta maneira no Linux, pois até os nomes do "vmlinuz" e "initrd" podem variar.

O initrd.img é um link simbólico para o initrd que é carregado pelo bootloader junto com a imagem do kernel e é essencial para o processo de inicialização que os sistemas Linux modernos usam. O initrd serve como um sistema de arquivos raiz provisório até que o sistema de arquivos raiz real seja montado. Por isso, às vezes, quando aparece aquela mensagem "you need to load the kernel first - você precisa carregar o kernel primeiro" é porque o "vmlinuz" (o kernel) não foi encontrado ou a assinatura é inválida ou está corrompido, etc. O bootloader (no caso, o Grub) não encontrou o kernel para carregar e montar.

O processo de inicialização se dá, resumidamente, da seguinte maneira:

  1. Quando você liga o computador, o BIOS da placa-mãe procura um bootloader (como o Grub, se houver) que, por sua vez, carrega o vmlinuz e o initrd na memória. Isso acontece após você escolher um sistema no menu do Grub ou após o sistema padrão configurado carregar automaticamente;
  2. A rotina programada no vmlinuz descompacta o kernel na memória;
  3. Depois da descompactação o controle é passado para o Kernel que então monta o initrd como seu sistema de arquivos raiz inicial temporário;
  4. O initrd assume o controle e carrega os módulos necessários que são cruciais para que o Kernel acesse o hardware para montar o sistema de arquivos real (ext4, NFS, Btrfs, etc);
  5. Então o Kernel carrega os drivers necessários e depois que os drivers foram carregados, o Kernel monta o sistema de arquivos raiz real e continua o processo de inicialização.

Fiz essa breve explicação para entendermos o processo de inicialização necessário para criarmos as entradas para as imagens iso no Grub e também evitar os avisos de erro durante a inicialização do Linux, como, por exemplo: "você precisa carregar o kernel primeiro", "memória insuficiente - out of memory", "Invalid magic number", "servidor não encontrado", etc.

O erro "you need to load the kernel first - você precisa carregar o kernel primeiro" geralmente significa que tem algum parâmetro errado em relação aos caminhos para o vmlinuz. Em caso de Live pelo pendrive pode significar também que o Secure Boot e/ou o TPM estão está habilitados, a imagem está corrompida, etc. Este é um erro bastante genérico que, para solucioná-lo, você deve ir pelo processo de eliminação.

O erro "memória insuficiente - out of memory" é auto-explicativo, porém, em caso de ISO carregada na RAM a partir do disco pode significar que não tem espaço suficiente na RAM ou, caso a ISO tenha sido colocada na partição /boot (não recomendado) pode significar que não tem espaço suficiente na partição /boot para descompactar os arquivos.

O erro "Invalid magic number" geralmente significa algum erro de verificação do hash (não necessariamente imagem corrompida, somente o hash) ou, em último caso, a imagem está mesmo corrompida. Essa mensagem "número mágico inválido" provavelmente foi uma brincadeira dos desenvolvedores, como os "poderes de super-vaca" do aptitude. O erro "servidor não encontrado" geralmente significa que algum caminho para a imagem foi digitado errado, o hdx,x está errado, o computador está sem internet, a imagem não conseguiu conexão com a internet, etc.

A causa desses erros podem variar, procurei dar em linhas gerais de acordo com a mensagem e com a experiência.Passados os prolegômenos, vamos colocar a mão no mouse!

    Próxima página

Páginas do artigo
   1. INTRODUÇÃO
   2. DESENVOLVIMENTO 1
   3. DESENVOLVIMENTO 2
   4. DESENVOLVIMENTO 3
   5. CONCLUSÃO
Outros artigos deste autor

Instalação do PostgreSQL, Apache2 e PHP8 no Debian Buster 10 e no Stretch 9

ClamAV, o kit de ferramentas antivírus

Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET

Compilação de Kernel

Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário

Leitura recomendada

Aplicações Windows em ambiente Linux com SeamlessRDP

Configurando servidor MikroTik com Hotspot e páginas de aviso (atraso e bloqueio)

Red Hat e Fedora - Um guia básico de configuração

Instalando Servidor ELASTIX (PABX-IP)

As melhores ferramentas de colaboração para Linux

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts