Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Aprenda inglês de uma vez por todas

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

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

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

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.01/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1896 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Programando o Android