Grub2
Entendendo o Grub2
Esse boot loader é novo (já a algum tempinho rs rs); Neste post irei
dar uma pequena introdução para se ambientar com ele, principalmente
para quem está acustumado com o antigo….
Introdução
O Grub2 segundo o que eu tenho lido, foi reescrito do zero, porque a
arquitetura do antigo Grub já estava legada de mais para permitir
tamanho flexibilidade e performance que os novos sistemas estão
requerendo…
Vale lembrar que o Grub2 na verdade é a versão 1.96 para cima, o
antigo grub é a versão 0.97, para verificar qual é a versão utilizada
pelo seu sistema execute: “grub-install -v”
- Melhorias
* Suporte a inclusão de scripts com declarações condicionais e
funções
* Carregamento dinâmico de módulo
* Rescue Mode (modo de recupeação)
* Menus Personalizados
* Temas
* Suporte Gráfico ao menu de boot e melhoria no splash
* Boot de LiveCD ISO diretamente do HD
* Nova estrutura de arquivos de configuração
- GRUB vs GRUB2
* Pressione a tecla SHIFT para mostrar o menu durante o boot
(antigamente era utilizado a tecla ESC)
* Não existe mais o /boot/grub/menu.lst ele foi substituido pelo /
boot/grub/grub.cfg
* Não há “/find boot/grub/stage1″ no prompt do grub. Stage 1.5 foi
eliminado.
* O arquivo do menu principal, /boot/grub/grub.cfg, não é
editável, mesmo pelo root.
* grub.cfg pode ser sobrescrito a qualquer momento, por exemplo
quando o kernel é adicionado ou removido, ou algum usuário executa o
comando ‘update-grub’
* O usuário pode usar um arquivo personalizado, /etc/grub.d/
40_custom, do qual o usuário pode colocar suas próprias entradas. Esse
arquivo não será sobrescrito.
* O arquivo de configuração principal para fazer modificações nas
configurações de visualização do menu é /etc/default/grub (por exemplo
o tempo de espera)
* Existem multiplos arquivos de configuração do menu – /etc/
default/grub como mencionado acima e todos os arquivos dentro do /etc/
grub.d/
* A numeração das partições foram modificadas. A primeira partição
agora é 1 ao invés de 0. O primeiro dispositivo ainda é 0.
* Busca automática por outros sistemas operacionais, como o
Windows, sempre que o ‘update-grub’ é executado
* Nenhuma modificação nos arquivos de configurações terão efeitos
antes da execução do comando update-grub.
- Estrutura de Arquivos
A estrutura de arquivos do GRUB2 foi totalmente revisada. O ‘menu.lst’
do GRUB antigo não está mais disponível.
Para identificar aonde seu Grub2 está instalado (isso é bastante útil
em servidores onde você tem vários discos), utilize os seguintes
comandos:
–> sudo grub-probe -t device /boot/grub (para obter o dispositivo,
exemplo ‘/dev/sda2′)
–> sudo grub-probe -t fs_uuid /boot/grub (para obter o UUID, exemplo
‘c1b8a40b-94da-4745-8619-725db8f11eef’)
Os principais diretórios e arquivos utilizados pelo Grub2 são:
“/boot/grub/grub.cfg”
Esse é o arquivo mais mais se assemelha com o ‘menu.lst’. Este arquivo
contém informações sobre o menu do Grub2 mas diferentemente do
‘menu.lst’ o ‘grub.cfg’ não pode ser editado.
* Cada seção é claramente delimitada com “(### BEGIN)” e
referencia o arquivo dentro do diretório “/etc/grub.d” a partir do
qual as informações foram geradas.
* grub.cfg é atualizado quando o comando update-grub é executado
como root. O comando update-grub é sinônimo para “sudo grub-mkconfig -
o /boot/grub/grub.cfg”.
* Por padrão, sempre que o ‘update-grub’ é executado, esse arquivo
é feito como somente leitura (read-only). Isto segue de acordo com
intenção de que o arquivo não deve ser editado manualmente.
você também vai perceber que existe um monte de arquivos com a
extensão *.mod dentro do diretório /boot/grub. Esses arquivos refletem
a natureza modular do GRUB2 e são carregados de acordo com a
necessidade do bootloader.
“/etc/default/grub”
Este arquivo de configuração contém informações antigamente contidas
na parte superior do legado menu.lst e itens contidos no final da
linha do kernel. Este arquivo pode ser editado por usuários (claro
como root) e são incorporadas dentro do grub.cfg quando atualizado.
“/etc/grub.d” (diretório)
* Os arquivos dentro desse diretório são lidos durante a
executação do comando ‘update-grub’ e suas instruções são incorporadas
dentro do /boot/grub/grub.cfg
* A localização dos itens do menu do grub.cfg são determinados
pela ordem da qual os arquivos desse diretório são executados.
Arquivos levando numerais são executados primeiros, iniciando do menor
número. ’10_linux’ é executado antes de ’20_memtest’, do qual é
executado antes do ’40_custom’. Arquivos exsitentes com nomes
alfabéticos são executados após os arquivos com nomes numerais.
* Entradas personalizadas podem ser adicionadas no arquivo
’40_custom’ ou em um novo arquivo criado. Baseado no seu nome, a
entrada ’40_custom’ por padrão aparece no fundo do menu.
* Somente arquivos executáveis geram saída ao ‘grub.cfg’ durante a
execução do ‘update-grub’.
* Os arquivos padrões desse diretório são:
o 00_header -> Configura a aparência inicial dos itens, como
o modo gráfio, seleção padrão, timeout, etc. Essas configurações são
normalmente importadas de informações do /etc/default/grub. Usuários
normalmente não precisam fazer modificações nesse arquivo
o 05_debian_theme -> As configurações deste arquivo são
responsáveis pelo ‘splash image’, cor do texto, ‘selection
highlighting’ e temas. Na ausência de um ‘splash image’, esse arquivo
configura um tema monocromático para o menu inicial. Como configurar a
renderização das fonts e splash images serão discutidas no próximo
post.
o 10_hurd -> Localiza kernel Hurds.
o 10_linux -> localiza kernel Linux no dispositivo root para
o sistema operacional usado atualmente. Ele pega as informações e
estabelece o nome a ser mostrado no menu.
o 20_memtest86+ -> Procura por /boot/memtest86+.bin e inclui
ele como opção no menu do boot. Não há atualmente nenhuma opção de
linha para remover essa entrada do menu. A exibição do ‘memtest86+’
pode ser inibida pela remoção da permissão de execução do arquivo:
‘chmod -x /etc/grub.d/20_memtest86+’ e logo em seguinda um ‘update-
grub’
o 30_os-prober -> Esse procura por Linux e outros sistemas
operacionais. Os resultados são colocados em grub.cfg baseado no
script desse arquivo. O arquivo é dividido em 4 seções, representando
os tipos de sistema operacional manipulados pelo script: Windows,
Linux, OSX e Hurd. Variáveis neste arquivo determina o formato de
visualização dos nomes no /boot/grub/grub.cfg e no menu do Grub2.
Usuários familiarizados com scripts básicos podem alterar essas
variáveis para mudar o nome apresentado no menu.
o 40_custom -> Um template para adicionar entradas no menu
personalizados da qual vai ser inserido no ‘grub.cfg’ na execução do
comando ‘update-grub2′. O conteúdo deste arquivo, a baixo da linha
“exec tail -n +3 $0″ e os comentários padrão, são importados
diretamente dentro do /boot/grub/grub.cfg sem qualquer modificação.
o Arquivos deste diretório devem ter permissão de execução
para serem usados pelo update-grub. Arquivos que não tem permissão de
execução são ignorados. Para dar permissão de execução, execute “chmor
+c /etc/grub.d/diretorio/nomeDoArquivo” como root.
- Configuração do Grub2
Modificações nas configurações são normalmente feitas no /etc/default/
grub e nos arquivos localizados em ‘/etc/grub.d’. O arquivo /boot/grub/
grub.cfg não deve ser editador por nenhum usuário, modificações neste
arquivo são realizados pelos scripts de configuração.
Algmas das modificações mais realizadas, como definir o Kernel padrão
e o timeout do menu, podem ser modificadas por um aplicativo com
interface gráfica chamado de “StartUp-Manager”, para maiores
informações de uma lida no
https://help.ubuntu.com/community/StartUpManager
/etc/default/grub (arquivo)
* Este é o arquivo de configuração principal para modificar os
valores padrão. Após a instalação, as seguintes linhas estão
disponíveis para alteração:
o GRUB_DEFAULT – Configura o menu padrão.
+ GRUB_DEFAULT=0 Configura a opção padrão do menu. A
primeira opção de entrada no menu é o item 0 do ‘grub.cfg’, o segundo
é 1 e etc.
+ GRUB_DEFAULT=”xxxx” O nome exato de uma opção do
menu, Exemplo: “GRUB_DEFAULT=”Ubuntu, Linux 2.6.31-9-generic”
+ GRUB_TIMEOUT=10 Configura o tempo de espera que o
menu vai ser apresentado antes da ecolha default ser “bootada”
+ #GRUB_GFXMODE=640×480 Você pode remover a tralha da
frente para ativar essa entrada…. Essa opção configura a resolução do
menu gráfico. A resolução aqui colocada deve ser suportada pela placa
de vídeo (ex. 640×480, 800×600, 1280×1024 etc). A resolução aqui
configurada se aplica somente ao Grub2 e não a todo o sistema…. Dica:
Configure a resolução do Grub2 para a mesma do seu sistema
operacional, isso ajuda a diminuir o tempo da inicialização do
sistema.
- Mesmo não requirido, o usuário pode dizer a
profundidade de cores, como por exemplo: 1280x1024x24 ou 640x480x32
- Você pode também definir multiplas resoluções, se
o Grub2 não conseguir utilizar a primeira entrada, ele vai tentar usar
a próxima. As configurações são separadas por uma virgula, exemplo:
1280x1024x16, 800x600x24, 640×480
- Se for utilizado um ‘splash image’, tenha certeza
que a resolução e o tamanho do splash image são compatíveis
- Se a linha de configuração da resolução é
comentada (#) ou a resolução não estiver disponível o GRUB2 usa a
configuração padrão determinada pelo arquivo /etc/grub.d/00_header
Fonte:
http://diariodecodigos.info/2010/04/introducao-ao-grub2/