Editing GRUB2
from:
http://ubuntuforums.org/archive/index.php/t-1632389.html
edit it with nano if you don't know how to use vim. vim'll be the weirdest thing you've ever tried to use if you dont know what you're doing.
sudo nano /etc/default/grub
crtl+x to save and exit (hit y to confirm)
then sudo update-grub (to renew grub.cfg)
Texto a seguir obtido em:
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ção
O 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.
Melhorias
As 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ção
Para 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 2
A 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 2
Estrutura de arquivos
GRUB 2 incorpora um diretório totalmente revisado e uma hierarquia de arquivos.
Hierarquia de arquivos e diretórios
1-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/grub
Esse 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 personalizadas
O 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 personalizados
Pode 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/sh
exec 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/sh
echo "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 CD
menuentry "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 CD
menuentry "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 menu
I- 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 mode
sudo 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 Images
GRUB 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 images
As splash images do GRUB 2 são controladas pelo arquivo /etc/grub.d/05_debian_theme
Edite 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} ; do
Usando 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} ; do
Para 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 texto
Estas 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 2
1- CD de Boot simples do GRUB 2
Com o Ubuntu funcionando normal abra um Terminal e digite :
grub-mkrescue grub2.iso
grub-mkrescue --output=grub2.iso
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