Novidades e mudanças na estrutura e configuração do Grub2, fique por dentro!

Neste documento abordo as mudanças existentes na nova versão do Grub designada grub2, que por sua vez traz novas formas e conceitos para a manipulação do mesmo. Vale a pena conferir.

[ Hits: 38.797 ]

Por: José Cleydson Ferreira da Silva em 04/01/2010


Instalando e configurando grub 2



Instalação do grub2

Em alguns casos a instalação do grub2 se dá pelo processo de instalação normal através do CD de instalação. Sistemas mais atualizados que geralmente utilizam kernel 2.6.31 provavelmente utilizarão o novo GNU Grub, porém pode-se instalá-lo juntamente de outros pacotes adicionais que o compõem. Se estiver usando Ubuntu 9.10 Linux, use um comando para verificar a versão do grub atual. Caso não esteja usando a versão mais recente instale o pacote mais atual utilizando o utilitário aptitude ou gerenciador da distribuição que está usando. O quadro 1, localizado abaixo está apresentando os procedimentos para a instalação.

Processo de instalação do Grub 2:

Checar a versão que está usando:

grub-install -v

Instalar versão atual do grub2 (beta):

sudo aptitude install grub2

Ou atualizar o grub1:

update-grub

Identificar o HD onde se encontra o grub:

sudo grub-prob -t device /boot/grub

Após a instalação você irá notar as seguintes diferenças, uma delas é que ao reiniciar o computador ao pressionar a tecla (ESC) não conseguirá entrar nas opções de escolha de boot, entendendo que a mesma por padrão só aparece se houver dois sistemas instalados, mas se houver a necessidade de escolher alguma versão do kernel ou se for preciso entrar por algum motivo precisará pressionar a tecla (SHIFT).

Outra mudança importante é o arquivo /boot/grub/menu.lst, que passou a ser /boot/grub/grub.cfg, que utiliza scripts para a elaboração do arquivo. O diretório possui arquivos modulares que compõem o grub, eles são responsáveis pelo funcionamento correto e quais componentes podem ser adicionados ou removidos. Geralmente configurações eram feitas no menu.lst, agora podemos fazer as mesmas configurações no grub.cfg, porém não aconselhadas, pois os arquivos de configuração que têm prioridade estão nos diretórios /etc/default/grub e /etc/grub.d. Os arquivos que compõem o /etc/grub.d são lidos na hora em que o computador está sendo iniciado, e por está razão há uma prioridade de execução, a tabela 2 demostra quais arquivos são esses e suas funcionalidades.

Tabela 2:

ArquivoDescrição da utilidade do arquivo
00_headerEssas configurações são importadas
05_debian_theme Configura o splash de inicialização
10_hurd-
10_linux Indica o Kernel no dispositivo
20_memtest86+Indica /boot/memtest86+.bin e menu grub2
30_os-proberIndicam os Sistemas Operacionais instalados
40_customPersonalizar o menu


Configuração dos arquivos do Grub

O arquivo /etc/defaults/grub é responsável pela alteração de configurações padrões do grub, nele podemos configurar o menu de apresentação, qual sistema iniciar por padrão, última sessão usada (último sistema usado), mudar nome do kernel no menu, tempo de espera, resolução no boot, entre outros. Embora seja possível fazer a configuração em três arquivos, bem como diretamente no grub.cfg, /etc/defaults/grub, ou criar um arquivo padronizado que tenha as configurações semelhantes à do grub.cfg. Mas indo por partes a configuração do /etc/defaults/grub está representada na tabela 3.

Tabela 3:

OpçãoConfiguraçãoDescrição
GRUB_DEFAULT0, save, "Ubuntu, Linux 2.6.31-9-generic"Sistema de arranque
GRUB_HIDDEN_TIMEOUT0Ocultar menu
GRUB_HIDDEN_TIMEOUT_QUIETTrue ou FalseNão use
GRUB_TIMEOUT10 Configurar o tempo
GRUB_DISTRIBUTOR`lsb_release -i -s 2> /dev/null || echo Debian`Padrão
GRUB_CMDLINE_LINUX_DEFAULT"quiet splash" Apresentar splash
GRUB_CMDLINE_LINUX"" -
GRUB_TERMINALConsoleDesabilita terminal gráfico
GRUB_GFXMODE640x480Resolução do boot
GRUB_DISABLE_LINUX_UUIDTrueNão use
GRUB_DISABLE_LINUX_RECOVERYTrueNão use


