Configurando o GRUB2 no Debian Squeeze

Os principais arquivos de configuração do GRUB2 são o /boot/grub/grub.cfg, o /etc/default/grub e também os scripts localizados no diretório /etc/grub.d/.

Na verdade, a configuração manual do GRUB2 é feita apenas no arquivo /etc/default/grub e nos scripts do diretório /etc/grub.d/. O arquivo /boot/grub/grub.cfg apesar de ser o principal arquivo de configuração, não deve ser alterado manualmente, esse arquivo será configurado pelo comando update-grub tendo como base o conteúdo dos arquivos anteriores.

/etc/grub.d/

Os arquivos do diretório /etc/grub.d/ são scripts responsáveis por montar o arquivo /boot/grub/grub.cfg. Esses scripts serão executados pelo comando update-grub, por tanto, devem ter permissão de execução.

A ordem de execução desses arquivos segue a ordem alfabética de seus nomes, por exemplo: o arquivo 05_debian_theme é executado antes do 10_linux.

Alguns scripts desse diretorio são:

00_header: é o script que carrega as configurações que estão no arquivo /etc/default/grub, por exemplo: o tempo de espera e a entrada de boot padrão.

05_debian_theme: Define a aparência do GRUB2

10_linux: Localiza os kernels do sistema operacional e cria suas entradas no menu.

20_memtest86+: Cria as entradas do memtest.

30_os-prober: Busca outros sistemas operacionais e cria as suas entradas no menu.

40_custom: é apenas um modelo para criar entradas adicionais no menu do GRUB2.

/etc/default/grub

O arquivo /etc/default/grub não é exatamente um script, nele é possível alterar diretamente o valor de varias variáveis de configuração, por isso, esse arquivo é bem mais amigável que os scripts do diretório grub.d.

Configurações

Configurar as cores do menu:

Tecnicamente o arquivo responsável por essa configuração é o script 05_debian_theme, mas por se tratar de um script, ele exige um certo conhecimento em programação, felizmente existe uma forma mais simples de fazer essa configuração: Crie o arquivo /boot/grub/custom.cfg e dentro dele coloque o seguinte conteúdo:

set color_normal=light-gray/black

set color_highlight=blue/white

set menu_color_normal=magenta-light-grayset

menu_color_highlight=blue/white

Onde:

color_normal : Cor da fonte e do background

color_highlight: Cor da fonte e do background com seleção

menu_color_normal:  Cor da fonte e do background do menu

menu_color_highlight: Cor da fonte e do background do menu com seleção

Alguma das cores possíveis são: black, blue, green, cyan, red, magenta, brown, light-gray, dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow e white.

E pronto, não é necessário rodar o comando update-grub, o arquivo será carregado automaticamente.

Colocar uma imagem no GRUB2

Essa é outra opção que a principio deveria ser configurada no script 05_debian_theme, mas pelo mesmo motivo anterior vou mostrar uma forma alternativa: No arquivo /etc/default/grub altere ou crie a seguinte linha e rode o comando update-grub:

GRUB_BACKGROUND=“coloque aqui o caminho até a imagem”

Uma boa fonte de imagens para o menu GRUB2 é o pacote GRUB2-splashimages, após a instalação, verifique o diretório /usr/share/images/grub/ ( para ver como instalar pacotes no Debian clique aqui )

Alterar a resolução do GRUB2:

Para configurar a resolução da tela do GRUB2 altere a seguinte linha no arquivo /etc/default/grub e rode o comando update-grub:

GRUB_GFXMODE=640×480

Essa configuração altera apenas a resolução da tela do GRUB2, não terá efeito no sistema. É interessante manter a resolução do menu igual a resolução do sistema.

Configurar o boot padrão:

Essa configuração especifica qual a entrada do menu que vai ser executada automaticamente se o usuário não especificar nenhuma até o final do tempo de espera. Para configurar o boot padrão, altere a seguinte linha no arquivo /etc/default/grub e rode o comando update-grub:

GRUB_DEFAULT=0

onde o 0(zero) é a primeira entrada do menu do GRUB2, 1 a segunda, 2 a terceira… Também é possível utilizar GRUB_DEFAULT=saved, assim, a entrada padrão será sempre a última que foi selecionada, ou seja, se na última vez o usuário selecionou a entrada 1, essa será opção padrão até que ele selecione outra.

Ajustar o tempo de espera:

Esse é o tempo que o GRUB2 vai esperar antes de chamar o boot padrão. Para configurar, altere a seguinte linha no arquivo /etc/default/grub e rode o comando update-grub:

GRUB_TIMEOUT=5

Incluir ou retirar o recovery mode:

Para configurar a entrada do recovery mode altere o valor da seguinte linha no arquivo /etc/default/grub e rode o comando update-grub:

