Aprenda como configurar o GRUB, o Gerenciador de Inicialização do sistema operacional Linux mais utilizado no mundo.O
GRUB (GRand Unified Bootloader), assim como o
LILO é um gerenciador de boot. Seu trabalho é carregar o kernel do Linux ou iniciar outros sistemas operacionais. Ele surgiu da necessidade de um gerenciador de boot livre e por isso foi criado sob o guarda-chuva do projeto GNU.Com o
GRUB, você consegue iniciar vários sistemas diferentes, seja Linux, BSDs, Mac, entre outros. Como neste manual gostamos do Linux, vamos puxar mais o saco dele.
O
GRUB tem algumas diversas vantagens sobre o
LILO e é por isso que a maioria das distribuições estão substituindo o
LILO pelo uso do
GRUB. Além do menu bonitinho para a escolha do sistema operacional, tecnicamente o
GRUB tem algumas boas vantagens:
* Ele acessa diretamente o sistema de arquivos e carrega o kernel através dele. Com isso você não precisa ficar re-instalando o gerenciador na MBR toda vez que fizer alguma alteração.
* Possui uma shell interativa, ao estilo do
bash, que permite o usuário a flexibilidade de controlar todo o gerenciador de boot como queira na inicialização.
* Através do menu interativo de escolha do sistema operacional, você pode editar as linhas de boot já pré-definidas e alterar caso haja algum contra-tempo.
* Permite colocar senha tanto para a edição da linha de boot de um sistema, quanto para iniciar este sistema.
* Suporta boot remoto via o protocolo TFTP.
Então com essas características legais e divertidas, eu aconselho utilizar o
GRUB para gerenciar as suas versões de kernel do Linux.
O arquivo de configuração do
GRUB geralmente está fixo em um lugar, que é o /boot/grub/menu.lst. Muitas distribuições fazem um link para /etc/grub.conf, então editar os dois arquivos funcionam. A seguir, um exemplo de configuração para dois sistemas operacionais: Linux e Windows:
# Exemplo para dois sistemas Operacionais: Linux e Windows!
#
default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
# Partição Linux
title Fedora Core
root (hd0,1)
kernel /boot/vmlinuz-2.6.13-1.1532_FC4 ro root=/dev/hda1 vga=791
initrd /boot/initrd-2.6.13-1.1532_FC4.img
# Partição Windows
title Windows
rootnoverify (hd1,0)
chainloader +1
Exemplo de Arquivo de Configuração do GRUB
No exemplo acima, assim como no
LILO temos duas partes: uma global com as configurações do funcionamento geral do
GRUB e uma parte com as definições dos sistemas. Na seção global, podemos definir muitas coisas como senhas, imagem do menu, cores, entre outros.
Antes de mais nada, é preciso notar que o
GRUB trata as partições de um modo diferente que o Linux. Por exemplo, ao invés de /dev/hda1 ele usa (hd0,0). Veja a tabela abaixo:
Dispositivo
| Equivalente no GRUB |
/dev/hda1 | (hd0,0) - Partição 1 da IDE Primária Master |
/dev/hda2 | (hd0,1) - Partição 2 da IDE Primária Master |
/dev/hdb1 | (hd1,0) - Partição 1 da IDE Primária Slave |
/dev/hdc3 | (hd2,2) - Partição 3 da IDE Secundária Master |
/dev/hdd2 | (hd3,2) - Partição 2 da IDE Secundária Slave |
Comparação de dispositivos para o GRUBNotaO
GRUB detecta e identifica seus HDs automaticamente, fazendo a conversão mostrada acima. Caso você tenha dúvidas quanto à essa equivalência, utilize o seguinte comando para verificar:
# cat /boot/grub/device.mapAgora vamos ver com detalhes das partes de configuração do
GRUB!
Seção de configuração global
default=0
Qual o sistema será iniciado por padrão caso o usuário não escolha nenhum outro. Serve junto com a opção timeout para quando o usuário não fazer nada, ele inicie no sistema padrão. Caso nada seja especificado, o primeiro sistema (número 0) será o padrão.
timeout=5
A quantidade de segundos que o GRUB vai esperar o usuário apertar alguma tecla antes de iniciar no sistema padrão definido pela opção default.
password --md5 $1$QWqsC1$Gtat14yn8l2fy6wUogC080
Configura a senha do
GRUB criptografada em MD5. Faz com que o usuário tenha que digitar uma senha antes de poder editar algum dos itens do menu. Combinada com a opção lock na configuração das partições, faz com que o usuário só consiga iniciar o sistema digitando a senha.
Importante Para gerar esses caracteres malucos criptografados é simples, basta executar o comando grub como root e na shell dele digitar:
grub> md5crypt
Password: *****
Encrypted: $1$QWqsC1$Gtat14yn8l2fy6wUogC080 Então digitando a senha, o programa vai gerar os caracteres malucos e você pode copiar e colar no seu arquivo de configuração como explicado :)
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
A imagem de fundo para o menu de escolha do sistema. No exemplo está indicando uma imagem no diretório /boot/grub/ em formato .xpm.gz (XPM GZipado). Você pode usar uma imagem de fundo, ou cores.
hiddenmenu
Se colocado, o GRUB não mostrará um menu interativo e vai iniciar o sistema padrão depois de X segundos (especificado na opção timeout). Se você quiser acessar o menu mesmo assim, terá que apertar Esc para mostrar o menu.
color frente/fundo [frente/fundo]
Com essa opção você especifica cores para os planos de frente e fundo do menu do GRUB. As cores são especificadas pelos seus nomes em inglês: black, blue, green, cyan, red, magenta, brown and light-gray; dark-gray, light-blue, light-green, light-cyan, light-cyan, light-red, light-magenta, yellow e white.
O segundo argumento funciona da mesma maneira que o primeiro, mas apenas para os itens que estiverem selecionados no menu (que você seleciona com as setas do teclado).
Seção de configuração de partições
Aqui você vai colocar as partições/sistemas que vai querer bootar. Cada conjunto de linhas corresponde à um sistema diferente (veja no exemplo anterior). Vejamos aqui os parâmetros para a partição Linux que definimos:
title Fedora Core
Aqui é o título que vai aparecer no menu. No nosso exemplo usamos o "Fedora Core", mas pode ser qualquer outra coisa!
root (hd0,1)
A partição em que seu root se encontra. Lembrando que essa partição tem que ser onde está o /boot, que é onde fica a imagem do kernel.
kernel /boot/vmlinuz-2.6.13-1.1532_FC4 ro root=/dev/hda1 vga=791
O caminho do kernel para fazer o boot, junto com as opções do kernel. Aqui você vai usar a mesma coisa que no LILO por exemplo.
initrd /boot/initrd-2.6.13-1.1532_FC4.img
Onde se encontra o arquivo initrd do kernel atual. O initrd contém módulos e informações iniciais para o sistema poder iniciar. Ele é carregado um pouco depois do kernel.
lock (não-especificado no exemplo)
Com a opção lock, você faz com que o usuário tenha que digitar uma senha antes de iniciar o sistema. Combine esta opção com o parâmetro global password, explicado anteriormente.
Importante
Se for usar o parâmetro lock, use-o logo após a linha do parâmetro title, pois só assim todas as opções de início são bloqueadas.
Estas foram as opções para uma partição Linux. Se você quiser colocar uma Windows (como no exemplo que usei anteriormente), você só terá que substituir algumas coisinhas, como veremos a seguir:
title Windows
Mesma coisa que anteriormente, é o título, que no caso agora vai ser Windows.
rootnoverify (hd1,0)
Especifica a partição root do sistema, mas ao contrário da opção root, não monta a partição. Como o boot do Windows é direto e não precisa ser carregado um kernel pelo GRUB (ele tem seu próprio carregador), então é necessário não montar a partição do Windows.
chainloader +1
Carrega a partição chamando um outro gerenciador de boot, que é o caso do próprio do Windows.
E assim com essas opções, você pode ir montando o seu menu de inicialização do
GRUB como quiser!
Mega-exemplo
Vou apresentar um arquivo de configuração para 4 sistemas diferentes, com senha e tudo mais:
# Arquivo de configuração do GRUB
# Seção de parâmetros globais do GRUB
default=0
timeout=10
# password boboalegre
password --md5 $1$H35tC1$l45i5oNTY0UaNxZ8TjylF.
# Seção de partições do GRUB
# Slackware Linux usando kernel 2.2.16
title Slackware Linux (Kernel 2.2.16)
root (hd0,0)
kernel /boot/vmlinuz-2.2.16 ro root=/dev/hda1
# Conectiva Linux 5.1 usando kernel 2.2.17
title Conectiva Linux 5.1 (Kernel 2.2.17)
root (hd0,1)
kernel /boot/vmlinuz-2.2.17 ro root=/dev/hda2
initrd /boot/initrd-2.2.17.img
# Conectiva Linux 5.1 usando kernel 2.2.16-cl6
title Conectiva Linux 5.1 (Kernel 2.2.16-cl6)
root (hd0,1)
kernel /boot/vmlinuz-2.2.16-cl6 ro root=/dev/hda2
initrd /boot/initrd-2.2.16-cl6.img
# Debian 2.2 usando kernel 2.2.17
title Debian 2.2 (Kernel 2.2.17)
root (hd1,0)
kernel /boot/vmlinuz-2.2.17 ro root=/dev/hdb1
initrd /boot/initrd.img-2.2.17
# Debian 2.2 usando kernel 2.2.18
title Debian 2.2 (Kernel 2.2.18)
root (hd1,0)
kernel /boot/vmlinuz-2.2.18 ro root=/dev/hdb1
initrd /boot/initrd.img-2.2.18
# Ruindows e Nojenta e Oitxo
title Ruindows e Nojenta e Oitxo
rootnoverify (hd2,0)
chainloader +1
# Fim da configuração do GRUB
Mega-Exemplo Complexo Alienígena de configuração do GRUB
Instalando o GRUB
Na maioria das vezes a distribuição quando é instalada, instala o
GRUB como gerenciador de boot. Com o grub instalado na
MBR do HD, não será mais preciso ficar reinstalando, como é o caso do
LILO. Mas se é a primeira vez que você configurou o
GRUB e está instalando, aí tudo bem. Para instalar na
MBR do HD Master Primário:
# grub-install /dev/hdaSe por acaso você quiser instalar em um disquete:
# grub-install /dev/fd0 Assim você terá um
GRUB no disquete para quaisquer eventualidades. Para desinstalar o
GRUB da
MBR, basta você instalar outra coisa por cima,
LILO ou utilizando o comando fdisk mbr no DOS/Windows.
Este texto é de autoria de Hugo Cisneiros