Você está na página 1de 4

102.2 - Instalando um gerenciador de boot

GRUB – É a sigla para GRand Unified Bootloader – A função de um bootloader é prover um menu com alternativas de sistemas operacionais e uma interface que permita ao usuário interagir com o sistema em tempo de inicialização passando parâmetros que modificam o comportamento do Kernel em tempo de inicialização. O GRUB veio substituindo o LILO (Linux Loader) em várias distribuições em função de possuir maior suporte e características mais avançadas. O GRUB consegue inicializar o GNU/Linux, Todas as versões do Windows, todos os tipos de DOS, o GNU/HURD, Todos os tipos de BSDs, OS/2 e alguns outros sistemas operacionais. O GRUB é capaz de buscar uma imagem (vmlinuz) do Kernel pela rede ou por cabos seriais. Suporta discos rígidos padrão IDE/PATA ou SATA/SCSI. Possui uma interface simples e que permite interação em tempo de inicialização. O GRUB é capaz de de inicializar sistemas sem discos rígidos e terminais remotos. Um bootloader tipicamente instala um pequeno programa na MBR do dispositivo de inicialização (stage 1) responsável pela chamada do stage 1.5 ou 2 que monta o menu de opções. A MBR fica no setor 0 do dispositivo de inicialização, sendo que o setor possui 512 bytes de tamanho. Uma tabela de particionamento típica do MS-DOS ocupa 64 bytes desses 512, 2 bytes são reservados para um checksum, sobrando 446 bytes para o bootloader de stage 1. O diretório padrão do GRUB (versão 1) é /boot/grub. Verifique que arquivos você encontra nesse diretório? Sim, lá estão os stages 1, 1,5 e o stage2 para os diversos tipos de sistemas de arquivo que GRUB é capaz de inicializar. Além disso, esse diretório contém um arquivo chamado /boot/grub/menu.lst , cuja função é manter as configurações de funcionamento do GRUB. Vamos visualizar seu conteúdo útil descartando os comentários e linhas vazias. Ótima oportunidade para lembrar o comando egrep que faz isso ! ! ! # egrep -v "(^#|^$)" /boot/grub/menu.lst

#Configurações Globais

default

0

fallback

1

timeout

60

color

black

# hiddenmenu

# password –md5 $!blablabla password brasil2010

splashimage

(hd0,0)/boot/grub/splash.xpm.gz

#Configurações por sistema Operacional

# Linux Padrão – Esse é o número 0

title

Debian 5 Lenny - kernel 2.6.26-2-686

root

(hd0,0)

kernel

/vmlinuz-2.6.26-2-686 root=/dev/sda2 ro quiet

initrd

/initrd.img-2.6.26-2-686

savedefault fallback lock

# Linux Modo de Manutenção – Esse é o número 1

title

Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)

root

(hd0,0)

kernel

/vmlinuz-2.6.26-2-686 root=/dev/sda2 ro single

initrd

/initrd.img-2.6.26-2-686

# Teste de memória – Esse é o número 2

title

Debian GNU/Linux, kernel memtest86

root

(hd0,0)

kernel

/memtest86.bin

Vamos ver o que cada opção do menu.lst faz:

O primeiro bloco de opções são globais e modificam o comportamento do GRUB como

um todo.

default 0 – Sistema operacional que será inicializado por padrão.

fallback – Em caso de falha inicie outra imagem.

timeout 60 – O GRUB aguarda 60 segundos antes de inicializar sozinho. Qualquer toque no teclado desativa o contador permanentemente. Assim o sistema se inicia após um enter.

color – Define as cores de fundo, das letras e da barra de seleção.

hiddenmenu – oculta o menu de opções e mostra apenas o contador. Para mostrar o menu tecle ESC.

password – Com a opções --md5 usa um HASH gerado com grub-md5-crypt. Sem a opção usa uma senha em texto plano.

splashimage – Define a imagem de fundo do GRUB

O segundo bloco de opções é referente a uma única entrada que representa um sistema operacional que pode ser inicializado.

title – Define o nome que aparece no menu do GRUB para o S.O

root(0,0) – Define o local onde está armazenado o stage2.

kernel – Define qual o arquivo de Kernel será carregado.

initrd – Define o caminho até o arquivo initrd. (Se for o caso!)

O manual do GRUB (legacy) está disponível na internet no seguinte endereço eletrônico http://www.gnu.org/software/grub/manual/legacy/

1

– Instale o pacote de imagens splash no seu sistema.

#

apt-get update

#

apt-cache search grub-[splash]

(olha uma expressão regular aqui!)

#

apt-get install grub-splashimages

2

– Crie um link simbólico para a imagem em /boot/grub com o nome splash.xpm.gz.

#

ln -sfv /boot/grub/splashimages/fiesta.xpg.gz splash.xpm.gz

