102.2 Instalação e configuração do Boot Manager
Como a maioria das distribuições Linux utiliza o GRUB como gerenciador de boot (e a prova da LPI também foca nele), vamos concentrar nossos esforços nesse bootloader. Atualmente existem duas versões principais: o GRUB Legacy e o GRUB 2, e é importante conhecer ambos.
Principais diferenças entre GRUB Legacy e GRUB 2
| GRUB Legacy | GRUB 2 | |
|---|---|---|
| Arquivos de configuração | /boot/grub/menu.lst/boot/grub/grub.conf | /boot/grub/grub.cfg/etc/default/grub/etc/grub.d/ |
| Referência de discos e partições | hda1 = hd0,0hda5 = hd0,4hdb3 = hd1,2 | hda1 = hd0,1 ou hd0,msdos1hda5 = hd0,5hdb3 = hd1,3 |
| Comandos principais | grub-install /dev/sdagrub-install '(hd0)' | grub-install <dispositivo>update-grubgrub-mkconfig -o /boot/grub/grub.cfg |
| Sintaxe do menu de boot | title "Ubuntu"root (hd0,0)kernel /boot/vmlinuz...default=0timeout=15 | menuentry "Ubuntu" {set root=(hd0,1)linux /boot/vmlinuz...}GRUB_DEFAULT=0GRUB_TIMEOUT=15 |
Esquema de mapeamento de discos (comparativo):
| Disco | GRUB Legacy | GRUB 2 |
|---|---|---|
hd0 | Primeiro disco | Primeiro disco |
hd1 | Segundo disco | Segundo disco |
hd0,2 | Primeira partição do disco 1 | Segunda partição do disco 1 |
hd2,1 | Segunda partição do disco 3 | Primeira partição do disco 3 |
A principal diferença no mapeamento de partições entre GRUB Legacy e GRUB 2 está na indexação das partições: o GRUB Legacy começa a contar a partir do 0, enquanto o GRUB 2 começa a partir do 1 (embora suporte ambas as formas, dependendo da nomenclatura).
Além disso, no GRUB 2, o tipo de particionamento pode aparecer no identificador da partição:
msdosindica que a partição usa o esquema MBR (ex:hd0,msdos1)gptindica o uso do esquema GPT (ex:hd0,gpt1)
Se não houver especificação (hd0,1), o GRUB tenta inferir o tipo com base no disco.
Comandos
No GRUB Legacy, o principal comando era apenas:
grub-install <dispositivo>
No GRUB 2, temos mais ferramentas para lidar com a instalação e geração do menu:
grub-install <dispositivo>Instala o GRUB 2 no setor de boot do dispositivo especificado (por exemplo,/dev/sda), não precisa informar a partição. Ele copia os arquivos necessários e configura o carregador.update-grubegrub-mkconfig -o /boot/grub/grub.cfgAmbos geram o arquivo de configuração principal do GRUB 2 (/boot/grub/grub.cfg) com base nas informações de/etc/default/grube nos scripts do diretório/etc/grub.d/. Oupdate-grubnada mais é que um wrapper script paragrub-mkconfig, presente em muitas distribuições para simplificar esse processo.
Algumas opções do grub2 em /etc/default/grub:
| Opção | Descrição |
|---|---|
GRUB_DEFAULT | Define qual entrada do menu será carregada por padrão. Pode ser um número (índice) ou o nome da entrada (menuentry). |
GRUB_TIMEOUT | Tempo, em segundos, durante o qual o menu de boot é exibido. Após esse tempo, a entrada padrão é carregada. |
GRUB_DISTRIBUTOR | Geralmente preenche o nome da distribuição automaticamente. |
GRUB_CMDLINE_LINUX_DEFAULT | Define parâmetros que serão passados ao kernel apenas no boot padrão. Valores comuns são quiet (suprime mensagens) e splash (exibe uma imagem ou animação). |
GRUB_CMDLINE_LINUX | Parâmetros que serão sempre passados ao kernel, em qualquer entrada. |
GRUB_HIDDEN_TIMEOUT | Se definido, o menu não é mostrado, mas o GRUB espera esse tempo (em segundos) antes de continuar. Pressionar uma tecla durante esse período revela o menu. |
GRUB_HIDDEN_TIMEOUT_QUIET | Se true, suprime a contagem regressiva durante o GRUB_HIDDEN_TIMEOUT. |
GRUB_DISABLE_OS_PROBER | Se true, desabilita a detecção automática de outros sistemas operacionais durante a geração do menu (como Windows ou outras distros Linux). |