Introdução
Para aqueles que utilizaram o gerenciador de boot Lilo durante um bom tempo podem falar, ele era bem simples de se configurar, lembro-me que utilizei-o na distro Kurumin 5 e tive opções de usá-lo no Kurumin 7em casos de erros do grub, porém com a sua saída de cena e vigorando o grub, muitas pessoas passaram a buscar informações de como configurar o novo gerenciador de boot. Como as pessoas estavam acostumadas como o diretório /etc/lilo.conf, tiveram que se adaptar as novas formas e convenções de configuração. Durante muito tempo a configuração do grub se dava por intermédio do diretório /boot/grub/menu.lst, porém algumas mudanças vieram na versão 1.97 (beta).
Agora há uma nova forma de se configurar e um novo arquivo para se configurar. E o objetivo desse é esclarecer uma melhor forma de se entender e configurar o seu gerenciador de boot. Com isso iremos falar um pouco dos setores de inicialização e a configuração do grub. Mas além dessas mudanças novas funções estão por vir juntamente da nova versão.
Setor de inicialização
Sempre que ligamos o nosso computador, existem instruções que no indicam inicialização do sistema, ou um boot através da rede o que acontece com terminais LTSP (Linux Terminal Server Project). Mas é importante lembrar alguns conceitos envolvidos na inicialização do sistema. Quando instalamos o sistema operacional
Linux em um disco rígido o próprio sistema se encarrega de deixar um um espaço reservado para o primeiro setor, onde conterão informações importantes para a inicialização de um sistema, esse setor é chamado de MBR (Master Boot Record). A MBR é um setor extremamente pequeno que possui informações super importantes para o arranque do sistema operacional, situada no primeiro setor do disco: a trilha zero. Possuindo apenas 512 bytes que são divididos conforme uma estrutura organizacional do disco, como mostra a tabela 1.
Tabela 1
Os primeiros 446 bytes possuem informações de onde iniciar o sistema e para onde irá apontar quando iniciar, ou seja códigos de inicialização. Os 16 bytes de cada celula da coluna de partições são responsáveis por informar onde iniciam e terminam cada partição do sistema e o tamanho que cada uma possui. E as assinaturas ocupam 2 bytes.
Em casos de instalação do sistema operacional Windows nas versões existentes, o gerenciador de boot durante a sua instalação não mantém essa tabela, ocasionado uma destruição da mesma quando instalado, o que causa uma perda total da MBR, porém a eficiência do grub é a permanência dessa tabela quando instalado respeitando a sequência já estabelecida por sistemas operacionais instalados, portanto, ele permite que ao boot você tenha opção de escolher qual sistema você quer usar, o que não há similar no Windows. Como já sabemos parcialmente o que acontece com os setores de inicialização, vamos entender o que há de novo ou que mudou na nova versão do grub.
É por essa e outras razões que o diretório /boot não necessita de grande espaço em disco, são suficientes 100 megas para esse diretório, mas lembre-se na dúvida deixe sempre uma quantidade de espaço livre para casos de atualizações do kernel e arquivos de inicialização, quando há uma atualização e o diretório /boot estiver com pouco espaço ocorrerá um erro de instalação culpando no dpkg (ATENÇÃO: esse é o pulo do gato!). Bom, mas por que deixar o /boot em uma partição separada? Em caso de instalação para servidores é mais seguro fazer esse tipo de instalação, para em caso de erro ou perdas será mais fácil recuperar. Abaixo relato todo processo de inicialização.
1) O BIOS busca um dispositivo que faça o carregamento do SO (normalmente um disco rígido) e move o controle para o MBR ou Master Boot Record. O MBR é situado nos 512 primeiros bytes do disco.
2) O MBR contém o estágio 1 do GRUB. Dado o pequeno tamanho deste estágio, ele apenas carrega o próximo estágio do GRUB (que pode residir em qualquer locação do disco). O estágio 1 pode carregar o estágio 1.5 ou o estágio 2 diretamente.
3) O estágio 1.5 é localizado nos 30 primeiros Kb do disco imediatamente após o MBR. O estágio 1.5 carrega o estágio 2.
4) O estágio 2 recebe o controle, e mostra ao usuário o menu com as opções de sistemas operacionais instalados no sistema.
5) O GRUB carrega na memória o núcleo (kernel) do SO escolhido (ou o padrão) e passa o controle a este núcleo. (Para sistemas operacionais não suportados totalmente pelo GRUB, o controle é passado para outro carregador que continua o processo até carregar o núcleo em memória). (
www.wikipedia.org)
O que mudou e o que há de novo na versão 1.97 do Grub
O grub originou-se de um pacote cujo o nome era
Grand Unified Bootloader, que por sua vez foi implementado por Erik Stefan Boleyn. A nova geração do grub designada GNU Grub 2, substituiu o Grub legacy (legado) versão 0.97, que não está sendo desenvolvido. O desenvolvimento da nova versão do grub está sob a responsabilidade do projeto PUPA que o reescreveu do zero com objetivo de torna torná-lo modular e portável. Com isso alcançar mais robustez e segurança, mas para isso estão propondo as seguintes mudanças.
- Utilizar interface gráfica.
- Carregamento dinâmico de módulos.
- Utilização de linguagens de script, para melhor personalização
- Adicionar suporte para outras arquiteturas, bem como, UltraSparc e PowerPC.
- Criar uma imagem de núcleo mais compacta.
- Suporte para demais línguas (internacionalização).
- Utilizar drivers do Etherboot para implementar o conceito de netboot.
- Estrutura orientada à objeto para sistema de arquivos, discos e entre outros
- Superação à falha de RAID.
Essas mudanças requerem um novo conceito e conhecimento para configuração, portanto colocarei aqui algumas formas e configurações que usei, caso tenham dúvida podem entrar em contato.