Pop!_OS

Kernelstub: gerencie o kernel padrão e opções de boot no Pop!_OS

O kernelstub é uma ferramenta para você criar um menu de boot no Pop!_OS (e outras distribuições) ou gerenciar a partição de sistema EFI (ESP) do seu computador, aquela partição do seu disco que armazena os arquivos carregados no processo de inicialização.

Mas por que você deveria aprender a utilizá-lo? Venha comigo para um passeio nesta ferramenta de código aberto e descubra as suas utilidades.

O que o kernelstub faz?

Sendo um gerenciador do carregamento dos arquivos de boot a partir da partição ESP, ele simplifica a cópia do kernel atual e da imagem initramfs para a partição ESP, permitindo a detecção automática pelos carregadores de inicialização UEFI (GRUB, bootctl, systemd-boot ou rEFIt/rEFInd).

Ele também permite configurar a NVRAM do sistema, adicionando entradas ao menu de inicialização do firmware para os kernels que estiverem instalados e atualizando tudo quando uma nova versão do kernel for instalada.

Como instalar o kernelstub?

Na página de lançamentos (releases) do projeto no Github, você pode baixar um arquivo .deb para executar uma instalação local. Caso não esteja presente, instale o pacote wget no seu sistema e faça as alterações necessárias nos nomes dos arquivos abaixo para instalar a última versão disponível.

wget https://github.com/isantop/kernelstub/releases/download/3.1.0/kernelstub_3.1.0_all.deb -O ~/Downloads/kernelstub_3.1.0_all.deb
sudo dpkg -i ~/Downloads/kernelstub_3.1.0_all.deb

Caso apareçam erros de dependências, você precisará instalá-las manualmente, por exemplo, a ausência do pacote efibootmg pode ser solucionada através do seguinte comando:

sudo apt install efibootmg

Caso você use uma distribuição não baseada no Debian, pode compilar a ferramenta, instalando antes as dependências que forem necessárias no seu caso específico.

git clone https://github.com/isantop/kernelstub
cd kernelstub
debuild -b -us -uc
sudo dpkg -i ../kernelstub*.deb

Você também pode instalar através do Python, conforme os comandos a seguir que, além de instalar a ferramenta, criam uma lista de todos os arquivos instalados no seu computador (arquivo installed_files.txt na pasta raiz do código-fonte baixado); caso você deseje, poderá utilizar esse arquivo para desinstalar todos os pacotes e dependências.

git clone https://github.com/isantop/kernelstub
cd kernelstub
sudo python3 setup.py install --record > installed_files.txt

Para que usá-lo?

O kernelstub é desenvolvido pela System76, a mesma empresa que criou a distribuição Pop!_OS e permite que você gerenciar os parâmetros de carregamento do kernel, por exemplo:

  • Alterar o nível de latência (suspensão ou hibernação) do sistema;
  • Controlar o estado da luz de fundo do seu teclado;
  • Definir a quantidade de memória RAM a ser utilizada no processo de boot;
  • Definir o nível de log do kernel;
  • Especificar a partição swap para ser usada ao acordar da hibernação;
  • Especificar o local das partições criptografadas (dm-crypt);
  • Especificar o local dos arquivos de kernel e ramdisk;
  • Habilitar ou desabilitar o carregamento de módulos do kernel como o das placas de vídeo;
  • Uso ou não da animação de carregamento do boot.

Por exemplo, para visualizar uma animação durante o carregamento do kernel, utilize o seguinte comando:

sudo kernelstub -o "quiet splash"

Ele certifica-se de evitar quaisquer duplicações de opções e, caso já existam, manterá apenas uma delas. Os parâmetros de linha de comando estão detalhados no GitHub ou você pode listá-los através do comando:

sudo kernelstub -h

Por se tratar de uma ferramenta que modifica configurações sensíveis no seu sistema, sugiro que treine o seu uso através do parâmetro dry-run, que apenas simula a execução dos comados sem efetivamente realizá-los no sistema ou utilize uma máquina virtual. Caso ocorra algo errado, você pode conferir o código do erro na página do projeto no GitHub e fazer os ajustes necessários nos comandos digitados.

sudo kernelstub [comandos] --dry-run

Alterar o kernel padrão

Um dos usos mais apreciados do kernelstub é poder alterar o kernel padrão utilizado no carregamento do sistema.

Atenção: caso o seu sistema ou máquina virtual não tenha uma partição ESP (montada em /boot/efi), ele não irá funcionar.

Primeiramente, liste as versões do kernel atualmente instaladas no seu computador através do comando abaixo.

dpkg --list | grep linux-image*

Por exemplo, três versões do kernel no Pop_OS!

linux-image-6.0.2-76060002-generic 6.0.2-76060002.202210150739~1666289067~22.04~fe0ce53 amd64 Linux kernel image for version 6.0.2 on 64 bit x86 SMPii linux-image-6.0.6-76060006-generic 6.0.6-76060006.202210290932~1667401208~22.04~d2df702 amd64 Linux kernel image for version 6.0.6 on 64 bit x86 SMPii linux-image-generic 6.0.6.76060006.202210290932~1667401208~22.04~d2df702 amd64 Generic Linux kernel image

Com o comando “uname -r” você descobre qual versão do kernel utilizando.

uname -r
$ 6.0.6-76060006-generic

Para alterar a versão do kernel utilizada na inicialização do sistema, você pode digitar um comando semelhante ao mostrado a seguir, adaptando o que for necessário para o seu caso; simule primeiro com a opção dry-run. Por exemplo, para utilizar a versão anterior do kernel (6.0.2-76060002), você poderia usar o seguinte comando.

sudo kernelstub --dry-run -v -k /boot/vmlinuz-6.0.2-76060002-generic -i /boot/initrd.img-6.0.2-76060002-generic

Se nenhuma mensagem de erro aparecer, você pode executar efetivamente o comando para trocar o kernel.

sudo kernelstub -v -k /boot/vmlinuz-6.0.2-76060002-generic -i /boot/initrd.img-6.0.2-76060002-generic

Após reiniciar o sistema, o kernel padrão será a versão 6.0.2-76060002.

uname -r
$ 6.0.2-76060002-generic

Gostou do kernelstub? Assine a nossa newsletter para não perder nenhuma dica sobre o Pop_OS! ou a sua distribuição favorita!

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!