Essa experiência foi executada em um sistema
Debian. Editando e acrescentando no menu do
GRUB 2, os sistemas:
- Debian 7
- Mageia 4
- Sabayon 14.03
- Windows 7
Com o GRUB Legacy, era bem mais fácil fazer as edições (na época, nem tanto. rs!)
Lembrando:
Para começar, com o sistema Debian iniciado e com a certeza do GRUB 2 (pacotes
grub-common,
grub-pc,
grub-pc-bin,
grub2-common e
os-prober) instalado, vamos obter informações para acrescentarmos na edição do menu.
Listaremos a tabela de partições, para sabermos os devices das partições do HDD. Poderemos executar o comando
fdisk -l, caso já saiba o que pertence a cada partição.
Caso não saiba, e que nem eu você tem a mania de rotular as partições, poderemos, no caso do Debian, usar o comando
blkid, que inclusive lista as UUID de cada partição:
Bom, já sabemos o que há em cada partição. Agora, vamos pegar as informações de kernel das distribuições em cada partição
/boot, para podermos editar nosso arquivo do menu do GRUB 2.
Nas imagens abaixo, vemos o
/boot do Debian, o
/boot do Sabayon e o
/boot do Mageia:
Com as informações das partições em mãos, sabendo cada kernel instalado em cada distribuição
GNU/Linux, poderemos fazer a edição almejada.
Para executarmos o menu, vamos editar o arquivo
40_custom - um "template" (modelo de documento vazio para adicionar entradas personalizadas ao menu para outros S.Os.) - que fica no diretório
/etc/grub.d.
O conteúdo do arquivo
40_custom antes da edição, sem nenhum conteúdo para subir o boot!
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
Vemos também, no diretório
/etc/grub.d/, que temos outros arquivos (scripts) de execução para a leitura do GRUB 2 e, assim, subir o menu com as informações de cada script. Mas, não teremos todos eles com o poder de execução, assim, não sendo lidos pelo GRUB 2 e não carregados na tela do mesmo.
Então, tiraremos o poder de execução dos arquivos
10_linux,
20_memtest86+ e
os-prober, com o comando
chmod -x ....
Com a permissão de execução alterada dos arquivos referidos acima, agora, no arquivo
40_custom aberto, faremos a edição do menu para os sistemas instalados.
Como já sabemos, os devices (
sda[x]), as UUIDs das partições e o caminho dos diretórios para o kernel instalado de cada distribuição, acrescentaremos essas informações no arquivo
40_custom e faremos nosso menu personalizado.
* Uma observação a ser analisada, caso tenha outros sistemas que queira inseridos no menu, é em relação aos devices. Se temos um único HDD conectado, ele é reconhecido pelo GRUB como "hd0" (
sda). Caso tenha dois ou mais HDs conectados, o GRUB vai reconhecer como "hd1" (
sdb), "hd2" (
sdc), etc.
Os números das partições não são alterados, ficando o mesmo reconhecido no sda/sdb/sdc, como por exemplo:
- hd0,1 = sda1
- hd1,3 = sdb3
- hd2,2 = sdc2
Tabela:
Linux (GRUB 2)
/dev/sda1 (hd0,1)
/dev/sda2 (hd0,2)
/dev/sdb1 (hd1,1)
/dev/sdb2 (hd1,2)
/dev/sdb3 (hd1,3)
/dev/sdc1 (hd2,1)
/dev/sdc2 (hd2,2)