O Grub 2 é o sistema de boot padrão do Ubuntu desde a versão 9.10 e de outras distribuições com versões mais recentes, em especial no Kernel 2.6 e 3.x. Conheça o poderoso GRUB 2.

O Grub 2 foi reescrito completamente com o objetivo de permitir grande flexibilidade e ganho de performance. Dentre as diversas melhorias, as principais são:

  • Suporte a script com expressões condicionais e funções;
  • Carga de módulos de forma dinâmica;
  • Modo de Emergência (Rescue Mode);
  • Menus Personalizados;
  • Suporte a temas;
  • Suporte a menu gráfico com tela “splash”;
  • Carga de imagens ISO de Live CDs;
  • Nova estrutura do arquivo de configuração;
  • Suporte a plataforma não x86 (ex: PowerPC);
  • Suporte universal a UUIDs (Universally Unique IDentifier) – identificador usado em sistemas distribuídos.

Upgrade do Grub 1 para o Grub 2

O upgrade do Grub 1 para o Grub 2 é relativamente fácil. Primeiro deve-se instalar o pacote do Grub 2 com o comando:

# sudo apt-get install grub-pc

Depois de instalado, o Grub 2 irá apresentar um menu de teste, com as imagens de kernel encontradas e ainda possibilita que o menu seja editado.

Uma vez definido o menu, o Grub2 pode ser instalado de forma definitiva com o comando:

# sudo upgrade-from-grub-legacy /boot/grub/grub.cfg

Principais Mudanças do Grub 1 para o Grub 2

É importante que você saiba quais são as mudanças importantes do Grub 1 para o Grub 2, a saber:

  • O arquivo /boot/grub/menu.lst foi substituído pelo /boot/grub/grub.cfg;
  • O principal arquivo de configuração é o /etc/default/grub;
  • O sistema de numeração das partições foi alterado;
  • Buscas por outros sistemas operacionais são feitas de forma automática toda vez que o update-grub é executado e são colocadas no menu;

Mudanças na configuração não têm efeito até que o comando update-grub é executado.

Normalmente o /boot/grub/grub.cfg não deve ser editado manualmente pois ele é regravado em updates do pacote do Grub 2, quando um kernel é adicionado ou removido, ou o usuário aciona o comando update-grub. Este comando refaz o menu de carga a partir de outros arquivos de configuração e regrava o /boot/grub/grub.cfg.

Criar uma configuração padrão no grub

O utilitário grub-mkconfig também pode ser utilizado para criar uma configuração para o Grub:

# grub-mkconfig -o /boot/grub/grub.cfg

O principal arquivo de configuração da apresentação do menu fica localizado em /etc/default/grub.

Arquivo /etc/default/grub

Este arquivo contém as principais informações para que o Grub 2 possa montar o menu. Ele define qual será a opção padrão do menu, os tempos de espera por uma ação do usuário, se o menu será apresentado em modo gráfico ou modo texto, dentre outras opções.

Exemplo de /etc/default/grub:

GRUB_DEFAULT=0

#GRUB_SAVEDEFAULT = true

#GRUB_HIDDEN_TIMEOUT=0

GRUB_HIDDEN_TIMEOUT_QUIET=true

GRUB_TIMEOUT=10

GRUB_DISTRIBUTOR=‘lsb_release -i -s 2> /dev/null || echo Debian‘

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

GRUB_CMDLINE_LINUX=””

#GRUB_TERMINAL=console

#GRUB_GFXMODE=640×480

#GRUB_DISABLE_LINUX_RECOVERY=”true”

#GRUB_INIT_TUNE=”480 440 1”

Arquivo de Configuração do grub

Veja o comentário de opção do grub:

GRUB_DEFAULT

Define qual será a opção padrão do menu do Grub. O parametro GRUB_DEFAULT pode assumir um valor numérico, o nome da opção no menu ou a palavra “saved”.

Se o valor for numérico indica a posição do menu em /boot/grub/grub.cfg. Pode indicar também o nome do menu “Ubuntu 2.6.31”.

Se o valor for “saved”, o padrão será definido pelo comando grub-set-default ou grub-reboot.

GRUB_SAVEDEFAULT

Se este parâmetro for “true”, ele diz para o Grub que a opção padrão do menu será sempre o último sistema operacional selecionado no menu.  

GRUB_HIDDEN_TIMEOUT

Este parâmetro define o tempo em segundos que o Grub irá esperar por uma ação do usuário até que a opção padrão do menu seja escolhida de forma automática. Nenhum menu será apresentado, a menos que o usuário aperte alguma tecla (geralmente o ESC).

Se for igual a zero, o sistema operacional padrão irá carregar de forma automática sem esperar por nenhuma intervenção.

