quarta-feira, 23 de abril de 2008

Configurando o LILO.


Autor: Hugo Cisneiros


O LILO é um dos mais importantes softwares do Linux, é ele quem carrega o kernel no seu sistema para começar a funcionar! Entender a configuração dele é muito importante, principalmente para quem tem muitos sistemas numa mesma máquina. Com o LILO, é possível gerenciar partições e assim bootar em diferentes sistemas operacionais. É com ele que fica possível colocar por exemplo, o Windows e o Linux na mesma máquina.

O arquivo de configuração do LILO é o /etc/lilo.conf. É editando ele que você vai poder configurar o LILO conforme as suas necessidades. Um arquivo comum para uma máquina que possui dois sistemas (Linux e Windows) segue no exemplo abaixo:

# Arquivo de configuração do LILO

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

boot=/dev/hda
vga=normal

message=/boot/mensagem.txt
prompt
timeout=150

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

# Partição Linux

image=/boot/vmlinuz-2.2.17
root=/dev/hda1
label=Linux
read-only

# Partição Windows

other=/dev/hdb1
label=Windows
table=/dev/hdb

Como você pôde ver no exemplo acima, a configuração do LILO é divida em duas partes: configuração global e configuração de partições. A configuração global carregará consigo algumas informações sobre o funcionamento geral do LILO, como ele vai se comportar, aonde, quando, porque, cade, com quem e fazendo o que :) Na configuração de partições se define as opções de sistemas que o LILO vai bootar. Vamos ver passo-a-passo aqui as opções mostradas no exemplo acima, e também algumas opções adicionais que não estão no exemplo acima, mas você pode usar se
quiser:

Seção de configuração Global

# boot=/dev/hda

Aqui indica onde o LILO irá ser instalado. A maioria dos casos é ele ser instalado na MBR (Master Boot Record), que é o /dev/hda, e deve funcionar
perfeitamente (a não ser que seu sistema tenha frescura). Mas se você não quiser instalar na Master Boot Record e quiser por exemplo, instalar em um disquete, substitua /dev/hda por /dev/fd0.

# vga=normal

Esta opção indica o modo VGA que o console do Linux irá rodar. Há várias opções que deixam a tela maior, as letras pequenininhas, ou letras maiores
com tela menor, o que seja. Se você colocar 'vga=ask', antes de bootar no sistema, ele vai te dar uma série de opções para você escolher. Cada opção irá deixar o tamanho do console diferente... Experimente! Outro jeito de mudar o tamanho do console é usando o programa SVGATextMode, que é muito melhor pois você não precisa reiniciar a máquina para escolher no LILO, qual resolução você quer.

# message=/boot/mensagem.txt

Esta opção é combinada com a opção 'prompt'. Antes do LILO dar o prompt, ele irá mostrar na tela o conteúdo do arquivo /boot/mensagem.txt. Você
pode colocar um deseínho ou qualquer coisa que quiser para ele mostrar durante o LILO. Um menuzinho com as opções é o que a maioria das pessoas
costuma colocar :)

# prompt

Indica que o LILO vai automaticamente para o prompt. Você pode não colocar esta opção, então o LILO simplesmente vai ficar esperando você apertar CTRL, ALT ou SHIFT para ativar o prompt e você poder digitar algo nele.

Esta opção tem muito haver também com as outras opções 'timeout' e 'delay'.

# timeout=150

O tempo de duração que você tem para digitar algo no prompt. Se este tempo passar o LILO automaticamente vai bootar no sistema padrão. O tempo é determinado em décimos de segundos, ou seja, 150 corresponde a 15 segundos (tire/acrescente o zero do final).

# delay=150

(Não usado no exemplo). Funciona da mesma maneira que o timeout, só que ele serve para quando não se coloca o parâmetro timeout. Ele vai esperar até você apertar o CTRL, ALT ou SHIFT para ativar o prompt, e se não digitar isso, boota no sistema padrão automaticamente.

# password=zecapagodinho