GRUB_DISABLE_LINUX_RECOVERY=”true”

se o valor for true, o recovery mode não vai ter sua entrada no GRUB2, se for false vai ter.

Configurar a entrada do memtest:

Para retirar a opção de memtest do menu execute os seguintes comandos:

chmod -x /etc/grub.d/20_memtest86+; update-grub;

Para habilitar essa opção novamente rode os seguintes comandos:

chmod +x /etc/grub.d/20_memtest86+; update-grub;

Se quiser habilitar essa opção, mas o script 20_memtest86+ não estiver no diretório grub.d, instale o pacote memtest86+ .

Personalizar as entradas do menu

Para editar as entradas que estão no menu do GRUB2, é possível copiar essas entradas da configuração que já está pronta no arquivo /boot/grub/grub.cfg (afinal ela está funcionando normalmente) e depois colar no script 40_custom. As entradas do menu do GRUB2 são configuras pela palavra chave menuentry e são delimitadas por chaves {}, segue um exemplo:

menuentry “Titulo da opção” {

aqui ficam os comandos

}

O arquivo /boot/grub/grub.cfg é dividido por blocos BEGIN e END, cada bloco é gerado por um dos scripts do diretório /etc/grub.d/.

É importante guardar o nome dos scripts que geraram os blocos de onde estão as menuentry que serão copiadas. Cuidado, copie apenas as menuentry’s.

Com as entradas já coladas no script 40_custom faça as alterações necessárias e salve. Com isso, se o comando update-grub fosse rodado as entradas personalizadas já estariam no GRUB2, mas as entradas padrão também, ou seja, as entradas ficariam em dobro.

Para evitar isso, é necessário tirar a permissão de execução dos scripts que geram as entradas padrão(os scripts do diretorio grub.d), para isso, execute o comando a seguir para cada um desses scripts, faça somente naqueles que o nome aparecia em um bloco BEGIN e END de onde foram copiadas as menuentry’s, não tire a permissão dos outros…

cd /etc/grub.d/;
chmod -x nome_do_script

E por último rode o comando update-grub.

Criar uma nova entrada para o menu:

A principio dificilmente será necessário criar uma entrada manualmente para o menu do GRUB2, se por algum motivo um sistema não for reconhecido após o comando update-grub, instale o pacote os-prober e rode os comandos abaixo:

os-prober; update-grub;

O os-porber é capaz de localizar sistemas que não estejam sendo reconhecidos pelo GRUB2. Se ainda assim, o sistema não for reconhecido, é possível criar uma entrada no menu manualmente através do script 40_custom que está no diretório /etc/grub.d/. Para criar uma entrada para uma distribuição GNU/Linux insira o seguinte conteúdo no script 40_custom e execute o update-grub:

menuentry “Titulo do Sistema” {

set root=(hd0,1)
linux /boot/vmlinuz-versão_do_kernel
initrd /boot/initrd.img-versão_do_kernel
}

Esse é o mínimo para se criar uma entrada para um sistema GNU/Linux no GRUB2.
Em set root=(hd0,1) está sendo especificado que o sistema está no primeiro disco(hd0) e na primeira partição desse disco. Obs.: Os discos iniciam no zero( hd0, hd1, hd2… ), mas as partições iniciam no 1.

Onde diz “versão_do_kernel” substitua pela versão do kernel que o sistema utiliza. Se tiver acesso a esse sistema, é possível verificar qual a versão do kernel com o comando uname -r.

Para criar uma entrada no menu para um sistema Windows( xp, vista, 7 ) use:

menuentry “Titulo do Sistema” {

set root=(hd0,1)
chainloader +1
}

Mais sobre o GRUB2:
http://www.vivaolinux.com.br/dica/Personalizando-o-Grub-2
http://www.gnu.org/software/grub/
http://www.vivaolinux.com.br/dica/Colocando-senha-criptografada-no-GRUB-2

Uma resposta para “Configurando o GRUB2 no Debian Squeeze”

  1. Amigo,

    Achei interessante seu trabalho, especialmente porque abordou algo que eu sempre quis, mas não imaginava que já existisse! A possibilidade de o Grub 2 adotar, como padrão, o último sistema acessado.

    Segui a dica, para o Ubuntu, mas não fui feliz na primeira tentativa.
    Então, rodando o mundo, encontrei essa complementar:

    http://askubuntu.com/questions/148662/how-to-get-grub2-to-remember-last-choice

    Então, depois que eu inseri uma outra linha, embaixo daquela que você indicou alteração, funcionou!

    Ou seja, além de alterar para “saved” o que estava com um número (“0”), foi preciso incluir outra informação. Ficou assim:

    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=true
    Mandei o “update-grub” e então deu certo!

    Não testei no Debian, para ver se funciona sem essa linha.

    Abraços!

Deixe uma resposta

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