No arquivo /etc/grub.d/40_custom podemos fazer configurações diversas, elas são iguais às configurações do arquivo grub.cfg, embora necessite de duas linhas fundamentais para tornar o arquivo executável. Então poderá copiar algumas funções do arquivo grub.cf, que podem ser as especificações "menuentry" (menu de entrada). Essas opções podem ser customizadas conforme queira o seu menu, portanto, pode seguir o modelo de configuração no exemplo abaixo. Note que no exemplo os textos que estão ilustrados como comentário.

Exemplo 1:

#!/bin/sh

exec tail -n +3 $0

############ Este trecho foi cópia do do fórum do Ubuntu ##################
#Regras para construção de menuentry
#  - a primeira linha inicia com menuentry e finda com {
#  - o que está entre aspas é o que vai aparecer no menu do GRUB 2. Edite como desejar
#  - a última linha do menuentry deve ser }
#  - não deixe espaços em branco no fim das linhas
#  - a linha set root= deve apontar para a localização de inicialização do GRUB2 (sdXY)
#  - referência root da linha Linux deverá apontar para a partição do sistema.  
# Se GRUB 2 não encontra o kernel referenciado, tente substituir a UUID pelo nome do #dispositivo (exemplo: / dev/sda6).

#Este é um exemplo copiado do grub.cfg que após alterado pode ter este aspecto:

menuentry "Ubuntu 9.10" {
   set root=(hd0,2)
   search --no-floppy --fs-uuid --set 22290d2e-82c9-48d5-92c1-ce138634eedc
   linux /boot/vmlinuz-2.6.31-15-generic root=UUID=22290d2e-82c9-48d5-92c1-ce138634eedc ro quiet splash
   initrd /boot/initrd.img-2.6.31-11-generic
}

# Uma entrada de exemplo para uma versão de disco rígido do SystemRescueCD instalado conforme as instruções no site (em sda8). 

menuentry "System Rescue CD" {
   set root=(hd0,8)
   linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
   initrd /sysrcd/initram.igz
}
# Exemplo de entrada para Windows

echo "Adding Windows 43_custom" >&2
menuentry "Windows Vista " {
   insmod ntfs
   set root=(hd0,1)
   search --no-floppy --fs-uuid --set CFFCFF9EECFF7F49
   chainloader +1
}

Para fazer configurações de imagens para o splash precisa-se de instalar o pacote de imagens, após a instalação imagens serão copiadas para o diretório /usr/share/images/grub, o que não se limitará a usuários fazerem seus próprios splash's. Processo de configuração do pacote de splash baixo.

sudo aptitude install grub2-splashimages

Para fazer a configuração dos bootsplash usaremos o arquivo /etc/grub.d/05_debian_theme, dentro do arquivo há um loop que por padrão busca em outro diretório, em /boot/grub e /usr/share/images/desktop-base, portanto você pode fazer duas ações: uma seria colocar a imagem no diretório padrão e indicar o nome da mesma e a outra é adicionar ao loop o diretório /usr/share/images/grub e indicar o nome da imagem como mostra o exemplo 2.

Trechos do arquivo 05_debian_theme:

# Para trocar a cor das descrições seque-se o modelo abaixo que pode ser modificado.
set_mono_theme()
{
cat << EOF
set menu_color_normal=white/black
set menu_color_highlight=black/white
EOF
}

# Verifica para usar imagem de backgrounds

use_bg=false
if [ "$GRUB_TERMINAL_OUTPUT" = "gfxterm" ] ; then
  for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/imagens/grub}/sua-imagem.{png,tga} ; do
    if is_path_readable_by_grub $i ; then
      bg=$i
      case ${bg} in
        *.png)          reader=png ;;
        *.tga)          reader=tga ;;
        *.jpg|*.jpeg)   reader=jpeg ;;
      esac
      if test -e /boot/grub/${reader}.mod ; then
        echo "Found Debian background: `basename ${bg}`" >&2
        use_bg=true
        break
      fi
    fi
  done
fi

Estas linhas estão contidas em /etc/grub.d/05_debian_theme. A cor é definida pela linha abaixo. A primeira cor é a cor do texto, a segunda é a cor de fundo.

set color_normal=black/black

O código abaixo define a cor de entradas selecionadas. A primeira cor é a cor do texto em destaque, a segunda é a cor de fundo da linha selecionada. Se black é a segunda entrada, a linha de destaque será transparente e apenas o texto mudará de cor.

