Configurando o Lilo e o Grub

  • Post author:
  • Post category:Sem categoria

Este artigo foi retirado do site Dicas-L da Unicamp.

Por Carlos E. Morimoto (http://guiadohardware.net)

O lilo e o grub disputam o posto de gerenciador de boot
default entre as distribui??es Linux. O lilo ? o mais
antigo e mais simples de configurar, enquanto o grub ? o
que oferece mais op??es. Mas, ao inv?s de ficar discutindo
qual ? melhor, vamos aprender logo a configurar e resolver
problemas nos dois 🙂

O lilo utiliza um ?nico arquivo de configura??o, o
/etc/lilo.conf. Ao fazer qualquer altera??o neste arquivo
? preciso chamar o execut?vel do lilo, o “/sbin/lilo” ou
simplesmente “lilo” para que ele leia o arquivo e salve
as altera??es.

Aqui vai um exemplo comentado do arquivo de configura??o
do lilo, que voc? pode usar como modelo:

# A op??o abaixo (quase sempre a primeira linha do arquivo) indica aonde o lilo
# ser? instalado. Indicando um dispositivo, como em “/dev/hda” ele ? instalado
# na MBR do HD. Indicando uma parti??o, como em “/dev/hda1” ele ? instalado
# no primeiro setor da parti??o. Fazendo isso o sistema n?o inicializar? diretamente,
# voc? precisar? configurar o gerenciador de boot de outro sistema instalado
# para carregar o atual.

boot=/dev/hda
# (caso voc? use um HD Serial ATA, e o lilo n?o esteja sendo instalado corretamente,
# experimente mudar esta op??o de “/dev/hda” para “/dev/sda”, a forma como eles
# s?o detectados nas vers?es recentes do Kernel 2.6
# Esta op??o ativa o uso de uma imagem como fundo no menu de boot do lilo.
# Este recurso ? opcional:

bitmap = /boot/kurumin.bmp
bmp-colors = 255,9,;9,255,
bmp-table = 61,15,1,12
bmp-timer = 73,29,255,9

# RESOLU??O do V?DEO
# Aqui vai o c?digo que determina a resolu??o do v?deo, em modo texto (usando frame-
# buffer) e tamb?m no modo gr?fico, caso seja usado o driver de v?deo “fb” no arquivo
# de configura??o do X.
# O default na maioria das distribui??es ? “vga=788”, que faz o sistema usar resolu??o
# de 800×600, que ? compat?vel com quase todas as placas de v?deo.
# Se voc? quer usar resolu??o de 1024×768, mude a op??o para: vga=791
# Se voc? quer usar resolu??o de 640×480, mude a op??o para: vga=785
# Se a sua placa de v?deo n?o suporta frame-buffer e voc? quer de volta a velha tela de
# texto padr?o, mude a op??o para: vga=normal
# OBS: Se voc? tem uma placa GeForce 4 ou GeForce 4 MX, deixe esta op??o em “788”,
# pois elas n?o suportam frame-buffer a 1024×768.

vga=788

# Esta linha indica qual ser? o sistema operacional default, caso voc? tenha dois ou mais
# instalados em dual-boot:

prompt
default=Kurumin

# Tempo de espera antes de entrar no sistema padr?o, em d?cimos de segundo (o
# padr?o ? 10 segundos). O valor m?ximo ? 30000 (3.000 segundos), n?o use um

#n?mero maior que isto, ou o lilo acusar? o erro e n?o ser? gravado corretamente:

timeout=100

# Aqui v?o os par?metros do Kernel. Se voc? usa deseja desativar o suporte a apci,
# para solucionar problemas, por exemplo, adicione a op??o “acpi=off”

append = “splash=silent apm=power-off nomce quiet devfs=mount”

# As linhas abaixo indicam a localiza??o do execut?vel principal do Kernel e do arquivo
# initrd, caso seja usado um. Esta ? a se??o que ? duplicada ao instalar um segundo
# Kernel

image=/boot/vmlinuz-2.6.8.1-kanotix-10
label=Kurumin
root=/dev/hda1
read-only

Isso pode ser solucionado facilmente, editando o
“/etc/lilo.conf” do Mandrake, para que ele seja reinstalado
na parti??o e adicionando as duas linhas que chamam outros
sistemas no lilo do Kurumin.

Voc? pode editar o lilo do Mandrake e regrav?-lo
rapidamente atrav?s do pr?prio Kurumin (ou outra
distribui??o instalada), ou dando boot com um CD do Kurumin
ou Knoppix.

D? boot pelo CD e abra um terminal. Defina a senha de root
usando o comando “sudo passwd”. Agora vire root usando o
comando “su” seguido da senha escolhida.

Monte a parti??o onde o Mandrake est? instalado:

# mount -t reiserfs /dev/hda1 /mnt/hda1

Agora usamos o comando chroot para “entrar” dentro da
parti??o montada, a fim de editar o lilo.conf e gravar
o lilo. Todos os comandos dados dentro do chroot s?o
na verdade executados no sistema que est? instalado na
parti??o.

? preciso Indicar o sistema de arquivos em que a parti??o
est? formatada no comando acima, caso contr?rio o chroot
vai dar um erro de permiss?o.

# chroot /dev/hda1

Agora use um editor de texto em modo texto, como o mcedit
ou o joe para alterar o arquivo “/etc/lilo.conf” e chame
o execut?vel do lilo para salvar as altera??es. Depois de
terminar, pressione Ctrl+D para sair do chroot.

# mcedit /etc/lilo.conf
# lilo

Configurando o grub
===================

Muitas distribui??es permitem que voc? escolha entre usar
o lilo ou o grub durante a instala??o. Outras simplesmente
usam um dos dois por padr?o. De uma forma geral, o grub
oferece mais op??es que o lilo e inclui um utilit?rio,
o update-grub que gera um arquivo de configura??o b?sico
automaticamente. Por outro lado, a sintaxe do arquivo
de configura??o do grub ? mais complexa o que o torna
bem mais dif?cil de editar manualmente que o do lilo. O
grub inclui ainda um prompt de comando, novamente nenhum
exemplo de amigabilidade.

De resto, os dois possuem a mesma e essencial fun??o. Sem
o gerenciador de boot o sistema simplesmente n?o
inicializa. 🙂

O grub usa o arquivo de configura??o
“/boot/grub/menu.lst”. Este arquivo ? lido a cada boot,
por isso n?o ? necess?rio reinstalar o grub ao fazer
altera??es, como no caso do lilo.

Para entender melhor como o grub funciona, vamos ver como
instal?-lo no Kurumin, substituindo o lilo que ? usado
por padr?o.

Em primeiro lugar, voc? precisa instalar o pacote do
grub via apt-get. Ele n?o possui depend?ncias externas,
inclui apenas os execut?veis principais. Voc? pode at?
mesmo arriscar compilar a vers?o mais recente, baixada no
site do projeto.

# apt-get install grub

Depois de instalar, crie a pasta “/boot/grub/” e use o
“update-grub” para gerar o arquivo “menu.lst”. Basta
responder “y” na pergunta e o arquivo ? gerado
automaticamente:

# mkdir /boot/grub
# update-grub

Testing for an existing GRUB menu.list file…
Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N) y
Searching for splash image… none found, skipping…
Found kernel: /boot/vmlinuz-2.6.8.1-kanotix-10
Found kernel: /boot/memtest86.bin
Updating /boot/grub/menu.lst … done