(Não usado no exemplo). Esta opção define uma senha para o usuário digitar toda vez que for bootar um sistema pelo LILO. Não existe forma de
criptografar esta senha, então qualquer um que tiver acesso ao seu sistema poderá ver, se o arquivo /etc/lilo.conf tiver com permissão de leitura
para todo mundo. Aqui a senha está como 'zecapagodinho', mude para uma senha decente se quiser que aquele teu irmão chato não use seu computador :)

# single-key

(Não usado no exemplo). Esta opção é bem interessante. Ele permite que o usuário ao invés de digitar o nome do sistema no prompt e dar enter para
bootar no sistema, possa simplesmente apertar uma tecla e pronto, o sistema boota. É muito mais prático, e é combinado com a opção 'alias' na
configuração de partições.

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, para um exemplo disso :)). Vejamos aqui os parâmetros para a partição Linux que definimos:

# image=/boot/vmlinuz-2.2.17

Aqui você vai indicar onde está a imagem do kernel do Linux que você compilou ou que já vem na sua distribuição. Geralmente as imagens estão no
diretório /boot (ou também na raiz), com o nome vmlinuz, ou vmlinux. No exemplo acima eu indiquei para ele usar o arquivo /boot/vmlinuz-2.2.17,
que aqui é o kernel 2.2.17 que eu compilei.

# root=/dev/hda1

Onde se encontra o seu Linux, aqui você só precisa indicar em que partição está localizado o seu sistema.

# label=Linux

Aqui é o 'nome' que você vai dar para esta configuração de partição. No caso aqui é Linux, então quando aparecer o prompt do LILO (LILO boot: ),
eu digito Linux, dou enter e o LILO boota o sistema. Também existe a opção 'alias', que é o equivalente só que para a opção 'single-key', descrita
nas opções globais.

# read-only

Partições Linux têm sempre de ter esta linha, pois ela indica que o LILO tem de montar a partição como somente leitura. Para que isso? Bem, no boot
o Linux verifica seu sistema de arquivos, e para ele verificar, tem de estar somente-leitura. Depois que ele verifica, ele remonta a partição para leitura-escrita.

# alias=1

(Não usado no exemplo). Esta opção é combinada com a opção global single-key. Ao invés de eu ter que digitar no prompt do LILO a palavra
definida na opção 'label', eu apenas aperto uma tecla e ele boota. No exemplo que usei aqui a tecla para bootar a partição é o número 1.

Estas foram as opções para uma partição Linux. Se você quiser colocar uma Windows (como no exemplo que usei anteriormente), você só tem que
substituir algumas coisinhas, como veremos a seguir:

# other=/dev/hdb1

Equivale á opção 'image' da partição Linux. Aqui você indica em que partição seu Windows está instalado.

# label=Windows

Mesma coisa que na partição Linux, só que aqui eu coloquei a palavra
'Windows' ao invés de 'Linux'. Você pode colocar o nome que quiser à
vontade.

# table=/dev/hdb

O HD em que se encontra a partição.

Assim você poderá ir montando um arquivo de configuração com o quanto de sistemas quiser. Nota: algumas vezes me referi que o LILO boota no sistema 'padrão'. O sistema padrão é definido pela ordem que você coloca os sistemas na configuração de partições... No exemplo anterior, a partição Linux é a padrão porque defini ela primeira no arquivo.

Mensagens de erro do LILO

Quando o LILO é carregado, ele mostra a palavra "LILO". Cada letra é impressa na tela depois ou antes de alguma ação específica. Se o LILO
falhar em alguma ação, as letras impressas na tela podem ser usadas para identificar o problema. Preste atenção que alguns digitos hexa podem
aparecer depois do primeiro "L" se algum problema transitório ocorrer no disco rígido. A não ser que o LILO pare neste ponto, gerando uma corrente
de erros sem fim, os digitos hexa não indicam um problema sério.

(nada) Nenhuma parte do LILO foi carregada. Ou o LILO não está instalado ou a partição em que o setor de boot está alocado nao está ativa.

