Capítulo 6. Gerenciadores de Partida (boot loaders)

Índice

LILO
Criando o arquivo de configuração do LILO
Opções usadas no LILO
Um exemplo do arquivo de configuração lilo.conf
GRUB
Como o GRUB trabalha com discos e partições
Instalando o GRUB
No disco flexível (somente linha de comando)
No disco flexível (com interface de menu)
Opções do arquivo de configuração
Um exemplo de arquivo de configuração
Usando a linha de comandos do GRUB
Removendo o GRUB do MBR
Como obter informações mais detalhadas
Parâmetros de inicialização passados ao kernel
LOADLIN
Opções do LOADLIN
Exemplo de inicialização com o LOADLIN
syslinux
Criando um disquete de inicialização com o syslinux
O arquivo SYSLINUX.CFG
Formatação dos arquivos de tela do syslinux

Gerenciadores de Partida são programas que carregam um sistema operacional e/ou permitem escolher qual será iniciado. Normalmente este programas são gravados no setor de boot (inicialização) da partição ativa ou no master boot record (MBR) do disco rígido.

Este capitulo explica o funcionamento de cada um dos principais gerenciadores de partida usados no GNU/Linux, em que situações é recomendado seu uso, as características, como configura-lo e alguns exemplos de configuração.

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:

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 “Identificação de discos e partições em sistemas Linux”) , 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 “Opções usadas no LILO”.

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 “Opções usadas no LILO”.

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 “Opções usadas no LILO”).

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

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 “Parâmetros de inicialização passados ao kernel” 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.

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.