Agora s? falta instalar o grub na MBR usando o comando:

# grub-install /dev/hda

Ao gravar o grub, ele naturalmente substitui o lilo ou
qualquer outro gerenciador de boot que esteja sendo usado.

Se voc? mudar de id?ia mais tarde e quiser regravar o lilo,
subscrevendo o grub, basta cham?-lo novamente:

# lilo

Assim como no caso do lilo, o arquivo de configura??o
do grub inclui uma se??o separada para cada sistema
que aparece no menu de boot. O update-grub n?o ? muito
eficiente em detectar outros sistemas instalados,
por isso depois de gerar o arquivo voc? ainda precisar?
adicionar as linhas referentes a eles no final do arquivo
“/boot/grub/menu.lst”.

Para que o grub inicialize uma c?pia do Windows, instalada
na primeira parti??o, /dev/hda1, adicione as linhas:

title Windows
rootnoverify (hd0,0)
chainloader +1

Elas equivalem ? op??o “other=/dev/hda1” que seria usada no
arquivo do lilo. A linha “title” cont?m apenas a legenda
que ? mostrada no menu de boot. O que interessa mesmo ? a
linha rootnoverify (hd0,0), que indica o HD e a parti??o
onde o outro sistema est? instalado. O primeiro n?mero
indica o HD e o segundo a parti??o dentro deste. Na
nomenclatura adotada pelo grub temos:

/dev/hda = 0
/dev/hdb = 1
/dev/hdc = 2
/dev/hdd = 3

As parti??es dentro de cada HD s?o tamb?m nomeadas a partir do zero:

/dev/hda1 = 0,0
/dev/hda2 = 0,1
/dev/hda3 = 0,2
/dev/hda4 = 0,3
/dev/hda5 = 0,4
/dev/hda6 = 0,5

etc…

Se voc? quisesse que o grub iniciasse tamb?m uma instala??o
do Mandrake no /dev/hda3, cujo lilo (ou grub) foi instalado
na parti??o, adicionaria as linhas:

title Mandrake
rootnoverify (hd0,2)
chainloader +1

A linha “chainloader +1” especifica que o grub vai apenas
chamar o gerenciador de boot instalado na parti??o e deixar
que ele carregue o outro sistema, assim como fizemos ao
editar o arquivo do lilo.

Voc? pode usar o grub para carregar diretamente o outro
sistema, sem precisar passar pelo outro gerenciador de
boot. Neste caso voc? usaria as linhas:

title Mandrake
root (hd0,2)
kernel /boot/vmlinuz-2.6.8 root=/dev/hda3 ro
savedefault
boot

Veja que neste caso voc? precisa especificar a localiza??o
do execut?vel do Kernel dentro da parti??o. Voc? pode
especificar tamb?m op??es para o Kernel e usar um arquivo
initrd, caso necess?rio, como neste segundo exemplo:

title Mandrake
root (hd0,2)
kernel /boot/vmlinuz-2.6.8 root=/dev/hda3 ro vga=791 acpi=off splash=verbose
initrd /boot/initrd.gz
savedefault
boot

Assim como no caso do lilo, voc? pode usar um CD do Kurumin
ou Knoppix para reinstalar o grub, caso ele seja subscrito
por uma instala??o do Windows ou outra distribui??o Linux.

Neste caso, depois de dar boot pelo CD, voc? s? precisa
montar a parti??o onde o sistema est? instalado, como em:

# mount -t reiserfs /dev/hda2 /mnt/hda2

E usar o chroot para obter o prompt de comando do sistema
que est? recuperando:

# chroot /mnt/hda2

No prompt, voc? precisa apenas editar o arquivo
“/boot/grub/menu.lst”, ou ger?-lo novamente usando
o comando “update-grub” e reinstalar o grub, usando
o comando:

# grub-install /dev/hda