L - O primeiro estágio do carregador de boot foi carregada e inicializada, mas não pode carregar o segundo estágio. O código de erro de dois digitos indica o tipo do problema. Isto geralmente indica um erro na mídia(o HD no caso) ou os parametros do HD não foram colocados corretamente.

LI - O primeiro estágio do carregador de boot pode carregar o segundo estágio, mas não pode executá-lo. Isto pode ser causado pelos parâmetros
do HD não terem sido colocados corretamente ou por mover /boot/boot.b sem executar o instalador de map.

LIL - O segundo estágio do carregador de boot foi inicializado, mas não pode carregar a tabela de descrição do arquivo map. Isto geralmente é
causado por um erro de mídia(HD) ou pelos parâmetros do HD não terem sido colocados corretamente.

LIL? - O segundo estágio do carregador de boot foi inicializado em um endereco incorreto. Isto pode ser causado pelos parâmetros do HD não terem
sido colocados corretamente ou por mover /boot/boot.b sem executar o instalador de map.

LIL - A tabela de descrição está corrompida. Isto pode ser causado pelos parâmetros do HD não terem sido colocados corretamente ou por mover
/boot/boot.b sem executar o instalador de map.

LILO - Todas as partes do LILO foram carregadas com sucesso.

Mega-exemplo

No exemplo a seguir, vou apresentar uma configuração do LILO para 4 sistemas diferentes! São no total 3 HDs, e também duas opções para kernels
diferentes, mas no mesmo sistema. Combino aqui também o arquivo /boot/mensagem.txt, a opção global single-key e uma senha.

# /boot/mensagem.txt

--------------------------------------------
Exemplo de mega-configuração do LILO rodando
--------------------------------------------
Digite as opções para bootar em cada sistema:

[1] - Slackware Linux usando kernel 2.2.16
[2] - Conectiva Linux 5.1 usando kernel 2.2.17
[2] - Conectiva Linux 5.1 usando kernel 2.2.16-cl6
[3] - Debian 2.2 usando kernel 2.2.17
[4] - Debian 2.2 usando kernel 2.2.18
[5] - Ruindows e Nojenta e Oitxo

--------------------------------------------

# /etc/lilo.conf

# Arquivo de configuração do LILO

### Seção de parâmetros globais do LILO ###
boot=/dev/hda
vga=normal
password=boboalegre

message=/boot/mensagem.txt
prompt
timeout=100
single-key

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

# Slackware Linux usando kernel 2.2.16

image=/boot/vmlinuz-2.2.16
root=/dev/hda1
label=Slackware
read-only
alias=1

# Conectiva Linux 5.1 usando kernel 2.2.17

image=/boot/vmlinuz-2.2.17
root=/dev/hda2
label=Conectiva1
read-only
alias=2

# Conectiva Linux 5.1 usando kernel 2.2.16-cl6

image=/boot/vmlinuz-2.2.16-cl6
root=/dev/hda2
label=Conectiva2
read-only
alias=3

# Debian 2.2 usando kernel 2.2.17

image=/boot/vmlinuz-2.2.17
root=/dev/hdb1
label=Debian1
read-only
alias=4

# Debian 2.2 usando kernel 2.2.18

image=/boot/vmlinuz-2.2.18
root=/dev/hdb1
label=Debian2
read-only
alias=5

# Ruindows e Nojenta e Oitxo

other=/dev/hdc1
label=Ruindows
table=/dev/hdc
alias=6

# Fim da configuração do LILO

Instalando o LILO

Tá, você configurou tudinho, mas falta um pequeno detalhe: instalar! Toda vez que você modifica alguma configuração você tem de instalar/atualizar o LILO. Para isso, esteja como root e faça o comando:

# /sbin/lilo

Caso você queira desinstalar o LILO daonde você colocou, você utiliza a opção -U, assim:

# /sbin/lilo -U

Ou no DOS, você pode usar o comando "fdisk mbr" para desinstalar.
Nunca se esqueça de instalar o LILO depois de fazer suas alterações, senão nada vai funcionar hein!

Nenhum comentário: