sexta-feira, 30 de julho de 2010

Adicionando entradas Windows no Grub 2

O Grub 2 geralmente já encontra e adiciona entradas de sistemas Windows quando utilizamos o comando update-grub, porém em alguns casos pode ser necessário adicionar essas entradas manualmente, será isso que mostrarei como fazer nesse post.

Os procedimentos para adicionar uma entrada manualmente no Grub 2 são diferentes da versão anterior deste bootloader. Não devemos editar diretamente o arquivo de entradas do Grub, agora devemos criar pequenos scripts para que eles façam este trabalho.

Estes scripts estão no diretório /etc/grub.d e são executados na ordem de seus nomes quando utilizamos o comando update-grub. Então, se gostaríamos que nosso script fosse executado primeiro que o script 10_linux, o chamaríamos de 09_windows.

Há um arquivo chamado 40_custom, no diretório /etc/grub.d,  que está lá para ser usado quando for necessário adicionar novas entradas, será esse arquivo que editaremos (como root).

Com o arquivo aberto, vamos comentar a segunda linha (colocar # no começo dela), onde estão as instruções exec tail -n +3 $0, pois se ela for executada, nossos comandos não serão.

Adicionaremos os seguintes comandos no final do arquivo:

echo "Adicionando Windows 7" >&2
cat << EOF
menuentry "Windows 7 Ultimate" {
set root=(hd0,1)
chainloader +1
}
EOF

A primeira linha, echo "Adicionando Windows 7" >&2 , servirá apenas para nos dar uma confirmação de que os comandos foram executados, será exibida a mensagem “Adicionando Windows 7” no terminal quando executarmos o comando update-grub. A segunda linha, cat << EOF, inicia o bloco de instruções que serão gravadas no arquivo de entradas do Grub. A terceira, menuentry "Windows 7 Ultimate" { , escreve o que veremos no menu do Grub e inicia o bloco de instruções necessárias para carregar o sistema. A quarta, set root=(hd0,1) , seleciona o disco e a partição onde o sistema está instalado, o Grub 2 utiliza nomenclatura de discos e partições diferente da utilizada na versão anterior, o hd0 é o primeiro disco e 1, a primeira partição deste disco. A quinta linha, chainloader +1 , indica que na partição do sistema há um inicializador próprio e ele deve ser acionado. A sexta e sétima linha fecha o bloco de instruções para carregar o sistema e o bloco das instruções que serão gravadas no arquivo de entrada, respectivamente.

Feito isso, salvamos o arquivo, damos permissão para que ele seja executado (caso ele já não tenha essa permissão) e executamos o comando update-grub no terminal.

Se a mensagem “Adicionando Windows 7” for exibida no terminal, então tudo ocorreu bem e já podemos reiniciar e testar a nova entrada.

Um comentário: