Personalizar o Menu de Inicialização do GRUB2 no Linux

CompTIABeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como personalizar o menu de inicialização do GRUB2 em um ambiente Linux. O GRUB2 (GRand Unified Bootloader) é o primeiro programa executado quando o computador liga, sendo o responsável por carregar o kernel do Linux. Você ganhará experiência prática manipulando seu principal arquivo de configuração, /etc/default/grub, para ajustar a experiência de boot de acordo com suas necessidades.

Você começará acessando e inspecionando a configuração padrão do GRUB2. Em seguida, modificará parâmetros fundamentais como GRUB_TIMEOUT, para alterar por quanto tempo o menu de inicialização é exibido, e GRUB_DEFAULT, para definir qual sistema será iniciado por padrão. Para concluir o laboratório, você aplicará essas alterações gerando um novo arquivo de configuração do GRUB2 com o comando grub2-mkconfig e aprenderá a verificar se suas personalizações foram configuradas corretamente.

Nota: Como este é um ambiente virtual da LabEx, temporário e descartável, não podemos realizar um reinício real do sistema para ver as mudanças no menu de inicialização em tempo real. Em vez disso, você aprenderá a validar as alterações examinando os arquivos gerados do GRUB2, uma habilidade igualmente importante para administradores de sistemas validarem suas configurações antes de reiniciarem servidores em produção.

Este é um Laboratório Guiado, que fornece instruções passo a passo para ajudar você a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 98%. Ele recebeu uma taxa de avaliação positiva de 100% dos alunos.

Acessar o Arquivo de Configuração Padrão do GRUB2 /etc/default/grub

Nesta etapa, você aprenderá como acessar e visualizar o arquivo de configuração principal do GRUB2. O GRUB2 (GRand Unified Bootloader, versão 2) é o carregador de inicialização padrão para a maioria das distribuições Linux modernas. Ele é o primeiro software que roda ao ligar a máquina, e seu trabalho é carregar o kernel do Linux na memória para então iniciar o sistema operacional.

O arquivo de configuração primário que você utilizará para personalizar o comportamento do GRUB2 está localizado em /etc/default/grub. Este arquivo contém pares de chave-valor que controlam ajustes como o tempo de espera do menu, o sistema operacional padrão para inicialização e parâmetros adicionais do kernel.

Antes de fazer qualquer alteração, é essencial inspecionar a configuração atual. Como o /etc/default/grub é um arquivo de sistema pertencente ao usuário root, você precisará usar o comando sudo para acessá-lo. Utilizaremos o comando cat para exibir seu conteúdo no terminal.

Execute o seguinte comando para visualizar o conteúdo do arquivo de configuração padrão do GRUB2:

sudo cat /etc/default/grub

Você verá uma saída semelhante à seguinte. Os valores exatos podem variar ligeiramente dependendo da configuração do seu sistema.

GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8 no_timer_check iommu=pt crash_kexec_post_notifiers=1 nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

Vamos analisar brevemente dois parâmetros importantes deste arquivo:

  • GRUB_TIMEOUT: Este valor determina por quanto tempo (em segundos) o menu do GRUB2 é exibido antes de iniciar automaticamente a entrada padrão.
  • GRUB_DEFAULT: Especifica qual sistema operacional ou kernel será iniciado por padrão.

Na próxima etapa, você aprenderá como modificar esses parâmetros para alterar o comportamento do menu de inicialização.

Modificar os Parâmetros GRUB_TIMEOUT e GRUB_DEFAULT

Nesta etapa, você modificará o arquivo de configuração do GRUB2 para alterar o comportamento do menu de inicialização. Especificamente, você aumentará o tempo de espera do menu e definirá uma entrada de inicialização padrão específica. Para editar o arquivo /etc/default/grub, você usará o nano, um editor de texto de linha de comando simples e intuitivo. Por se tratar de um arquivo de sistema, você deve usar o sudo para obter as permissões necessárias para edição.

Primeiro, abra o arquivo usando o nano com privilégios de sudo.

sudo nano /etc/default/grub

O editor nano abrirá e exibirá o conteúdo do arquivo. Agora, você fará duas alterações:

  1. Alterar o valor de GRUB_TIMEOUT:
    Localize a linha que começa com GRUB_TIMEOUT. Provavelmente ela está definida como 1. Use as teclas de seta para mover o cursor até esta linha e mude o valor de 1 para 15. Isso fará com que o menu do GRUB2 aguarde 15 segundos antes de iniciar automaticamente.

    A linha deve ficar assim após a alteração:

    GRUB_TIMEOUT=15
  2. Alterar o parâmetro GRUB_DEFAULT:
    Encontre a linha que começa com GRUB_DEFAULT. O valor pode ser saved. Altere este valor para 0. Definir GRUB_DEFAULT=0 instrui o GRUB2 a iniciar automaticamente a primeira entrada na lista do menu (a lista começa do zero, portanto 0 é a primeira opção).

    A linha deve ficar assim após a alteração:

    GRUB_DEFAULT=0

