De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Configurando o Lilo e o Grub

Colaboração: Carlos E. Morimoto

Data de Publicação: 26 de Junho de 2005

O lilo e o grub disputam o posto de gerenciador de boot default entre as distribuições Linux. O lilo é o mais antigo e mais simples de configurar, enquanto o grub é o que oferece mais opções. Mas, ao invés de ficar discutindo qual é melhor, vamos aprender logo a configurar e resolver problemas nos dois :-)

O lilo utiliza um único arquivo de configuração, o /etc/lilo.conf. Ao fazer qualquer alteração neste arquivo é preciso chamar o executável do lilo, o "/sbin/lilo" ou simplesmente "lilo" para que ele leia o arquivo e salve as alterações.

Aqui vai um exemplo comentado do arquivo de configuração do lilo, que você pode usar como modelo:

  # A opção abaixo (quase sempre a primeira linha do arquivo) indica aonde o lilo 
  # será instalado. Indicando um dispositivo, como em "/dev/hda" ele é instalado
  # na MBR do HD. Indicando uma partição, como em "/dev/hda1" ele é instalado
  # no primeiro setor da partição. Fazendo isso o sistema não inicializará diretamente,
  # você precisará configurar o gerenciador de boot de outro sistema instalado
  # para carregar o atual.
  
  boot=/dev/hda 
  # (caso você use um HD Serial ATA, e o lilo não esteja sendo instalado corretamente, 
  # experimente mudar esta opção de "/dev/hda" para "/dev/sda", a forma como eles 
  # são detectados nas versões recentes do Kernel 2.6
  # Esta opção ativa o uso de uma imagem como fundo no menu de boot do lilo. 
  # Este recurso é opcional:
  
  bitmap = /boot/kurumin.bmp
  bmp-colors = 255,9,;9,255,
  bmp-table = 61,15,1,12
  bmp-timer = 73,29,255,9
  
  # RESOLUÇÃO do VÍDEO
  # Aqui vai o código que determina a resolução do vídeo, em modo texto (usando frame-
  # buffer) e também no modo gráfico, caso seja usado o driver de vídeo "fb" no arquivo
  # de configuração do X.   
  # O default na maioria das distribuições é "vga=788", que faz o sistema usar resolução 
  # de 800x600, que é compatível com quase todas as placas de vídeo. 
  # Se você quer usar resolução de 1024x768, mude a opção para: vga=791
  # Se você quer usar resolução de 640x480, mude a opção para: vga=785
  # Se a sua placa de vídeo não suporta frame-buffer e você quer de volta a velha tela de 
  # texto padrão, mude a opção para: vga=normal 
  # OBS: Se você tem uma placa GeForce 4 ou GeForce 4 MX, deixe esta opção em "788",
  # pois elas não suportam frame-buffer a 1024x768.
  
  vga=788
  
  # Esta linha indica qual será o sistema operacional default, caso você tenha dois ou mais
  # instalados em dual-boot:
  
  prompt
  default=Kurumin
  
  # Tempo de espera antes de entrar no sistema padrão, em décimos de segundo (o 
  # padrão é 10 segundos). O valor máximo é 30000 (3.000 segundos), não use um 
  
  #número maior que isto, ou o lilo acusará o erro e não será gravado corretamente:
  
  timeout=100
  
  # Aqui vão os parâmetros do Kernel. Se você usa deseja desativar o suporte a apci, 
  # para solucionar problemas, por exemplo, adicione a opção "acpi=off" 
  
  append = "splash=silent apm=power-off nomce quiet devfs=mount"
  
  # As linhas abaixo indicam a localização do executável principal do Kernel e do arquivo
  # initrd, caso seja usado um. Esta é a seção que é duplicada ao instalar um segundo 
  # Kernel
  
  image=/boot/vmlinuz-2.6.8.1-kanotix-10
  label=Kurumin
  root=/dev/hda1
  read-only

Isso pode ser solucionado facilmente, editando o "/etc/lilo.conf" do Mandrake, para que ele seja reinstalado na partição e adicionando as duas linhas que chamam outros sistemas no lilo do Kurumin.

Você pode editar o lilo do Mandrake e regravá-lo rapidamente através do próprio Kurumin (ou outra distribuição instalada), ou dando boot com um CD do Kurumin ou Knoppix.

Dê boot pelo CD e abra um terminal. Defina a senha de root usando o comando "sudo passwd". Agora vire root usando o comando "su" seguido da senha escolhida.

Monte a partição onde o Mandrake está instalado:

  # mount -t reiserfs /dev/hda1 /mnt/hda1

Agora usamos o comando chroot para "entrar" dentro da partição montada, a fim de editar o lilo.conf e gravar o lilo. Todos os comandos dados dentro do chroot são na verdade executados no sistema que está instalado na partição.

É preciso Indicar o sistema de arquivos em que a partição está formatada no comando acima, caso contrário o chroot vai dar um erro de permissão.

  # chroot /dev/hda1

Agora use um editor de texto em modo texto, como o mcedit ou o joe para alterar o arquivo "/etc/lilo.conf" e chame o executável do lilo para salvar as alterações. Depois de terminar, pressione Ctrl+D para sair do chroot.

  # mcedit /etc/lilo.conf
  # lilo

Configurando o grub