set color_highlight=magenta/black

O black é a cor de transparência GRUB 2 padrão . Altere apenas a cor do primeiro, se utilizar uma imagem de splash. Se o segundo valor nesta linha é alterada para uma cor diferente de black a imagem splash será escondida atrás de um fundo de cor sólida. Após fazer todas essas configurações ou qualquer configuração que se relacione com o grub2, utilize o comando o seguinte comando para validar as alterações:

# update-grub2

Página anterior     Próxima página

Páginas do artigo
   1. Conceitos de inicialização e conhecendo Grub 2
   2. Instalando e configurando grub 2
   3. Considerações
Outros artigos deste autor

Conheça tudo sobre os hardwares que compõem o seu computador com um simples comando

Como migrar banco de dados MySQL para PostgreSQL

Implementando servidor de aplicações PHP utilizando Zend Framework

Implementando rotas estáticas no Linux com route

Bioinformática - Análise Filogenética com Clustalx

Leitura recomendada

CruxPorts4Slack - O ports para Slackware

Weechat - Conheçam este cliente peso-pena para IRC

CACIC - Configurador Automático e Coletor de Informações Computacionais

Instalando o Android SDK na plataforma Linux

Taskwarrior, o Guerreiro das Tarefas - Gerenciar sua Lista TODO no Terminal

  
Comentários
[1] Comentário enviado por HolyMurderer em 04/01/2010 - 14:45h

Trás, de traseira, em vez de traz, do verbo trazer... Bem "escrevido"... (sim, estou a ser sarcástico).

[2] Comentário enviado por cleysinhonv em 04/01/2010 - 16:39h

Olá HolyMurderer,

Obrigado pela observação, já pedi ao moderador para gentilmente fazer essa correção. Obrigado pela contribuição.


[3] Comentário enviado por removido em 05/01/2010 - 17:11h

Artigo sobre grub 2 mais esclarecedor até agora, minha única ressalva é: melhor explicar para que serve determinada linha de arquivo ou um parâmetro do que apenas dizer não use. Quanto ao resto meu camarada, meus parabéns.

[4] Comentário enviado por cleysinhonv em 06/01/2010 - 07:23h

Olá Da Hora,

Obrigado pelo comentário, as vezes tem opções de configuração que nunca funcionam portanto eu coloquei - Não use - Por não ter funcionado em hipótese alguma. O que na verdade poderia ter colocado algo mais criativo realmente.

Um abraço!

[5] Comentário enviado por magnolinux em 06/01/2010 - 09:33h

muito bom.. realmente estava faltando falar da nova versão do grub, esse tema tem gerado muitos
post..

continue contribuindo com otimos artigos.

abraço.;.

[6] Comentário enviado por cleysinhonv em 06/01/2010 - 10:06h

Olá magnolinux (Magno)

É sempre bom escrever artigos dessa natureza, e entender que é um contexto atual, o grub em minha opnião teve mudanças severas, que podem nos ajudar muito ou atrapalhar.
Obrigado por comentar.

um abraço

[7] Comentário enviado por removido em 06/01/2010 - 11:32h

Olá cleysinhov mais um feedback pro seu artigo:

Testei a opção GRUB_HIDDEN_TIMEOUT_QUIET e funcionou, ela habilita um contador onde mostra o tempo que falta para dar boot no sistema selecionado.

GRUB_HIDDEN_TIMEOUT_QUIET=false ****HABILITA CONTADOR

GRUB_HIDDEN_TIMEOUT_QUIET=true ****CONTADOR DESABILITADO

Abraço.

[8] Comentário enviado por cleysinhonv em 06/01/2010 - 12:15h

# Da Hora

Que ótimo, quando usei essa opção ele ficou infinitamente esperando entrar. Mas acredito que algumas coisas que testei e não funcionaram, devido a atualização da distro (9.04 -> 9.10), via linha de comando e não instalação. Então algumas coisas deram errado. Tenho a mania de documentar tudo que acontece de errado e a forma de resolver para não ter que sofrer duas vezes. Então, poderia ter feito uma nova instalação e testar novamente, mas não tive tempo de fazer isso. Mas é bom o seu feedback que nos ajuda a descobrir boas práticas na hora de configurar. Fico imensamente grato de receber a sua sugestão e feedback, muito obrigado!

Um abraço

[9] Comentário enviado por removido em 06/01/2010 - 14:47h

