Personalizar o GRUB sem quebrar o boot: tempo, sistema padrão e volta segura
Mude o tempo do menu, o sistema padrão e a última escolha do GRUB editando o arquivo certo, regenere a configuração e saiba voltar atrás se a máquina não subir.
O notebook tem Ubuntu e Windows. Toda manhã, o menu do GRUB espera 10 segundos, sobe o Ubuntu e você, que queria o Windows para a reunião, reinicia de novo. Você edita /boot/grub/grub.cfg, funciona, e na semana seguinte uma atualização de kernel desfaz tudo. A resposta curta: a configuração que você edita fica em /etc/default/grub; depois você roda sudo update-grub (Debian e Ubuntu) ou grub2-mkconfig (Fedora e derivados) para gerar o menu de verdade.
O grub.cfg é um arquivo gerado. Ele é reescrito a cada atualização de kernel. Mexer nele é como editar o HTML que o seu build gera: dura até o próximo build.
Como o GRUB monta o menu
O GRUB é o carregador de boot: o primeiro programa que roda depois do firmware e decide qual sistema iniciar. O menu que você vê vem do grub.cfg. Esse arquivo é produzido por scripts em /etc/grub.d/, que leem as variáveis de /etc/default/grub, procuram os kernels instalados e, se o os-prober estiver ativo, detectam outros sistemas, como o Windows.
Ou seja, há três camadas: variáveis (o que você muda no dia a dia), scripts geradores (que você quase nunca toca) e arquivo gerado (que você nunca edita). Quem entende isso para de achar que "o GRUB não salvou".
As variáveis que valem a pena mudar
GRUB_TIMEOUT: segundos de espera antes de subir a entrada padrão.GRUB_TIMEOUT_STYLE:menumostra a lista;hiddenesconde e espera o tempo em silêncio;countdownmostra só a contagem.GRUB_DEFAULT: a entrada padrão. Pode ser um número (começando em 0), o título da entrada ousaved.GRUB_SAVEDEFAULT: comtrueeGRUB_DEFAULT=saved, o GRUB lembra a última escolha.GRUB_CMDLINE_LINUX_DEFAULT: parâmetros passados ao kernel na entrada normal, comoquiet splash.GRUB_DISABLE_OS_PROBER: a partir do GRUB 2.06, oos-probervem desligado por padrão em várias distribuições. Se o Windows sumiu do menu, defina essa variável comofalse.
Como mudar passo a passo
- Faça uma cópia datada do arquivo atual.
- Edite
/etc/default/grubmudando uma coisa de cada vez. - Regenere a configuração e leia a saída do comando.
- Confira as entradas geradas.
- Reinicie e confirme o comportamento antes da próxima mudança.
Exemplo: lembrar a última escolha e esperar 3 segundos
Primeiro, o backup:
sudo cp /etc/default/grub /etc/default/grub.bak-2026-10-17
Depois, edite o arquivo com sudo nano /etc/default/grub e deixe estas linhas assim (as demais ficam como estão):
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=3
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_DISABLE_OS_PROBER=false
O arquivo é lido como script de shell. Aspas que não fecham ou espaço em volta do = quebram a geração. Agora regenere:
# Debian, Ubuntu, Mint
sudo update-grub
# Fedora, RHEL e derivados
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Leia a saída. Ela lista os kernels encontrados e, com o os-prober ativo, uma linha indicando o Windows Boot Manager. Se o Windows não aparece aqui, não vai aparecer no menu. Para ver os títulos exatos das entradas geradas:
sudo grep -E "^(menuentry|submenu)" /boot/grub/grub.cfg
Reinicie. O menu aparece por 3 segundos; escolha o Windows uma vez e, no próximo boot, ele já vem selecionado.
Escolher o sistema só para o próximo boot
Com GRUB_DEFAULT=saved, você pode mandar a máquina subir o Windows uma única vez, direto do Linux, usando o título que o grep mostrou:
sudo grub-reboot "Windows Boot Manager (on /dev/nvme0n1p1)"
sudo reboot
O título acima é um exemplo; copie o da sua máquina. No Fedora, os comandos equivalentes têm o prefixo grub2-. E lá os parâmetros de kernel costumam ser ajustados com grubby, porque as entradas seguem o padrão BLS, em arquivos separados; confira a documentação da sua distribuição antes de editar.
O que deixar quieto
Não apague kernels antigos no primeiro dia. A entrada "Opções avançadas" guarda as versões anteriores, e elas são a sua volta quando o kernel novo não monta o disco ou não reconhece a placa de vídeo. Deixe o gerenciador de pacotes removê-los no ritmo dele.
Não copie temas ou scripts de fórum para dentro de /etc/grub.d/ sem ler. Entradas personalizadas ficam em /etc/grub.d/40_custom, e um erro ali pode impedir a geração do menu inteiro. E não esconda o menu com tempo zero se você tem dual boot: no Ubuntu, com o menu oculto, ainda dá para chamá-lo segurando Shift (BIOS) ou apertando Esc (UEFI) durante a inicialização, mas o tempo para acertar a tecla é curto.
Como voltar se a máquina não subir
Se o menu aparece mas a entrada falha, selecione a entrada e aperte e: você edita os parâmetros só para aquele boot, sem gravar nada, e inicia com Ctrl+X ou F10. Se o menu nem aparece, entre pelo pendrive de instalação no modo "experimentar" e restaure o backup a partir de um chroot (ajuste as partições para as da sua máquina):
sudo mount /dev/nvme0n1p2 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
for d in dev proc sys; do sudo mount --bind /$d /mnt/$d; done
sudo chroot /mnt
cp /etc/default/grub.bak-2026-10-17 /etc/default/grub
update-grub
exit
Se o problema for o sistema não montar a raiz depois do GRUB, o caso é outro: veja kernel panic "Unable to mount root fs".
Erros comuns
- Editar o
grub.cfgdireto. A próxima atualização de kernel apaga a mudança. - Esquecer de rodar
update-grub. O arquivo foi salvo, o menu continua igual e você acha que não funcionou. - Usar
GRUB_DEFAULTnumérico com dual boot. Quando entra um kernel novo, a posição das entradas muda e o padrão aponta para outra coisa. - Apagar kernels antigos para "limpar" o menu. Some a rota de volta quando o kernel novo falha.
- Mudar cinco coisas de uma vez. Se o boot quebrar, você não sabe qual delas causou.
- Não guardar o arquivo anterior. A recuperação vira tentativa e erro com um pendrive.
Checklist
- Existe uma cópia datada de
/etc/default/grub. - As mudanças foram feitas em
/etc/default/grub, não nogrub.cfg. - O comando de regeneração rodou sem erro e listou todos os sistemas.
- O padrão usa
savedou o título da entrada, não uma posição numérica frágil. - Os kernels anteriores continuam no menu de opções avançadas.
- Você tem um pendrive de instalação à mão e sabe quais são as partições raiz e EFI.
- A máquina foi reiniciada e testada depois de cada mudança.
Rode agora ls /etc/default/grub* na sua máquina: existe uma versão anterior do arquivo guardada ao lado, pronta para voltar se o próximo boot der errado?
Referência: https://www.todoespacoonline.com/w/2015/06/como-personalizar-o-grub-no-ubuntu/