GRUB_HIDDEN_TIMEOUT_QUIET

Quando esta opção for “true”, nenhum contador de tempo será apresentado. Se for “false”, um contador decrescente será apresentado com o tempo definido em GRUB_HIDDEN_TIMEOUT.

GRUB_TIMEOUT

Esta opção somente será efetiva se a diretiva GRUB_HIDDEN_TIMEOUT estiver comentada, ou se ativa, quando o usuário pressionar alguma tecla durante o tempo de espera do GRUB_HIDDEN_TIMEOUT.

O GRUB_TIMEOUT define o tempo de espera do menu até que o usuário faça sua escolha. Caso contrário, irá executar a opção padrão.

Se o valor for -1, o Grub irá esperar pelo usuário indefinidamente.

GRUB_DISTRIBUTOR

Determina a descrição do sistema que será usada no menu. Se nada for definido, o Grub utilizará o padrão do sistema, que geralmente é definido pelo comando:

# lsb_release -i -s 2> /dev/null || echo Debian

 SUSE LINUX

GRUB_CMDLINE_LINUX_DEFAULT

Essa diretiva passa parâmetros para o Kernel durante a carga normal do sistema.

GRUB_CMDLINE_LINUX

Essa diretiva passa parâmetros para o Kernel durante a carga do sistema, tanto para carga normal do kernel ou em modo “recovery”.

GRUB_TERMINAL

Esta opção, se for descomentada, desabilita o menu em modo gráfico.

GRUB_GFXMODE

Define a resolução do terminal gráfico do menu.

GRUB_DISABLE_LINUX_RECOVERY

Desabilita o modo de emergência do Kernel se for igual a “true”.

GRUB_INIT_TUNE

Define um “som” que o grub fará antes de apresentar o menu. O formato é[tom da nota] [duração].

Exemplo: Tema de Contatos imediatos de Terceiro Grau:GRUB_INIT_TUNE=”480 900 2 1000 2 800 2 400 2 600 3”

O diretório /etc/grub.d

Os scripts deste diretório são lidos durante a chamada do comando update-grub e suas instruções são incorporadas no arquivo /boot/grub/grub.cfg.

A ordem dos itens no menu do grub é determinada pela ordem dos scripts neste diretório. Os arquivos são lidos de acordo com o numeral que precede seu nome, em ordem crescente.

00_header

Configura os parâmetros iniciais, como o modo gráfico, opção do menu padrão. Estas configurações geralmente são importadas do /etc/default/grub.

05_debian_theme

Configura a tela de fundo, cores do texto, etc.

10_hurd

Usado para localizar Kernels Hurd. Não é utilizado na maioria das distribuições.

10_linux

Identifica os Kernels no dispositivo raiz e cria os itens do menu. Todas as imagens de kernel existentes no /boot serão colocadas no menu.

20_memtest86+

Procura pela imagem em  /boot/memtest86+.bin usado para teste de memória. Para remover esse item, é necessário remover a imagem no diretório /boot.

30_os-prober

Este script procura pelo Linux e outros sistemas operacionais existentes no disco e cria os itens do menu. As variáveis neste arquivo determinam como os nomes irão aparecer no menu.

40_custom

Permite adicionar entradas customizadas no menu do grub.

As configurações são geralmente feitas no arquivo /etc/default/grub.
Não é comum editar diretamente os scripts do diretório /etc/grub.d.
Qualquer alteração feita no /boot/grub/grub.cfg é regravada quando o comando update-grub é executado.

Sequência de Carga do Sistema

O grub2 é executado antes de qualquer sistema operacional. Ele geralmente fará a carga direta do sistema operacional definindo como padrão ou se houver apenas um sistema operacional presente. Se houver mais de um sistema operacional, ele irá apresentar o menu para escolha.

O tempo padrão de espera do menu é de 10s. Se o usuário não fizer nada, ele irá iniciar a carga da opção padrão do menu. A contagem do tempo pode ser paralisada se qualquer tecla for pressionada. O usuário pode forçar a apresentação do menu pressionando a tecla SHIFT durante a carga do grub2.

Nomes das Partições no Grub 2

O sistema de nomear as partições no grub2 foi simplificado em relação ao grub1. A contagem dos dispositivos permanece iniciando de zero.

Um dispositivo sda será nomeado de hd0, bem como um dispositivo sdb será chamado hd1. No entanto as partições seguem a numeração “normal”, de forma que a partição sda5 será nomeada como hd0,5  e sda3 será hd0,3.

Gostou desta aula? Conheça todos os outros comandos do curso de LPIC 101. E veja como passar no exames da LPIC-1

Grand Unified Boot Loader – GRUB 2
Classificado como:                    

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.