Esse tópico começou com uma tradução livre e resumida de :
Documentação da Comunidade Ubuntu, GRUB 2.
Em 30/05/10 teve uma primeira modificação e sempre que houver necessidade será atualizado.
ApresentaçãoO GRUB 2 foi introduzido no Ubuntu a partir da versão 9.10 (Karmic Koala).
É um software Open Source. Ele é descendente do GRUB (GRand Unified Bootloader)
Foi completamente reescrito para dar ao usuário flexibilidade e performance significativamente aumentadas.
O GRUB anterior passa a ser referido como GRUB legacy.
MelhoriasAs melhorias em relação ao GRUB incluem :
- apoio de scripts
- módulo de carregamento dinâmico
- modo de recuperação
- menus personalizados
- temas
- suporte ao menu gráfico
- imagens iso de Live CD de boot diretamente do disco rígido
- nova estrutura de arquivos de configuração
- suporte universal a UUIDs (não apenas o Ubuntu)
Diferenças entre GRUB 2 e GRUB legacy- numa instalação limpa do Ubuntu 9.10 sem nenhum outro sistema operacional instalado o Grub 2 inicializará diretamente na tela de login ou Desktop.
- pressione a tecla SHIFT para mostrar o menu durante o boot (no GRUB legacy a tecla é ESC).
-
/boot/grub/menu.lst do GRUB legacy foi substituido por
/boot/grub/grub.cfg no GRUB 2.
- não há "/find boot/grub/stage1" no prompt do grub. Stage 1.5 foi eliminado.
- o principal arquivo de menu /boot/grub/grub.cfg do GRUB 2 não é para ser editado mesmo pelo "root".
- grub.cfg é sobrescrito sempre que houver uma atualização, um kernel for adicionado/removido ou o usuário executar update-grub.
- o usuário pode criar um arquivo personalizado em
/etc/grub.d/40_custom com suas próprias entradas. Esse arquivo não será sobrescrito.
- o arquivo de configuração principal para alterar as configraçoes do menu é o
/etc/default/grub.
- existem vários arquivos para configurar o menu - /etc/default/grub mencionado acima e todos os arquivos da pasta
/etc/grub.d.
- mudou a numeração das partições. A primeira partição agora é 1 em vez de 0. O primeiro dispositivo no entanto continua 0 (zero).
- buscas automáticas para outros sistema operacionais como Windows sempre que update-grub é executado.
- nenhuma mudança na configuração dos arquivos acontecerá até que o comando sudo update-grub seja executado.
InstalaçãoPara saber a versão instalada no seu sistema, digite no terminal :
grub-install -v
O GRUB 2 vem instalado por padrão no Ubuntu a partir da versão 9.10 (Karmic Koala).
O pacote do GRUB 2 é o grub-pc. O pacote grub-common também será instalado.
grub2 é um pacote simulado de transição, pode ser seguramente removido e é mostrado no Synaptic como não instalado.
Upgrade para GRUB 2A atualização para GRUB 2 a partir do GRUB comum é relativamente fácil.
Os desenvolvedores decidiram não usar uma atualização automática para o GRUB 2 como padrão em instalações de atualização.
Quem fizer upgrade para o Ubuntu 9.10 pode continuar usando o GRUB legacy se desejar,
Para fazer a atualização para GRUB 2 :
Upgrade para GRUB 2Estrutura de arquivosGRUB 2 incorpora um diretório totalmente revisado e uma hierarquia de arquivos.
Hierarquia de arquivos e diretórios1-Arquivo /boot/grub/grub.cfgÉ o que mais se assemelha ao
/boot/grub/menu.lst do GRUB mas diferentemente desse o
grub.cfg não se destina a ser editado.
Cada seção é claramente delimitada com "(### BEGIN)" e a referência do arquivo na pasta /etc/grub.d a partir da qual a informação foi gerada.
grub.cfg é atualizado executando o comando
sudo update-grub e é automaticamente modificado quando há uma atualização ou instalação/remoção de kernel.
Por padrão, e sempre que o comando update-grub é executado, este arquivo é feito "somente leitura". Isto porque a intenção é que o arquivo não seja editado manualmente.
O usuário também verá uma infinidade de arquivos *. mod na pasta /boot/grub . Esses arquivos são da natureza modular do GRUB 2 e são carregados necessariamente pelo GRUB 2.
2-Arquivo /etc/default/grubEsse arquivo pode ser editado e configurado. Detalhes da configuração estão mais adiante em Configurando GRUB 2.
3-Diretório /etc/grub.d/ Os arquivos nessa pasta são lidos durante a execução do comando
sudo update-grub e suas instruções são incorporadas ao
/boot/grub/grub.cfg.
Os arquivos default nesta pasta são :
- 00_header : suas configurações normalmente são importadas de informações do /etc/default/grub e os usuários não precisam mudar esse arquivo.
- 05_debian_theme : configura splash image, cor do texto, cor de realce e tema. Na ausência de splash image esse arquivo configura um tema monocromático.
- 10_hurd : não usada.
- 10_linux : localiza os kernels para o sistema operacional em uso. Leva essa informação e estabelece os nomes apresentados no menu para estes kernels.
- 20_memtest86+ : procura por /boot/memtest86+.bin e o inclue como opção no menu do GRUB 2.
- 30_os-prober : procura por Linux e outros sistemas operacionais. Resultados são colocados no grub.cfg baseando-se nos scripts desse arquivo.
- 40_custom : para adicionar entradas de menu personalizado que serão inseridas no grub.cfg depois de update-grub.
Configuração Alterações na configuração são normalmente feitas em
/etc/defaul/grub e nos arquivos da pasta
/etc/grub.d.
O arquivo
/boot/grub/grub.cfg não deve ser editado pelo usuário; mudanças nesse arquivo são feitas pelos scripts de configuração.
Arquivo /etc/default/grubÉ o principal arquivo de configuração para alterar as configurações padrão.
-
GRUB_DEFAULT=0 Configura a entrada default pela posição. Como no GRUB a primeira entrada é zero, a segunda 1, etc,
-
GRUB_DEFAULT=saved Define a entrada de menu padrão com o que foi selecionado anteriormente (a última seleção).
-
GRUB_DEFAULT="xxxx" Neste caso, a localização no menu não importa.
Exemplo: GRUB_DEFAULT="Ubuntu, Linux 2.6.31-9-generic"
-
GRUB_TIMEOUT= Configura o tempo.
-
GRUB_HIDDEN_TIMEOUT=0 O menu ficará oculto.
# GRUB_HIDDEN_TIMEOUT=0 O menu não será oculto
-
GRUB_HIDDEN_TIMEOUT_QUIET=true
true = nenhuma contagem regressiva é exibida. A tela ficará em branco.
false = Um contador será exibido numa tela em branco durante o tempo do GRUB_HIDDEN_TIMEOUT.
-
#GRUB_GFXMODE=640x480
Descomente essa linha para mudar a resolução. Ela fornece resoluções suportadas pela placa de vídeo do usuário (640x480,
800x600, 1280x1024, etc). Aplica-se apenas a resolução do menu de boot.
Dica: Definindo a mesma resolução do sistema operacional o tempo de inicialização diminuirá ligeiramente.
-
#GRUB_DISABLE_LINUX_RECOVERY=true
Descomente essa linha se não desejar o “Recovery” mode no menu.
"Recovery mode" para apenas um kernel, fazer uma entrada especial em
/etc/grub/40_custom.
Diretório /etc/grub.d/ Entradas personalizadasO GRUB 2 permite criar menus personalizados que serão automaticamente adicionados ao menu principal quando o comando
sudo update-grub é executado. Um arquivo 40_custom vazio está disponível para uso ou para servir de exemplo para criar menus personalizados. Aqui estão algumas considerações para menus personalizados:
- o nome do arquivo determina a ordem das seleções no menu. Nomes numérico são executados primeiro, seguido por nomes alfabéticos - entrada 10_linux aparecerá antes de 30_os prober, que será colocado antes de 40_custom, que irá preceder entrada-personalizada.
- todos os arquivos desse diretório são feitos executáveis para gerar entradas para o grub.cfg e os arquivos recém criados devem também ser feitos
executáveis :
sudo chmod +x /etc/grub.d/nome do arquivo.
- o conteúdo desse arquivo é adiconado ao grub.cfg sem alterações quando o comando
sudo update-grub é executado.
- ao contrário do grub.cfg, arquivos personalizados podem ser editados a qualquer momento, não são só leitura, e podem ser propriedade do usuário, se ele desejar.
- o conteúdo não será alterado, depois de atualização ou quando novos kernels são adicionados ou removidos.
Criando menus personalizadosPode ser editado o arquivo
/etc/grub.d/40_custom ou criado um novo. A maneira mais fácil de criar o conteúdo de um menu personalizado é copiar uma entrada do
/boot/grub/grub.cfg. Depois de copiado, o conteúdo do 40_custom ou do novo arquivo criado pode ser adaptado a vontade.
De acordo com o arquivo personalizado padrão da amostra (etc/grub.d/40_custom/) as duas primeiras linhas de um arquivo personalizado em /etc/grub.d devem ser:
#!/bin/shexec tail -n +3 $0 Dicas : 1- Para visualizar que as alterações estão sendo feitas incluir essa linha (
echo "Adding 40_custom menu entries." >&2 ) entre as duas primeiras.
2- Execute esse comando
sudo cat /boot/grub/grub.cfg | grep "menuentry" | cut -d '"' -f 2 para ver no Terminal as entradas do menu.
Em todos os exemplos a seguir será usado o arquivo
/etc/grub.d/40_custom.
Na prática podemos usar menus personalizados para, por exemplo :
1- Mudança nos títulos dos sistemas instalados.
As entradas de menu dos títulos derivam dos arquivos
/etc/grub.d/10_linux para o Ubuntu e
/etc/grub.d/30_os-prober para Windows e outros
Linux. Menus personalizados funcionam como se fossem o
menu.lst do GRUB legacy mas é preciso retirar o modo executável dos dois arquivos acima
descritos depois de feita a alteração :
sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/30_os-prober
Sempre que houver atualização do kernel é preciso voltar o modo executável do arquivo 10_linux (sudo chmod +x /etc/grub.d/10_linux) para que a alteração seja incluida no arquivo /boot/grub/grub.cfg e depois retirar novamente (sudo chmod -x /etc/grub.d/10_linux). Depois de cada alteração : sudo update-grub .
A-Alteração nos títulos do Ubuntu, Windows e outros.
I- Determinar os locais onde se encontram instalados os sistemas :
Exemplos : Ubuntu 10.04 = (hd0,3) - /dev/sda3
Windows 7 = (hd0,1) - /dev/sda1
Ubuntu 9.10 = (hd0,6) - /dev/sda6
Para encontrar esses locais usar o Terminal
(sudo fdisk -l) ou abrir o arquivo
/boot/grub/grub.cfg (Locais > Computador > Sistema de arquivos).
II- Editar o arquivo /etc/grub.d/40_custom
sudo gedit /etc/grub.d/40_custom
#!/bin/shecho "Adding 40_custom menu entries." >
&2
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.Depois de
menuentry o que vier entre aspas será o título ( nos exemplos abaixo :
"Ubuntu 10.04",
"Windows 7" e
"Ubuntu 9.10").
Se quiser manter o Recovery mode para o Linux instalado adicionar outra entrada igual a primeira com
ro single em vez de
ro quiet splash.#Entrada para o Ubuntu 10.04 em /dev/sda3
menuentry "Ubuntu 10.04" {
set root=(hd0,3)
linux /vmlinuz root=/dev/sda3 ro quiet splash
initrd /initrd.img
}
#Entrada para Windows 7 em /dev/sda1
menuentry "Windows 7" {
insmod ntfs
set root='(hd0,1)'
chainloader +1
}
#Entrada para Ubuntu 9.10 em /dev/sda6
menuentry "Ubuntu 9.10" {
set root=(hd0,6)
linux /vmlinuz root=/dev/sda6 ro quiet splash
initrd /initrd.img
}
Salvar as alterações.Lembrando :
Nas atualizações de kernel do Ubuntu voltar o modo executável (sudo chmod +x /etc/grub.d/10_linux) para que a alteração seja incluida no grub.cfg (o
mesmo se aplica para o arquivo /etc/grub.d/30_os-prober na troca de Windows ou outro Linux); depois retirar novamente ( sudo chmod -x...); o arquivo 40_custom
pode permanecer o mesmo se não houver mudança nas partições.
Depois de toda e qualquer alteração é preciso executar sudo update-grub. 2- Entradas para boot de imagem ISO do Ubuntu. A- Imagem ISO do Live CDmenuentry "10.04 on /dev/sda5" {
loopback loop (hd0,5)/ubuntu-10.04-desktop-amd64.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-desktop-amd64.iso noprompt
initrd (loop)/casper/initrd.lz
}
Essa entrada é para o Live CD do Ubuntu 10.04 numa partição NTFS em /dev/sda5.
B- Imagem ISO do Alternate CDmenuentry "Lucid Altenate on /dev/sdb,1" {
loopback loop (hd1,1)/lucid-alternate-amd64.iso
linux (loop)/install/vmlinuz boot=install iso-scan/filename=/lucid-alternate-amd64.iso noprompt
initrd (loop)/install/netboot/ubuntu-installer/amd64/initrd.gz
}
Essa entrada é para o Alternate CD do Ubuntu 10.04 no segundo HD (/dev/sdb,1).
Essas entradas são para instalação do Ubuntu direto da imagem ISO no HD.
Quem quiser experimentar consulte :
Instalação do Ubuntu sem CD ou Pen-Drive.
3- Entrada para outro GRUB 2 menuentry "Grub 2 Ubuntu 10.10" {
set root='(hd0,6)'
chainloader +1
}
Essa entrada é para o GRUB 2 do 10.10 (alfa2) instalado em sda6.
Considerações sobre arquivos personalizados e edição do arquivo /boot/grub/grub.cfg.
O arquivo grub.cfg pode também ser editado e modificado desde que seja dada permissão para isso.
Para poder modificar :
sudo chmod +w /boot/grub/grub.cfg.
Para editar :
sudo gedit /boot/grub/grub.cfg.
Seria simples como mudar o menu.lst do GRUB legacy se essa permissão fosse estável e o grub.cfg não fosse sobrescrito mas não é isso que acontece.
Por padrão, e sempre que o comando update-grub é executado, o arquivo grub.cfg é feito "somente leitura" e é sobrescrito sempre que houver uma atualização, um kernel for adicionado/removido ou o usuário executar update-grub.
Dá menos trabalho criar um arquivo personalizado que, a não ser que haja intervenção do usuário, não será sobrescrito e será sempre executável.
O importante é lembrar que o arquivo 10_linux precisa voltar a ser executável nas atualizações do Ubuntu.
Outras alterações do menuI- Retirando Kernel(s) antigo(s) No
Synaptic em
Procurar digite o kernel, ex.: 2.6.31-14-generic.
Marque para remover
linux-headers e
linux-image desse kernel.
II- Retirando Recovery modesudo gedit /etc/default/grub
Descomente a linha abaixo:
GRUB_DISABLE_LINUX_RECOVERY="true"
III- Retirando Memtest86+sudo chmod -x /etc/grub.d/20_memtest86+
Splash ImagesGRUB 2 Splash Images
Instale o pacote padrão GRUB 2 splash images :
sudo apt-get install grub2-splashimages
.
A localização padrão para essas imagens é
/usr/share/images/grub.
Configurando splash imagesAs splash images do GRUB 2 são controladas pelo arquivo
/etc/grub.d/05_debian_themeEdite esse arquivo como root :
sudo gedit /etc/grub.d/05_debian_theme
Para o Ubuntu 9.10, encontre a linha abaixo :
for i
in {/boot
/grub,
/usr
/share
/images
/desktop-base
}/moreblue-orbit-grub.
{png,tga
} ; doUsando a imagem Lake_mapourika_NZ.tga de /usr/share/images/grub a configuração ficou assim:
for i
in {/boot
/grub,
/usr
/share
/images
/grub
}/Lake_mapourika_NZ.
{png,tga
} ; doPara o Ubuntu 10.04 faça a aleração nessa linha :
WALLPAPER="/usr/share/images/grub/Lake_mapourika_NZ.tga"Obs.: a imagem escolhida pode estar em qualquer diretório; o importante é colocar o caminho certo.
Depois da alteração executar
sudo update-grub.
Configurando a cor do textoEstas linhas estão contidas em
/etc/grub.d/05_debian_theme.
Ubuntu 9.10 :
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
set color_normal=black/black (mudando para white/black = cor branca do texto)
set color_highlight=magenta/black (blue/black = cor azul da entrada de menu default)
else
Ubuntu 10.04 :
WALLPAPER="/usr/share/images/grub/Lake_mapourika_NZ.tga"
COLOR_NORMAL=
"black/black" (mudando para
white/black = cor branca do texto)
COLOR_HIGHLIGHT=
"magenta/black" (
blue/black = cor azul da entrada de menu default)
Criando CD de boot do GRUB 21- CD de Boot simples do GRUB 2Com o Ubuntu funcionando normal abra um Terminal e digite :
grub-mkrescue grub2.iso
(para o 9.10)
grub-mkrescue --output=grub2.iso
(para o 10.04)
Pode mudar grub2.iso por outro (cdboot.iso, por exemplo).
A imagem ISO gerada vai para a sua pasta pessoal (Locais > Pasta pessoal).
Grave a imagem iso em CD.
2- CD multiboot do GRUB 2
Com o Ubuntu inicializado e funcionando normal entre no Terminal e digite :
sudo apt-get install grub-rescue-pc
A imagem ISO vai para /usr/lib/grub-rescue.
Grave a imagem ISO em CD.
A principal utilidade é dar o boot em caso de perda do GRUB 2 e para sua recuperação.
Detalhes no tópico :
Mil e uma maneiras de recuperar GRUB 2 e GRUB.
Fontes consultadas :
https://help.ubuntu.com/community/Grub2 http://ubuntuforums.org/showthread.php?t=1195275 http://ubuntuforums.org/showthread.php?t=1287602 http://ubuntuforums.org/showthread.php?t=1302743