Pois é me veio uma coisa a mente agora que você falou da atualização da distro. Lembro que logo que vi sobre o novo grub não esperei as atualizações automáticas e atualizei via aptitude, porém todo comando dado no novo grub voltava com um erro pedindo para fazer upgrade com o comando upgrade-from-grub-legacy.
Feito esse comando não teve mais erro, não sei se é o caso.

Abraço.

[10] Comentário enviado por cleysinhonv em 06/01/2010 - 15:25h

# Da_Hora

O comando upgrade-from-grub-legacy, refere-se ao grub 0.97 (legado), mas em minha opnião o grub ficou mais complicado de configurar. Mas precisamos usa-lo e reportar os erros para que possam ser corrigidos rapidamente.


[11] Comentário enviado por carlosfarah em 06/01/2010 - 22:23h

Cara, primeiramente parabéns pelo artigo, ficou muito bom, não foi o fato do "tras" estar escrito com s que o artigo deixou de ser útil, ou seja, sem picuinhas, estamos num site de informática, quer dizer, se o título do site fosse "Viva o Português" o comentário do nosso amigo acima seria altamente últil, porém no entanto...

Ahhhh.... obrigado mais uma vez pela considerações viu!!!!


Vlw!!!!


Ironia: não deixe de ser mais formal no próximo artigo viu!!!!

[12] Comentário enviado por cleysinhonv em 07/01/2010 - 07:21h

Olá Carlos,

Realmente passei despercebido na hora de escrever, forças ocultas as vezes nos faz errar e errar é humano, ajudar quem errou é mais humano ainda, né. O nosso amigo (Português - Portugal, Lisboa) Holy Murderer, acabou me dando uma ajuda sarcástica.

Um abraço Carlos, mais uma vez obrigado!

[13] Comentário enviado por ximenesss em 08/01/2010 - 12:31h

Quando liguei meu Ubuntu 9.10 após uma atualização ele apareceu na primeira tela de boot o seguinte:

GNU GRUB VERSION 1.97 BETA 4

MINIMAL BASH-LIKE LINE EDITING IS SUPORTED FOR THE FIRST WORD, TAB LISTS POSSIBLE COMMAND COMPLIETIONS. ANYWHERE ELSE TAB LISTS POSSIBLE DEVICE/ FILE COMPLETIONS.

o que devo fazer?

[14] Comentário enviado por cleysinhonv em 08/01/2010 - 12:43h

Ola ximenesss (Gabriel)

Como foi essa atualização, você atualizou após a instalação através do CD ou da distro 9.04 para 9.10?

[15] Comentário enviado por kinho228 em 08/01/2010 - 13:08h

adorei o artigo...

continue contibuindo mais..
abração meu amigo..

[16] Comentário enviado por cleysinhonv em 08/01/2010 - 13:36h

Olá kinho228 (Erly)

Obrigado pelo apoio e incentivo.

Um abraço amigo!

[17] Comentário enviado por aleksandre em 12/01/2010 - 08:49h

Parabéns pelo artigo!
Muito útil. Sugiro que vá aprimorando esse post, por exemplo, acrescentando explicações para a opção de ocultar o menu e até como colocar uma senha na inicialização de um dos sistemas (na versão anterior isso era possível, não encontrei referências quanto ao novo); como fazer para eliminar do menu referências ao perigosíssimo recovery mode (que dá acesso de root a qualquer indivíduo) e ao inútil Memory test.
Mas são só sugestões, o artigo já está excelente!
Fica na paz!

[18] Comentário enviado por cleysinhonv em 12/01/2010 - 12:59h

Olá aleksandre,

Realmente poderia ter acrescentado mais algumas coisas, e essas observações que fez são extremamente úteis e louváveis. Quando implementei este documento tive algumas dificuldades de encontrar documentos claros nas pesquisas que relatasse isso, acredito que essa nova versão pode trazer melhorias ou complicações, entendendo que se tornou mais complicado para configurar.
Agradeço imensamente a sugestão, obrigado pelo feedback, tenho certeza que as próximas versão deste documento estará mais e rica e agradável por sugerir essas melhorias.

Um forte abraço!
@cleysinhonv

[19] Comentário enviado por hugo luiz em 23/03/2011 - 21:56h

Muito bom o artigo e bem inteligêbte a forma de como foi eleborado. Com isso pude tirar dúvidas que gardava sobre GRUB. Fico grato pela iniciativa.
vlw


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts