Guia de tecnologias

Compilar e instalar o kernel Linux (passos 5–8)

5 min read Linux Atualizado 09 Oct 2025
Compilar e instalar o kernel Linux
Compilar e instalar o kernel Linux

5 Construir o kernel

Para construir o kernel, execute o comando abaixo no diretório de compilação apropriado:

make rpm

Seja paciente: a compilação do kernel pode levar desde vários minutos até algumas horas, dependendo da configuração do kernel e da velocidade do seu processador. Definição rápida: RPM é o formato de pacote usado por distribuições derivadas do Red Hat (incluindo Mandriva) para distribuir software compilado.

Notas importantes:

  • Verifique espaço em disco em /boot e /usr/src antes de iniciar.
  • Compile com NPROC apropriado (ex.: make -j4) se estiver usando um método alternativo; no fluxo acima o alvo make rpm geralmente controla o paralelismo.

6 Instalar o novo kernel

Após a compilação bem-sucedida, serão criados um arquivo src.rpm e um pacote .rpm binário. O arquivo src.rpm normalmente fica em /usr/src/rpm/SRPMS/. Descubra o nome executando:

ls -l /usr/src/rpm/SRPMS/

No exemplo original, o SRC RPM foi chamado kernel-2.6.18.3default-1.src.rpm.

Os pacotes binários .rpm estarão em /usr/src/rpm/RPMS//, por exemplo /usr/src/rpm/RPMS/i386/ ou /usr/src/rpm/RPMS/x86_64/ dependendo da sua arquitetura. Para listar:

ls -l /usr/src/rpm/RPMS/i386/

No exemplo, o RPM foi kernel-2.6.18.3default-1.i386.rpm.

Para instalar o pacote RPM do kernel use:

cd /usr/src/rpm/RPMS/i386/
rpm -ivh kernel-2.6.18.3default-1.i386.rpm

Observações:

  • Você pode transferir esse pacote .rpm para outras máquinas Mandriva e instalá-lo lá sem recompilar.
  • Use rpm -Uvh para atualizar se preferir substituir um kernel existente em vez de manter ambos.

Agora é preciso criar um ramdisk (initrd) para o novo kernel; sem ele o sistema provavelmente não fará boot:

mkinitrd /boot/initrd-2.6.18.3-default.img 2.6.18.3-default

Explicação em uma linha: mkinitrd constrói a imagem de inicialização que contém módulos e drivers necessários para montar o root filesystem durante o boot.

7 Configurar o carregador LILO

É necessário atualizar o carregador LILO para que ele ofereça o novo kernel no arranque.

  1. Liste o conteúdo de /boot para identificar vmlinuz- e initrd- gerados:
ls -l /boot

Você deverá ver algo como vmlinuz-2.6.18.3-default e initrd-2.6.18.3-default.img.

  1. Edite /etc/lilo.conf. Use um stanza existente como modelo, substitua os caminhos do kernel e initrd e adicione o novo stanza acima dos outros. Garanta um label único (ex.: linux-2.6.18.3-default) e, se quiser que esse kernel seja o padrão, coloque exatamente o mesmo valor na linha default.
vi /etc/lilo.conf

Exemplo de lilo.conf antes de adicionar o novo stanza:

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="linux"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz
        label="linux"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5"
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" failsafe resume=/dev/sda5"

E assim fica depois de adicionar o novo stanza (observe a mudança em default, image e initrd):

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="linux-2.6.18.3-default"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz-2.6.18.3-default
        label="linux-2.6.18.3-default"
        root=/dev/sda6
        initrd=/boot/initrd-2.6.18.3-default.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5"
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" failsafe resume=/dev/sda5"
  1. Aplique a configuração do LILO executando:
lilo
  1. Reinicie o sistema:
shutdown -r now

Após o boot, verifique a versão do kernel em uso:

uname -r

Deverá exibir algo como:

2.6.18.3-default

Se o sistema não iniciar com o novo kernel

  • Reinicie e, no menu do LILO, selecione o kernel antigo para iniciar o sistema.

Menu do LILO no arranque mostrando opções de kernel

Dicas de recuperação:

  • Se o novo kernel não iniciar, remova o stanza problemático de /etc/lilo.conf e execute lilo novamente.
  • Verifique /var/log/messages ou dmesg para mensagens de erro relacionadas a módulos ausentes ou falhas no initrd.
  • Confirme que initrd contém os módulos de disco e sistema de arquivos necessários (p.ex. drivers do controlador de disco).

8 Links


Lista de verificação antes de subir o kernel (checklist)

  • Backup completo do sistema ou snapshots de volumes importantes
  • Copiar o kernel .rpm e os initrd gerados para um local seguro
  • Verificar espaço em /boot e /usr/src
  • Validar /etc/lilo.conf e anotar o label do kernel atual
  • Ter um meio de restauração/boot alternativo (CD, pendrive ou kernel antigo no menu)

Quando este procedimento pode falhar (e como diagnosticar)

  • Problema: kernel não inicia (kernel panic, falta de initramfs)

    • Diagnóstico: inicialize com kernel antigo e verifique dmesg e /var/log/messages; confirme que mkinitrd incluiu módulos de disco.
    • Mitigação: regenere initrd incluindo módulos adicionais ou ajuste a configuração do kernel e recompile.
  • Problema: LILO não reconhece a nova entrada após editar lilo.conf

    • Diagnóstico: esqueceu de executar lilo; /etc/lilo.conf contém erro de sintaxe.
    • Mitigação: corrigir /etc/lilo.conf e executar lilo; verifique mensagens de erro do comando lilo.

Papel do administrador vs. desenvolvedor (checklists rápidos)

Administrador:

  • Fazer backup completo
  • Verificar compatibilidade de módulos proprietários (ex.: drivers RAID)
  • Testar boot em ambiente controlado

Desenvolvedor/Compilador do kernel:

  • Garantir configuração (.config) correta
  • Incluir opções de depuração se necessário
  • Validar que módulos críticos estão compilados como módulo ou built-in conforme necessário

Critérios de aceitação

  • O sistema inicializa automaticamente com o novo kernel quando configurado como default em /etc/lilo.conf.
  • uname -r exibe a versão esperada do kernel.
  • Serviços críticos montam e funcionam (p.ex. sistemas de arquivos e controladores RAID) após o boot.

Resumo

Construir e instalar um kernel envolve: compilar via make rpm, instalar o .rpm resultante, gerar o initrd correto, atualizar /etc/lilo.conf e executar lilo antes de reiniciar. Mantenha sempre um kernel funcional como fallback no menu do LILO e não esqueça de criar backups antes de tentar em produção.

Autor
Edição

Materiais semelhantes

Como cancelar a assinatura do Midjourney AI
Guias

Como cancelar a assinatura do Midjourney AI

Filtros AR para Instagram: guia e alternativas
Marketing Digital

Filtros AR para Instagram: guia e alternativas

Modo escuro no Google Search: como ativar
Tutoriais

Modo escuro no Google Search: como ativar

Jogar Pokémon GO no PC com BlueStacks
Tutoriais

Jogar Pokémon GO no PC com BlueStacks

Apagar discos com shred no Linux
Segurança de Dados

Apagar discos com shred no Linux

Corrigir erro de colar dados da organização no Windows 11
Tutoriais

Corrigir erro de colar dados da organização no Windows 11