Muitas distribuições permitem que você escolha entre usar o lilo ou o grub durante a instalação. Outras simplesmente usam um dos dois por padrão. De uma forma geral, o grub oferece mais opções que o lilo e inclui um utilitário, o update-grub que gera um arquivo de configuração básico automaticamente. Por outro lado, a sintaxe do arquivo de configuração do grub é mais complexa o que o torna bem mais difícil de editar manualmente que o do lilo. O grub inclui ainda um prompt de comando, novamente nenhum exemplo de amigabilidade.

De resto, os dois possuem a mesma e essencial função. Sem o gerenciador de boot o sistema simplesmente não inicializa. :-)

O grub usa o arquivo de configuração "/boot/grub/menu.lst". Este arquivo é lido a cada boot, por isso não é necessário reinstalar o grub ao fazer alterações, como no caso do lilo.

Para entender melhor como o grub funciona, vamos ver como instalá-lo no Kurumin, substituindo o lilo que é usado por padrão.

Em primeiro lugar, você precisa instalar o pacote do grub via apt-get. Ele não possui dependências externas, inclui apenas os executáveis principais. Você pode até mesmo arriscar compilar a versão mais recente, baixada no site do projeto.

  # apt-get install grub

Depois de instalar, crie a pasta "/boot/grub/" e use o "update-grub" para gerar o arquivo "menu.lst". Basta responder "y" na pergunta e o arquivo é gerado automaticamente:

  # mkdir /boot/grub 
  # update-grub 
  
  Testing for an existing GRUB menu.list file...
  Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N) y
  Searching for splash image... none found, skipping...
  Found kernel: /boot/vmlinuz-2.6.8.1-kanotix-10
  Found kernel: /boot/memtest86.bin
  Updating /boot/grub/menu.lst ... done

Agora só falta instalar o grub na MBR usando o comando:

  # grub-install /dev/hda

Ao gravar o grub, ele naturalmente substitui o lilo ou qualquer outro gerenciador de boot que esteja sendo usado.

Se você mudar de idéia mais tarde e quiser regravar o lilo, subscrevendo o grub, basta chamá-lo novamente:

  # lilo

Assim como no caso do lilo, o arquivo de configuração do grub inclui uma seção separada para cada sistema que aparece no menu de boot. O update-grub não é muito eficiente em detectar outros sistemas instalados, por isso depois de gerar o arquivo você ainda precisará adicionar as linhas referentes a eles no final do arquivo "/boot/grub/menu.lst".

Para que o grub inicialize uma cópia do Windows, instalada na primeira partição, /dev/hda1, adicione as linhas:

  title Windows
  rootnoverify (hd0,0)
  chainloader +1

Elas equivalem à opção "other=/dev/hda1" que seria usada no arquivo do lilo. A linha "title" contém apenas a legenda que é mostrada no menu de boot. O que interessa mesmo é a linha rootnoverify (hd0,0), que indica o HD e a partição onde o outro sistema está instalado. O primeiro número indica o HD e o segundo a partição dentro deste. Na nomenclatura adotada pelo grub temos:

  /dev/hda = 0
  /dev/hdb = 1
  /dev/hdc = 2
  /dev/hdd = 3

As partições dentro de cada HD são também nomeadas a partir do zero:

  /dev/hda1 = 0,0
  /dev/hda2 = 0,1
  /dev/hda3 = 0,2
  /dev/hda4 = 0,3
  /dev/hda5 = 0,4
  /dev/hda6 = 0,5

etc...

Se você quisesse que o grub iniciasse também uma instalação do Mandrake no /dev/hda3, cujo lilo (ou grub) foi instalado na partição, adicionaria as linhas:

  title Mandrake
  rootnoverify (hd0,2)
  chainloader +1

A linha "chainloader +1" especifica que o grub vai apenas chamar o gerenciador de boot instalado na partição e deixar que ele carregue o outro sistema, assim como fizemos ao editar o arquivo do lilo.

Você pode usar o grub para carregar diretamente o outro sistema, sem precisar passar pelo outro gerenciador de boot. Neste caso você usaria as linhas:

  title  Mandrake
  root  (hd0,2)
  kernel  /boot/vmlinuz-2.6.8 root=/dev/hda3 ro 
  savedefault
  boot

Veja que neste caso você precisa especificar a localização do executável do Kernel dentro da partição. Você pode especificar também opções para o Kernel e usar um arquivo initrd, caso necessário, como neste segundo exemplo:

  title  Mandrake
  root  (hd0,2)
  kernel  /boot/vmlinuz-2.6.8 root=/dev/hda3 ro vga=791 acpi=off splash=verbose 
  initrd  /boot/initrd.gz
  savedefault
  boot

Assim como no caso do lilo, você pode usar um CD do Kurumin ou Knoppix para reinstalar o grub, caso ele seja subscrito por uma instalação do Windows ou outra distribuição Linux.

Neste caso, depois de dar boot pelo CD, você só precisa montar a partição onde o sistema está instalado, como em:

  # mount -t reiserfs /dev/hda2 /mnt/hda2

E usar o chroot para obter o prompt de comando do sistema que está recuperando:

  # chroot /mnt/hda2

No prompt, você precisa apenas editar o arquivo "/boot/grub/menu.lst", ou gerá-lo novamente usando o comando "update-grub" e reinstalar o grub, usando o comando:

  # grub-install /dev/hda

Gostou da dica? Veja a agenda de cursos presenciais com Carlos E. Morimoto em Porto Alegre e São Paulo

  • Curso: Redes e Servidores Linux (com Carlos E. Morimoto) Em Porto Alegre, início dia 04/07
  • Curso: Programando em Shell Script (com Júlio Cezar Neves) Em Porto Alegre, início dia 11/07

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Carlos E. Morimoto