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

LinuxBeginner
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 é ligado, sendo responsável por carregar o kernel do Linux. Você ganhará experiência prática trabalhando com seu arquivo de configuração principal, /etc/default/grub, para ajustar a experiência de inicialização de acordo com suas necessidades.

Você começará acessando e inspecionando a configuração padrão do GRUB2. Em seguida, modificará parâmetros importantes, como GRUB_TIMEOUT, para alterar o tempo de exibição do menu, e GRUB_DEFAULT, para definir a entrada de inicialização 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 do LabEx, temporário e descartável, não podemos realizar uma reinicialização real do sistema para ver as alterações do menu de inicialização em ação. Em vez disso, você aprenderá a verificar as alterações de configuração examinando os arquivos gerados do GRUB2, o que é uma habilidade igualmente importante para administradores de sistemas validarem suas configurações antes de reinicializar sistemas de produção.

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. É o primeiro programa que roda ao iniciar o computador, e sua função é carregar o kernel do Linux na memória e, em seguida, iniciar o sistema operacional.

O arquivo de configuração principal que você usará para personalizar o comportamento do GRUB2 está localizado em /etc/default/grub. Este arquivo contém pares de chave-valor que controlam configurações como o tempo limite do menu de inicialização, o sistema operacional padrão a ser iniciado 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 do sistema de propriedade do usuário root, você precisa usar o comando sudo para acessá-lo. Usaremos 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

Para manter uma referência simples que você possa comparar mais tarde no laboratório, salve as configurações atuais de tempo limite e entrada padrão em um arquivo no seu diretório home:

sudo grep -E "^(GRUB_TIMEOUT|GRUB_DEFAULT)" /etc/default/grub | tee ~/grub-current-settings.txt >/dev/null

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 limite 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. Como este é um arquivo do sistema, você deve usar sudo para obter as permissões necessárias para a 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 está definida como 1. Use as teclas de seta para mover o cursor até esta linha e altere 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. Seu 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 é indexada em zero, portanto 0 é a primeira entrada).

    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 (o comando "Write Out") para salvar as alterações.
  • O nano pedirá para confirmar o nome do arquivo a ser gravado. Basta pressionar Enter.
  • Pressione Ctrl + X para sair do editor nano e retornar ao prompt do shell.

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

Aplicar e Verificar as Alterações de Configuração do GRUB2

Nesta etapa, você aplicará as alterações de configuração feitas na etapa 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 com base em suas modificações.

Gerar a Nova Configuração do GRUB2

Agora que você modificou o arquivo /etc/default/grub, precisa aplicar essas alterações gerando um novo arquivo de configuração do GRUB2. O comando grub2-mkconfig lê as configurações de /etc/default/grub e os scripts em /etc/grub.d/ para criar a configuração final 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 verifica seu sistema em busca de kernels disponíveis, lê suas configurações e cria a configuração final do menu do GRUB2.

Verificar as Alterações de Configuração

Vamos verificar se suas alterações foram aplicadas corretamente à 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 uma saída mostrando seus valores modificados:

GRUB_TIMEOUT=15
GRUB_DEFAULT=0

Em seguida, verifique se essas configuraçõ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 de configuração real do GRUB2.

Criar um Backup da Configuração

É sempre uma boa prática criar backups 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 de produção.

Verificar a Sintaxe da Configuração do GRUB2

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

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

Se não houver erros, este comando retornará silenciosamente. Quaisquer erros de sintaxe serão exibidos com números de linha, o que ajuda a identificar e corrigir problemas.

Entender a Estrutura de Diretórios do GRUB2

Explore a estrutura de diretórios de configuração do GRUB2 para entender como ela funciona. Observe que este diretório requer privilégios de root para acesso:

sudo ls -la /etc/grub.d/

Isso mostrará todos os scripts que geram diferentes partes do menu do GRUB2. Cada script tem 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 tuned
  • 01_users: Configurações de usuário
  • 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 de entradas de menu e as entradas de menu reais. A saída pode incluir variáveis de configuração (como menuentry_id_option) e entradas reais do menu de inicialização. Procure por linhas que contenham definições completas de entrada de menu.

Verificar o Tempo Limite e as Configurações Padrão

Verifique se seu tempo limite e configurações padrão estão configurados corretamente:

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

Você verá várias configurações de tempo limite e padrão no arquivo de configuração. Isso é normal, pois o GRUB2 usa valores de tempo limite diferentes para cenários diferentes:

  • Tempo limite principal (geralmente 15 segundos, conforme configurado)
  • Tempos limite condicionais para situações especiais
  • Estilos de tempo limite diferentes (menu, oculto)

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

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

Aprender sobre a Recuperação do GRUB2

Entender a recuperação do GRUB2 é essencial para solucionar 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 inicialização: Pressione e para editar uma entrada de inicialização antes de iniciar
  3. Usar o modo de resgate: Se o GRUB2 não conseguir encontrar sua configuração, ele cai 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 verificação final da sua configuração completa do GRUB2:

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

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

O que você realizou:

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

Sua configuração do GRUB2 agora está personalizada corretamente com um tempo limite de 15 segundos e a primeira entrada do menu como padrão. Em um ambiente de produção, essas alterações entrariam em vigor na próxima reinicialização do sistema, proporcionando uma experiência de inicialização mais amigável.

Resumo

Neste laboratório abrangente, você obteve 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 e, em seguida, modificou parâmetros importantes, 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 de alterações 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 cruciais para administradores de sistemas.

O laboratório enfatizou habilidades práticas que os administradores de sistemas precisam em cenários do mundo real, particularmente a capacidade de validar configurações do GRUB2 antes de aplicá-las a 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 aplicadas corretamente aos arquivos de configuração gerados.

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