Guia do Linux/Iniciante+Intermediário/Gerenciadores de partida (boot loaders)/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

editar

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:


     boot=/dev/hda1
     compact
     install=text
     map=/boot/map
     vga=normal
     delay=20
     lba32

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

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):


     boot=/dev/hda1
     compact
     lba32
     install=menu
     map=/boot/map
     vga=normal
     delay=20
     prompt

     image=/vmlinuz
         root=/dev/hda1
         label=linux
         read-only

     other=/dev/hda2
      table=/dev/hda
      label=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:

     image=/dev/fd0
        range=1 512

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:
     other=/dev/hda2
       table=/dev/hda
       label=DOS
       map-drive=0x80
        to = 0x81
       map-drive=0x81
        to = 0x80

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

editar

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

editar

Abaixo um exemplo do arquivo /etc/lilo.conf que poderá ser usado em instalações GNU/Linux com o DOS.


     boot=/dev/hda1        #Instala o LILO em /dev/hda1
     compact
     install=menu
     map=/boot/map
     message=/etc/lilo.message  #mensagem que será mostrada na tela
     default=1          #Carrega a Imagem especificada por label=1 como padrão
     vga=normal         #usa o modo de video 80x25 ao iniciar o Linux
     delay=20           #aguarda 2 segundos antes de iniciar a imagem padrão
     lba32              #permite quebrar o limite de 1024 cilindros na inicialização
     prompt             #mostra o aviso de "boot:" logo que o LILO é carregado

     image=/vmlinuz     #especifica o arquivo que contém a primeira imagem
       root=/dev/hda1   #partição onde a imagem acima esta localizada
       label=1          #identificação da imagem de disco
       read-only        #monta inicialmente como somente leitura
       password=12345   #Usa a senha 12345
       restricted       #somente quando iniciar com o parâmetro single

     other=/dev/hda2    #especifica outro sistema que será carregado
      table=/dev/hda    #a tabela de partição dele está em /dev/hda
      label=2           #identificação desta imagem de disco
      password=12345    #pede a senha antes de iniciar este sistema

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.