3 – Inclua uma linha no /boot/grub/menu.lst conforme o modelo de arquivo deste exemplo. Ajuste a notação GRUB da partição de acordo com sua unidade onde está o /boot.

4 – Faça o comando abaixo para ver se tem algum erro na configuração, se estiver

tudo ok então reboot o computador e veja se está funcionando.

# update-grub (leia atentamente todas as saídas geradas).

A seguir vamos substituir o GRUB pelo LILO e fazer a sua configuração !!!

Instalando o lilo no lugar do GRUB em sistemas DEBIAN!

# apt-cache search ^lilo (opa outra expressão regular !)

# apt-get install lilo

Aparece uma interface de configuração pedindo para rodar liloconfig(8) após a instalação e executar o comando lilo no fim para gravar as informações na MBR. Sem isso não funciona!!! Não reboot até terminar e ter certeza dos passos feitos.

Agora vamos "limpar" o lilo.conf e manter somente o que vamos usar sem os comentários e as linhas vazias. Oba, vamos usar o egrep com expressões regulares de novo então. Primeiro vamos criar um backup do /etc/lilo.conf chamado de lilo.conf.old.

# mv /etc/lilo.conf /etc/lilo.conf.old

Agora não temos mais um lilo.conf precisamos criar um novo !!!

# egrep -v "(^#|^$)" /etc/lilo.conf.old > /etc/lilo.conf

Pronto um arquivo LIMPINHO!

# Arquivo de configuração do LILO ### Seção dos parâmetros globais do LILO ###

lba32

compact

boot=/dev/sda1

root=/dev/sda1

bitmap=/boot/coffee.bmp install=bmp prompt

timeout=60

large-memory

map=/boot/map

vga=normal

### Seção de partições do LILO ###

image=/boot/vmlinuz-2.6.26-2-686

label="Debian_2.6.26"

initrd=/boot/initdr.img-2.6.26-2-686

read-only

image=/boot/vmlinuz-2.6.26-2-686

append=single label="Debian_Single"

initrd=/boot/initdr.img-2.6.26-2-686

read-only

image=/boot/memtest86+.bin

label="Memtest86+"

Vamos ver o que cada opção do lilo.conf faz:

O primeiro bloco de opções são globais e modificam o comportamento do LILO como um todo.

lba32 – Relativo a geometria do disco, onde o kernel possa estar além do cilindro 1024. Sempre utilize !

compact – Faz a leitura dos setores adjacentes, o que reduz o tempo de boot.

boot=/dev/partição – Configura a PARTIÇÃO de boot que contém a MBR.

root=/dev/partição – Define a PARTIÇÃO que deve ser montada como raiz.

bitmap=bitmap_file – Um arquivo contendo uma imagem bitmap que servirá de splash na inicialização. O formato padrão é Windows 640x480 com 8 ou 16 bits de cores de acordo com a placa suporte da placa de vídeo.

install= <interface do menu> [bmp, text ou menu] – Uma interface gráfica, uma de texto e outra com um menu simples.

prompt – Inicia o sistema padrão automaticamente.

timeout=decimos_segundos – O tempo antes de iniciar o boot.

large-memory – indica que initrd pode ser carregado na memoria alta. Não confundir como parâmetro mem=x que indica a limitação de memória para o Kernel.

map=/map – Define o local do arquivo de mapa de LILO.

vga=<opção> - Pode ser normal (80x25 texto), extended (80x50 texto), ask (exibe uma lista com opções de acordo com a capacidade da placa de vídeo), ou um número obtido nessa lista.

bmp-colors=<fg>,<bg>,<sh>,<hfg>,<hbg>,<hsh>

bmp-table=<x>,<y>,<ncol>,<nrow>,<xsep>,<spill> - Layout menu.

bmp-timer=<x>,<y>,<fg>,<bg>,<sh> - Localização do timer no menu.

O segundo bloco de opções é referente a uma única entrada que representa um sistema operacional que pode ser inicializado pelo LILO.

imagem=Kernel – O arquivo que será usado para dar o boot.

initrd=Initrd – O arquivo initrd usado para dar o boot. Initrd significa Initial Ram Disk – Um sistema temporário montado antes da montagem da raiz real.

read-only – Define que o sistema raiz é montado inicialmente como somente- leitura.

label=rótulo – Define um rótulo no menu para o sistema operacional.

append="cadeia de parâmetros" – Parâmetros passados ao Kernel como por exemplo a cadeia de caracteres "mem=96M console=ttyS1,9600"

http://man-wiki.net/index.php/5:lilo.conf

Restaurando o GRUB

# grub-install /dev/sda (Regrava o GRUB na MBR)

# update-grub ( Reconstroí o arquivo /boot/grub/menu.lst)