projetos | download | linux | privacidade | contato
 
  Produtos | Documentação | Suporte | Treinamento | Conectiva | Cases | Soluções | Parcerias | Imprensa | Oportunidades
Pesquise 
português 
english 
español

SUPORTE

->Suporte Estendido
->Centros de Serviços
->Técnicos Certificados
->Formulário de Suporte
->Abrangência do Suporte
->Acionando o Suporte
->Perguntas e Respostas
->Atualizações
->Livros, Guias e Manuais
->Hardware

    5.1. Como configuro o Grub?

    ### CL 6.0 ###

    O que é o GRUB

    A principal característica do GRUB é a flexibilidade. O GRUB compreende sistemas de arquivos e formatos de kernel executáveis, então é possível carregar um sistema operacional arbitrário da maneira que preferir, sem que seja necessário gravar a posição física do seu kernel no disco.

    Entretanto é necessário especificar o drive (e a partição) onde reside o kernel e o nome do arquivo do mesmo. Para evitar toda vez ficar informando o drive e o nome do arquivo, é possível configurar um pequeno arquivo. GRUB irá localizar e lê-lo e irá fornecer uma interface amigável na qual pode-se selecionar o sistema operacional a ser iniciado. Naturalmente também é possível utilizar a interface de linha de comando para alcançar esses objetivos.

    Sintaxe de Utilização

             (fd0)
    

    Primeiramente o GRUB requer que o nome do dispositivo esteja entre `(' `)'. A palavra 'fd' significa que é um disquete e o número zero é o número do drive, que é contado a partir do zero. Esta expressão significa que o GRUB irá utilizar o disquete por inteiro.

             (hd0,1)
    

    A palavra 'hd' significa que é um disco rígido. O primeiro número '0' inidica o número do drive, que é o primeiro disco rígido, enquanto que o segundo inteiro '1' indica o número da partição. Novamente note que o número da partição é contado do '0' e não do '1'. Essa expressão significa a segunda partição do primeiro disco rígido. Nesse caso o GRUB irá utilizar uma partição do disco ao invés de utilizar o disco inteiro.

             (hd0,4)
    

    Isso especifica a primeira "partição extendida" do primeiro disco rígido. Note que o número das partições extendidas são contados a partir do '4', independente do número atual de partições primárias do disco.

             (hd1,a)
    

    Isso significa a partição BSD 'a' do segundo disco rígido. Não entraremos em detalhes sobre esses tipos de partições.

    Note que o GRUB não distingue IDE de SCSI, ele simplesmente conta os números dos drives a partir do zero, independente do tipo. Normalmente qualquer número do drive IDE é menor do que qualquer número do drive SCSI, embora não seja verdade se você mudar a sequência do boot alterando os drives IDE e SCSI na sua BIOS.

    Agora a questão é, como especificar o seu arquivo ? Novamente veja esse exemplo:

             (hd0,0)/vmlinuz
    

    Isso especifica o arquivo chamado vmlinuz, encontrado na primeira partição do primeiro disco rígido.

    Instalação

    É recomendável criar um disco de emergência para que seja possível recuperar o computador caso o seu disco se torne não-inicializável (imbootável).

    Criando um disco de emergência com um menu de opções



    • - Primeiramente formate o disquete:

              # mke2fs /dev/fd0
      


    • - Crie um diretório grub na raíz do disquete:

              # mount /dev/fd0
              # mkdir /mnt/floppy/grub
      


    • - Copie os arquivos stage1 e stage2 e menu.lst

              # cp /boot/grub/stage? /mnt/floppy/grub
              # cp /boot/menu.lst /mnt/floppy/grub
              # cd /
              # umount /mnt/floppy
      


    • - Rode o GRUB

              # /usr/sbin/grub
              grub> install (fd0)/grub/stage1 (fd0) (fd0)/grub/stage2 0x8000
                    (fd0)/grub/menu.lst
      


    Em seguida reinicie o seu computador com esse disquete no driver e logo após isso será apresentado o menu com as possíveis opções de escolha.

    Criando um disco de emergência

    Para criar um disco de boot do GRUB, é necessário pegar o stage1 e stage2 do diretório /boot/grub, e escrevê-los no primeiro e no segundo bloco do seu disquete.

    Atenção Este procedimento irá destruir qualquer dado armazenado no disquete.

             # cd /boot/grub
             # dd if=stage1 of=/dev/fd0 bs=512 count=1
             # dd if=stage2 of=/dev/fd0 bs=512 seek=1
    

    Após isso reinicie o computador com esse disquete no drive, e siga as instruções abaixo:

    GNU/Linux



    1. Configure o dispositivo root (/), provavelmente o comando find /vmlinuz, find /boot/vmlinuz ou similar irá ajudá-lo.

    2. Carregue o kernel:

                  grub> kernel (hd0,0)/boot/vmlinuz
                  root=/dev/hda1
      

      Nesse caso o arquivo vmlinuz está localizado no primeiro HD e na primeira partição do mesmo e no diretório /boot. Altere esse exemplo de acordo com a sua necessidade.

      Atenção No caso do diretório /boot existirem outros arquivos vmlinuz

      Isso acontece quando é instalado várias versões do linux no mesmo HD, então é necessário especificar o arquivo completo dessa forma:

                  grub> kernel (hd0,0)/boot/vmlinuz-2.2.16-13cl
                  root=/dev/hda1
      

      Se for necessário especificar algum parâmetro do kernel, apenas adicione-os ao comando, por exemplo, para configurar vga para 0x317, faça o seguinte:

                    grub> kernel (hd0,0)/vmlinuz root=/dev/hda1
                    vga=0x317
      
    3. Se for utilizado o initrd, execute o comando initrd depois do kernel. Geralmente utilizado na existência de dispositivos SCSI:

                    grub> initrd (hd0,0)/initrd
      

      Nesse caso o arquivo initrd está localizado no primeiro HD e na primeira partição do mesmo.

    4. Finalmente execute o comando boot.

                    grub> boot
      

      Atenção Se for utilizar um initrd e especificar a opção mem= para o kernel, para ele usar menos memória do que o tamanho atual, será necessário também especificar a mesmo tamanho da memória do GRUB. Para mostrar ao GRUB o tamanho, execute o comando uppermem antes de ler o kernel.

    DOS/Windows

    Um problema em iniciar esses sistemas é se estiver instalado mais do que um conjunto de DOS/WINDOWS no mesmo disco, porque eles se confundem se existir mais do que uma partição primária para o DOS/WINDOWS. Certamente isso deveria ser evitado, mas existe uma solução para isso que é utilizar a técnica de partição hiding (esconder) e unhiding (mostrar).

    Se o GRUB "hiding" (esconde) uma partição DOS (ou Windows), então ela ignora a partição. Se o GRUB "unhiding" (mostra) uma partição DOS (ou Windows), ele detectará a partição. Dessa forma se estiver instalado Dos (ou Windows) na primeira partição e na segunda partição no primeiro disco rígido, para inicar a primeira cópia faça o seguinte:



    • somente o Windows ou o DOS instalado:

               grub> unhide (hd0,0)
               grub> rootnoverify (hd0,0)
               grub> chainloader +1
               grub> makeactive
               grub> boot
      

      Nesse exemplo o windows está instado no primeiro HD e na primeira partição do mesmo

    • um conjunto de duas instalação de windows ou DOS

               grub> unhide (hd0,0)
               grub> hide (hd0,1)
               grub> rootnoverify (hd0,0)
               grub> chainloader +1
               grub> makeactive
               grub> boot
      

      Nesse exemplo uma cópia do windows (ou Dos) está instalado no primeiro HD e na primeira partição do mesmo, e outra cópia do windows (ou Dos) no primeiro HD e na segunda partição do mesmo.

    Interface do usuário

    GRUB possui uma interface com um menu simples para escolher entre as opções vindas de um arquivo de configuração, ou através da linha de comando.

    GRUB procura pelo seu arquivo de configuração logo que ele é carregado. Se um é encontrado então a interface do menu é construída por completo utilizando todas as entradas encontradas no arquivo. Se escolher no menu a opção linha de comando, ou se não foi encontrado nenhum arquivo de configuração, então o GRUB cai para a interface de linha de comando.

    A interface de linha de comando

    A interface de linha de comando fornece um prompt e depois uma área de texto editável parecida em muito com a linha de comando no UNIX ou DOS. Os comandos são um subconjunto daqueles disponíveis no arquivo de configuração, utilizados exatamente com a mesma sintaxe.

    O movimento do cursor e a edição de texto podem ser feito via um subconjunto de funções disponíveis no shell Bash:

    Quando estiver digitando os comandos, caso o cursor esteja antes ou na primeira letra do comando então se a tecla TAB for pressionada irá aparecer a listagem dos comandos disponíveis, e se o TAB for pressionado quando o cursor estiver depois da primeira letra então uma listagem completa será fornecida dos discos, partições e nome dos arquivos dependendo do contexto.

    O menu da interface

    O menu da interace é simples de ser utilizado. Basicamente utilize as teclas de direção para escolher a opção desejada e pressione ENTER para iniciar o sistema desejado. Um timeout (intervalo) está disponível para iniciar uma opção padrão, e isso é desativado no momento que uma tecla é pressionada.

    Caso deseje utilizar a linha de comando basta pressionar a tecla c, que que é exatamente igual quando se executa uma versão do GRUB sem o arquivo de configuração, e para voltar ao menu pressione ESC, ou para editar algum dos ítems do menu pressione e.

    Editando uma entrada no menu

    Se a tecla ESC for pressionada no editor, ele abortará todas as mudanças feitas nas opções de configuração e retornará ao menu principal.

    Quando uma linha particular é selecionada, o editor coloca o usuário em uma versão especial da linha de comando do GRUB afim de editar a linha. Caso a tecla ENTER for pressionada, GRUB irá trocar a linha em questão com as mudanças feitas pelo usuário.

    Para adicionar uma nova linha de comando ao menu de entrada basta pressionar o (adiciona uma linha depois da linha corrente) ou O (adiciona uma linha antes da linha corrente).

    Para apagar uma linha pressione d.