Guia do Linux/Iniciante+Intermediário/Gerenciadores de partida (boot loaders)/LILO
LILO
editarO 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
editarOs 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. NoDOS
você pode usar o comandofdisk /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
eWindows
pode substituir o setor de partida do HD e assim o gerenciador de partida, tornando impossível a inicialização doGNU/Linux
. Antes de reinstalar oDOS
ouWindows
, verifique se possui um disquete de partida doGNU/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
editarEsta 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 oGNU/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
editarAbaixo 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.