# Guia do Linux/Iniciante+Intermediário/Gerenciadores de partida (boot loaders)/LILO
## LILO

O LILO (Linux Loader) é sem dúvida o gerenciador de partida padrão para quem deseja iniciar o GNU/Linux através do disco rí­gido. Ele permite selecionar qual sistema operacional será iniciado (caso você possua mais de um) e funciona tanto em discos rí­gidos IDE como SCSI.
A seleção de qual sistema operacional e a passagem de parâmetros ao kernel pode ser feita automaticamente ou usando o aviso de boot: do LILO.

### Criando o arquivo de configuração do LILO

Os dados para a criação do novo setor de boot que armazenará o gerenciador de partida são lidos do arquivo /etc/lilo.conf Este arquivo pode ser criado em qualquer editor de textos (como o ae ou vi). Normalmente ele é criado durante a instalação de sua distribuição GNU/Linux mas por algum motivo pode ser preciso modifica-lo ou personaliza-lo (para incluir novos sistemas operacionais, mensagens, alterar o tempo de espera para a partida automática, etc).
O arquivo /etc/lilo.conf é dividido em duas seções: Geral e Imagens. A seção Geral vem no inicio do arquivo e contém opções que serão usadas na inicialização do Lilo e parâmetros que serão passados ao kernel. A seção Imagens contém opções especificas identificando qual a partição que contém o sistema operacional, como será montado inicialmente o sistema de arquivos, tabela de partição, o arquivo que será carregado na memória para inicializar o sistema, etc. Abaixo um modelo do arquivo /etc/lilo.conf para sistemas que só possuem o GNU/Linux instalado:
Para criar um novo gerenciador de partida através do arquivo /etc/lilo.conf , execute o comando lilo.
No exemplo acima, o gerenciador de partida será instalado em /dev/hda1 (veja [ch-disc.html#s-disc-id Identificação de discos e partições em sistemas Linux, Seção 5.12]) , utilizará um setor de boot compacto (compact), modo de ví­deo VGA normal (80x25), esperará 2 segundos antes de processar automaticamente a primeira seção image= e carregará o kernel /vmlinux de /dev/hda1. Para detalhes sobre opções que podem ser usadas neste arquivo veja [#s-boot-lilo-opcoes Opções usadas no LILO, Seção 6.1.2].
Para mostrar o aviso de boot:, você deverá ligar as teclas Caps Lock ou Scrool lock na partida ou pressionar a tecla Shift durante os dois segundos de pausa. Outro método é incluir a opção prompt na seção global para que o aviso de boot: seja mostrado automaticamente após carregar o Lilo.
Abaixo uma configuração para computadores com mais de um sistema operacional (Usando GNU/Linux e DOS):
O exemplo acima é idêntico ao anterior, o que foi acrescentado foi a opção prompt na seção geral (para que seja mostrado imediatamente o aviso de boot: no momento em que o LILO for carregado), e incluí­da uma imagem de disco DOS localizado em /dev/hda2. No momento da inicialização é mostrada a mensagem boot: e caso seja digitado DOS e pressionado ENTER, o sistema iniciará o DOS. Caso a tecla Enter seja pressionada sem especificar a imagem, a primeira será carregada (neste caso o GNU/Linux).
Você pode substituir a palavra GNU/Linux da opção label por o número 1 e DOS por 2, desta forma o número pode ser digitado para iniciar o sistema operacional. Isto é muito útil para construir um menu usando a opção message. Para detalhes veja [#s-boot-lilo-opcoes Opções usadas no LILO, Seção 6.1.2].
A seção Geral vem do inicio do arquivo até a palavra delay=20. A partir do primeiro aparecimento da palavra image, other ou range, tudo o que vier abaixo será interpretado como imagens de inicialização.
Por padrão, a imagem carregada é a especificada por default= ou a primeira que aparece no arquivo (caso default= não seja especificado). Para carregar o outro sistema (o DOS), digite o nome da imagem de disco no aviso de boot: (especificada em label=) que será carregada. Você também pode passar parâmetros manualmente ao kernel digitando o nome da imagem de disco e uma opção do kernel ou através do arquivo /etc/lilo.conf (veja [#s-boot-lilo-opcoes Opções usadas no LILO, Seção 6.1.2]).
O LILO pode inicializar o seguintes tipos de imagens:
* Imagens do kernel de um arquivo. Normalmente usado para iniciar o GNU/Linux pelo disco rí­gido e especificado pelo parâmetro image=.
* Imagens do kernel de um dispositivo de bloco (como um disquete). Neste caso o número de setores a serem lidos devem ser especificados na forma PRIMEIRO-ÚLTIMO ou PRIMEIRO NÚMERO de setores a serem lidos.
É necessário especificar o parâmetro image= e range=, por exemplo:
Todas as opções do kernel podem ser usadas na inicialização por dispositivo.
* O setor de boot de outro sistema operacional (como o DOS, OS/2, etc). O setor de partida é armazenado junto com a tabela de partição no arquivo /boot/map. É necessário especificar o parâmetro OTHER=dispositivo ou OTHER=arquivo e a inicialização através de um setor de partida possui algumas opções especiais como o TABLE= (para especificar a tabela de partição) e o MAP-DRIVE= (identificação da unidade de discos pelo sistema operacional). Veja o exemplo desta configuração abaixo:
Observações:
* Caso o gerenciador de partida seja instalado no MBR do disco rí­gido (boot=/dev/hda), o setor de boot do antigo sistema operacional será substituí­do, retire uma cópia do setor de boot para um disquete usando o comando dd if=/dev/hda of=/floppy/mbr bs=512 count=1 no GNU/Linux para salvar o setor de boot em um disquete e dd if=/floppy/mbr of=/dev/hda bs=446 count=1 para restaura-lo. No DOS você pode usar o comando fdisk /mbr para criar um novo Master Boot Record.
* Após qualquer modificação no arquivo /etc/lilo.conf , o comando lilo deverá ser novamente executado para atualizar o setor de partida do disco rí­gido. Isto também é válido caso o kernel seja atualizado ou a partição que contém a imagem do kernel desfragmentada.
* A limitação de 1024 cilindros do Lilo não existe mais a partir da versão 21.4.3 (recomendada, por conter muitas correções) e superiores.
* A reinstalação, formatação de sistemas DOS e Windows pode substituir o setor de partida do HD e assim o gerenciador de partida, tornando impossí­vel a inicialização do GNU/Linux. Antes de reinstalar o DOS ou Windows, verifique se possui um disquete de partida do GNU/Linux.
Para gerar um novo boot loader, coloque o disquete na unidade e após o aviso boot: ser mostrado, digite linux root=/dev/hda1 (no lugar de /dev/hda1 você coloca a partição raiz do GNU/Linux), o sistema iniciará. Dentro do GNU/Linux, digite o comando lilo para gerar um novo setor de partida. Agora reinicie o computador, tudo voltará ao normal.

### Opções usadas no LILO

Esta seção traz opções úteis usadas no arquivo lilo.conf com explicações sobre o que cada uma faz. As opções estão divididas em duas partes: As usadas na seção Global e as da seção Imagens do arquivo lilo.conf.
Global
* backup=[arquivo/dispositivo] - Copia o setor de partida original para o arquivo ou dispositivo especificado.
* boot=dispositivo - Define o nome do dispositivo onde será gravado o setor de partida do LILO (normalmente é usada a partição ativa ou o Master Boot Record - MBR). Caso não seja especificado, o dispositivo montado como a partição raiz será usado.
* compact - Tenta agrupar requisições de leitura para setores seguintes ao sendo lido. Isto reduz o tempo de inicialização e deixa o mapa menor. É normalmente recomendado em disquetes.
* default=imagem - Usa a imagem especificada como padrão ao invés da primeira encontrada no arquivo lilo.conf.
* delay=[num] - Permite ajustar o número de segundos (em décimos de segundos) que o gerenciador de partida deve aguardar para carregar a primeira imagem de disco (ou a especificada por default=). Esta pausa lhe permite selecionar que sistema operacional será carregado.
* install=interface - Especifica que interface será usada para exibição de menu com as opções de inicialização ao usuário. As seguintes opções são permitidas:
** text - Exibe uma mensagem de texto (exibida através do parâmetro message=) na tela. Esta é a recomendada para terminais.
** menu - Exibe um menu que lhe permite selecionar através de uma interface de menu a opção de inicialização. Esta é a padrão.
** bmp - Exibe um bitmap gráfico com a resolução de 640x480 com 16 ou 256 cores.
* lba32 - Permite que o LILO quebre o limite de 1024 cilindros do disco rí­gido, inicializando o GNU/Linux em um cilindro acima deste através do acesso . Note que isto requer compatibilidade com o BIOS, mais especificamente que tenha suporte a chamadas int 0x13 e AH=0x42. É recomendado o seu uso.
* map=arquivo-mapa - Especifica a localização do arquivo de mapa (.map). Se não for especificado, /boot/map é usado.
* message=arquivo - Especifica um arquivo que contém uma mensagem que será mostrada antes do aviso de boot:. Nenhuma mensagem é mostrada até que seja pressionada a tecla Shift após mostrar a palavra LILO. O tamanho da mensagem deve ser no máximo 65535 bytes. O arquivo de mapa deve ser novamente criado caso a mensagem seja retirada ou modificada. Na mensagem, o caracter FF (CTRL L) limpa a tela.
* nowarn - Não mostra mensagens de alerta.
* password=senha - Permite proteger todas as imagens de disco com uma única senha. Caso a senha esteja incorreta, o LILO é novamente carregado.
* prompt - Mostra imediatamente o aviso de boot: ao invés de mostrar somente quando a tecla Shift é pressionada.
* verbose=[num] - Ativa mensagens sobre o processamento do LILO. Os números podem ser especificados de 1 a 5, quanto maior o número, maior a quantidade de detalhes mostrados.
* timeout=[num] - Ajusta o tempo máximo de espera (em décimos de segundos) de digitação no teclado. Se nenhuma tecla é pressionada no tempo especificado, a primeira imagem é automaticamente carregada. Igualmente a digitação de senha é interrompida se o usuário estiver inativo por este perí­odo.
Adicionalmente as opções de imagem do kernel append, ramdisk, read-only, read-write, root e vga podem ser especificadas na seção global. Opções por Imagem
As opções por imagem iniciam com uma das seguintes opções: image=, other= ou range=. Opções usadas por cada imagem:
* table=dispositivo - Indica o dispositivo que contém a tabela de partição para aquele dispositivo. Necessário apenas para imagens especificadas por other=.
* unsafe - Não acessa o setor de boot no momento da criação do mapa. Isto desativa algumas checagens, como a checagem da tabela de partição. unsafe e table= são incompatí­veis.
* label=[nome] - Permite especificar um nome para a imagem. Este nome será usado na linha boot: para inicializar o sistema.
* alias=[nome] - Apelido para a imagem de disco. É como um segundo label.
* optional - Ignora a imagem caso não estiver disponí­vel no momento da criação do mapa. É útil para especificar kernels que não estão sempre presentes no sistema.
* password=senha - Protege a imagem atual com a senha. Caso a senha esteja incorreta, o setor de partida do Lilo é novamente carregado.
* restricted - A senha somente é pedida para iniciar a imagem se o sistema for iniciado no modo single.
Também podem ser usados parâmetros de inicialização do kernel no arquivo /etc/lilo.conf, veja a seção [#s-boot-kernelparam Parâmetros de inicialização passados ao kernel, Seção 6.3] para maiores detalhes.

### Um exemplo do arquivo de configuração lilo.conf

Abaixo um exemplo do arquivo /etc/lilo.conf que poderá ser usado em instalações GNU/Linux com o DOS.
Você pode usar o exemplo acima como base para construir sua própria configuração personalizada do /etc/lilo.conf mas não se esqueça de modificar as tabelas de partições para seu sistema. Se você usa o Windows NT 4.0, Windows NT 5.0 (Windows 2000) ou o OS/2, recomendo ler o DOS Windows OS/2-HOWTO.
Após criar seu arquivo /etc/lilo.conf , execute o comando lilo e se tudo ocorrer bem, o LILO será instalado.