Depois de fazer essas alterações, você precisa salvar o arquivo e sair do nano.

  • Pressione Ctrl + O (comando "Write Out") para salvar as alterações.
  • O nano pedirá para confirmar o nome do arquivo. Basta pressionar Enter.
  • Pressione Ctrl + X para sair do editor nano e retornar ao prompt do terminal.

Você modificou com sucesso as configurações padrão do GRUB2. Na próxima etapa, você aplicará essas mudanças.

Aplicar e Verificar as Mudanças de Configuração do GRUB2

Nesta etapa, você aplicará as alterações de configuração feitas no passo anterior e aprenderá como verificar se o GRUB2 foi configurado corretamente. Você usará o comando grub2-mkconfig para gerar um novo arquivo de configuração baseado em suas modificações.

Gerar a Nova Configuração do GRUB2

Agora que você modificou o arquivo /etc/default/grub, precisa aplicar essas mudanças gerando um novo arquivo de configuração final do GRUB2. O comando grub2-mkconfig lê as definições do /etc/default/grub e os scripts em /etc/grub.d/ para criar a configuração definitiva do GRUB2.

Execute o seguinte comando para gerar a nova configuração:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Você deverá ver uma saída semelhante a esta:

Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done

Este comando varre seu sistema em busca de kernels disponíveis, lê suas definições de configuração e cria a configuração final do menu do GRUB2.

Verificar Suas Alterações de Configuração

Vamos verificar se suas alterações foram devidamente aplicadas à configuração do GRUB2. Primeiro, verifique se as configurações modificadas estão refletidas no arquivo /etc/default/grub:

sudo grep -E "(GRUB_TIMEOUT|GRUB_DEFAULT)" /etc/default/grub

Você deve ver a saída mostrando seus valores modificados:

GRUB_TIMEOUT=15
GRUB_DEFAULT=0

Em seguida, verifique se essas definições foram aplicadas ao arquivo de configuração gerado do GRUB2:

sudo grep -E "(timeout|default)" /boot/grub2/grub.cfg | head -5

Isso mostrará como suas configurações aparecem no arquivo real que o GRUB2 utiliza durante a inicialização.

Criar um Backup da Configuração

É sempre uma boa prática criar cópias de segurança de arquivos de configuração importantes antes de fazer alterações:

sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup

Isso cria uma cópia de backup que você pode restaurar se necessário.

Solucionar Problemas e Validar a Configuração do GRUB2

Nesta etapa final, você aprenderá técnicas essenciais de solução de problemas para configurações do GRUB2 e entenderá como validar suas alterações. Essas habilidades são cruciais para administradores de sistemas que precisam garantir que suas modificações no GRUB2 funcionem corretamente antes de reiniciar sistemas em produção.

Verificar a Sintaxe da Configuração do GRUB2

Verifique se a sua configuração do GRUB2 não possui erros de sintaxe usando o verificador integrado:

sudo grub2-script-check /boot/grub2/grub.cfg

Se não houver erros, este comando não retornará nada (saída silenciosa). Quaisquer erros de sintaxe serão exibidos com os números das linhas, o que ajuda a identificar e corrigir problemas.

Entender a Estrutura de Diretórios do GRUB2

Explore a estrutura do diretório de configuração do GRUB2 para entender como ele funciona. Note que este diretório requer privilégios de root para ser acessado:

sudo ls -la /etc/grub.d/

Isso mostrará todos os scripts que geram diferentes partes do menu do GRUB2. Cada script possui um prefixo numérico que determina a ordem de execução. Você verá vários scripts como:

  • 00_header: Define a configuração básica do GRUB2.
  • 00_tuned: Configurações específicas do serviço Tuned.
  • 01_users: Configurações de usuários.
  • 10_linux: Localiza e adiciona kernels Linux.
  • 20_linux_xen: Suporte ao hipervisor Xen.
  • 30_os-prober: Procura por outros sistemas operacionais.
  • 40_custom: Contém entradas de menu definidas pelo usuário.

Os scripts reais podem variar dependendo da configuração do seu sistema e dos pacotes instalados.

Visualizar Entradas de Inicialização Disponíveis

Vamos examinar quais entradas de inicialização estão disponíveis na sua configuração gerada:

sudo grep "menuentry" /boot/grub2/grub.cfg | head -10

Este comando mostrará referências a entradas de menu e as entradas reais. A saída pode incluir tanto variáveis de configuração (como menuentry_id_option) quanto as entradas reais do menu de boot. Procure por linhas que contenham definições completas de menuentry.

Verificar Configurações de Timeout e Default

Confirme se as suas definições de tempo de espera e padrão estão configuradas corretamente no arquivo final:

sudo grep -E "set timeout|set default" /boot/grub2/grub.cfg

Você verá múltiplas configurações de timeout e default no arquivo. Isso é normal, pois o GRUB2 usa valores diferentes para cenários distintos:

  • Timeout principal (geralmente 15 segundos, conforme configurado).
  • Timeouts condicionais para situações especiais.
  • Diferentes estilos de timeout (menu, oculto).

As configurações principais a validar são:

  • set default="0" - Define a primeira entrada do menu como padrão.
  • set timeout=15 - Define o tempo de espera do menu principal para 15 segundos.

Aprender Sobre a Recuperação do GRUB2

Entender a recuperação do GRUB2 é essencial para resolver problemas de inicialização. Em situações de emergência, você pode:

  1. Acessar a linha de comando do GRUB2: Pressione c no menu do GRUB2 para entrar no modo de linha de comando.
  2. Editar entradas de boot: Pressione e para editar uma entrada de inicialização antes de dar o boot.
  3. Usar o modo de resgate (rescue mode): Se o GRUB2 não conseguir encontrar sua configuração, ele entrará no modo de resgate.

Comandos comuns de recuperação incluem:

  • ls: Lista partições e arquivos disponíveis.
  • set root=(hd0,1): Define a partição raiz.
  • linux /boot/vmlinuz root=/dev/sda1: Carrega um kernel.
  • boot: Inicia o processo de inicialização.

Verificação Final da Configuração

Vamos fazer uma última checagem da sua configuração completa do GRUB2:

sudo cat /etc/default/grub | grep -E "(TIMEOUT|DEFAULT)"

Isso confirma que suas definições básicas estão salvas corretamente no arquivo de configuração de origem.

O que você conquistou:

  • Modificou o tempo de espera e as configurações de inicialização padrão do GRUB2.
  • Aplicou as alterações de configuração usando grub2-mkconfig.
  • Aprendeu a verificar e solucionar problemas em configurações do GRUB2.
  • Criou procedimentos de backup para arquivos críticos de inicialização.
  • Compreendeu a estrutura de diretórios do GRUB2 e as opções de recuperação.
  • Ganhou habilidades para validar configurações antes de reiniciar o sistema.

Sua configuração do GRUB2 agora está devidamente personalizada com um tempo de espera de 15 segundos e a primeira entrada do menu como padrão. Em um ambiente de produção, essas mudanças entrariam em vigor no próximo reinício do sistema, proporcionando uma experiência de inicialização mais amigável ao usuário.

Resumo

Neste laboratório abrangente, você adquiriu experiência prática com técnicas essenciais de personalização e solução de problemas do carregador de inicialização GRUB2. Você começou examinando a configuração padrão do GRUB2, depois modificou parâmetros-chave, incluindo GRUB_TIMEOUT e GRUB_DEFAULT, para personalizar o comportamento do menu de inicialização. Você aprendeu a aplicar essas alterações usando o comando grub2-mkconfig e a verificar se suas modificações foram implementadas corretamente.

As principais habilidades desenvolvidas incluem a compreensão da estrutura de configuração do GRUB2, a modificação segura do arquivo /etc/default/grub, a aplicação correta das mudanças de configuração e a implementação de procedimentos adequados de verificação e backup. Você também aprendeu técnicas essenciais de solução de problemas, incluindo verificação de sintaxe, validação de configuração e compreensão das opções de recuperação do GRUB2, que são fundamentais para administradores de sistemas.

O laboratório enfatizou habilidades práticas necessárias em cenários do mundo real, particularmente a capacidade de validar as configurações do GRUB2 antes de aplicá-las em sistemas de produção. Você aprendeu a usar comandos como grub2-script-check para validação de sintaxe e vários comandos grep para verificar se suas alterações foram devidamente aplicadas aos arquivos de configuração gerados.

Essas competências preparam você para lidar com cenários de configuração de boot com confiança e resolver problemas relacionados à inicialização de forma eficaz em ambientes Linux corporativos. As técnicas de verificação praticadas são especialmente valiosas para garantir que as configurações do GRUB2 estejam corretas antes de reiniciar sistemas críticos.