Guia do Linux/Iniciante+Intermediário/Gerenciadores de partida (boot loaders)/LILO
LILO
[editar | editar código]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 | editar código]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/Linuxpelo 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/Linuxpara salvar o setor de boot em um disquete e dd if=/floppy/mbr of=/dev/hda bs=446 count=1 para restaura-lo. NoDOSvocê pode usar o comandofdisk /mbrpara 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
Lilonã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
DOSeWindowspode substituir o setor de partida do HD e assim o gerenciador de partida, tornando impossível a inicialização doGNU/Linux. Antes de reinstalar oDOSouWindows, 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
[editar | editar código]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
LILOquebre o limite de 1024 cilindros do disco rígido, inicializando oGNU/Linuxem 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 | editar código]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.