quarta-feira, 3 de fevereiro de 2010

Inserindo uma imagem no Grub 2

Inserindo uma imagem no Grub 2

Grub (Grand Unified Bootloader).
O Grub como sabemos é um dos gerenciadores de boot do sistema operacional GNU/Linux, que também é capaz de carregar outros sistemas operacionais, livres e/ou proprietários.

Recentemente ao instalar o Kubuntu 9.10 tive uma surpresa ao tentar configurar o Grub, fui a /boot/grub/menu.lst e:
Cadê o menu.lst?
Pesquisando um pouco vi algo a respeito e resolvi compartilhar, eu vou falar por hora, simplesmente, como inserir uma imagem, no do Grub 2.

Para quem usa apenas o Linux o Grub fica praticamente “invisível”, este artigo pode não ser útil, mas há quem precise de outros sistemas operacionais e deixar o Grub 2 com um aspecto mais atraente é essencial.


A primeira coisa a fazer é instalar o pacote padrão Grub 2 splash images
Supondo que você use uma distro debian-like, faça assim:
$sudo apt-get install grub2-splashimages.

Feito isso vamos editar o arquivo.

O arquivo que vai te interessar neste caso é o:
/etc/grub.d/05_debian_theme

Abra-o com seu editor pessoal.
Lembre-se tem que ser root para editá-lo.
$ sudo vim /etc/grub.d/05_debian_theme


Procure a linha:

for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do

Dentro do primeiro par de chaves{} temos o endereço onde o Grub vai procurar a imagem para usar.
Quando você baixou o pacote grub2-splashimages algumas imagens foram para: /usr/share/images/grub, todas com extensão .tga. É importante que você coloque este endereço aí dentro desta primeira chave, que ficará assim:

for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub}/moreblue-orbit-grub.{png,tga} ; do

Tive algumas experiências frustrantes ao tentar inserir um novo endereço de uma imagem, por exemplo /home/osiel/imagem, dentro desta chave, para o grub já buscar direto no meu diretório /home, preferi depois de algumas tentativas infrutíferas copiar a imagem para dentro do diretório /usr/share/images/grub.

O parâmetro moreblue-orbit-grub, refere-se ao nome da imagem que você vai usar.
Substitua-o pelo nome da imagem escolhida.


Em {png,tga} definimos as extensões, também não tive sucesso colocando imagens .jpg dentro da pasta e inserindo a extensão aí.{png,tga,jpg} Isso não funcionou para mim.

Resolvi então converter a imagem.
$ convert imagem.jpg imagem.tga.

Antigamente no Grub legacy você deveria converter a imagem, reduzir o tamanho, violentar a imagem, já que só tinha direito a usar 14 cores.
Aqui não precisei fazer nada disso, apenas para facilitar procurei uma imagem compatível com a resolução do meu monitor e pronto. A imagem ficou perfeita, sem redução de qualidade.


Depois de feitas as alterações é imprescindível que você execute o comando:
$ sudo update-grub

Este comando fará com que suas alterações sejam gravadas no arquivo /boot/grub/grub.cfg

Não edite este arquivo, ele não foi feito para ser editado, nem mesmo pelo root, este arquivo será atualizado toda vez que você rodar o comando #update-grub.

Um comentário:

  1. Eu criei este artigo e também resolvi publicá-lo no http://www.vivaolinux.com.br/dica/Inserindo-uma-imagem-no-Grub-2, mas por motivos que não interessam agora, eu exclui minha conta daquele site. Este artigo e aquele, que está publicado no site Vol, são o mesmo e pertencem a mesma pessoa, apesar do site Vol não fazer refência ao artigo se o perfil for excluído. Portanto este não se trata de plágio daquele e vice-versa.

    ResponderExcluir