Receba nossa Newsletter Nome Email

Manipulando o GRUB2

Configurando somente o básico do Grub2

Esta dica visa resumir o que é preciso configurar para escolher a ordem de boot, o tempo de espera para iniciar no sistema escolhido como padrão e também visa uma maneira de evitar que a cada atualização ou a cada comando : " #update-grub " , você tenha que configurar todas entradas novamente!

Obs.: Essa dica foi feita com base no Ubuntu, mas caso você use outra distro que não use o "sudo", basta se logar como root e retirar a palavra "sudo" de todos os comandos.

O arquivo no qual ficam armazenadas as entradas de todos sistemas operacionais instalados é o grub.cfg, que fica em /boot/grub/. Para visualizá-lo você precisa rodar o comando:

$ sudo gedit /boot/grub/grub.cfg

Logo será aberto um editor de texto com o arquivo onde na primeira linha estará escrito:

DO NOT EDIT THIS FILE

Ou seja, esse arquivo "teoricamente" não pode ser editado, pois se você quiser editar a ordem das entradas e suas escritas nada o impede. Porém nesta dica ensinarei a configuração do grub2 do modo correto e não a gambiarra! rsrsrsrs brincadeirinha.

O arquivo o qual você personalizará suas entradas no grub2 é o 40_custom, que fica em /etc/grub.d/.

Primeiro atualize a lista de seus sistemas instalados com o comando:

$ sudo update-grub

Agora abra o arquivo grub.cfg:

$ sudo gedit /boot/grub/grub.cfg

Nele você terá todas entradas de seus sistemas instalados, onde abaixo segue um exemplo de entradas de Linux e Windows:

menuentry 'Ubuntu, with Linux 2.6.35-23-generic' --class ubuntu --class gnu-linux --class gnu --class
os {

recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set f8f54563-c324-41a5-8412-275cb97418e2
linux /boot/vmlinuz-2.6.35-23-generic root=UUID=f8f54563-c324-41a5-8412-275cb97418e2 ro
quiet splash
initrd /boot/initrd.img-2.6.35-23-generic
}
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 6020fefa20fed64e
chainloader +1
}

Agora para facilitar a edição abra em outro terminal o arquivo 40_custom:

$ sudo gedit /etc/grub.d/40_custom

Nele você terá um arquivo assim:

#!/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.

Copie as entradas encontradas no arquivo grub.cfg para o 40_custom, onde as entradas começam em "menuentry {" e terminam em "}".

Após copiar suas entradas do grub.cfg para o arquivo 40_custom, ele deve ficar mais ou menos assim:

#!/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.

menuentry 'Ubuntu, with Linux 2.6.35-23-generic' --class ubuntu --class gnu-linux --class gnu --class
os {

recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set f8f54563-c324-41a5-8412-275cb97418e2
linux /boot/vmlinuz-2.6.35-23-generic root=UUID=f8f54563-c324-41a5-8412-275cb97418e2 ro
quiet splash
initrd /boot/initrd.img-2.6.35-23-generic
}
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 6020fefa20fed64e
chainloader +1
}

Agora você poderá editar o texto que será exibido no boot, como por exemplo trocando de:

menuentry 'Ubuntu, with Linux 2.6.35-23-generic' --class ubuntu --class gnu-linux --class gnu --class os

Para:

menuentry " Ubuntu Maverick 10.10 Kernel 2.6.32 "

Isso é só um exemplo, ficando a seu critério o conteúdo escrito.

Após editar o arquivo 40_custom e deixá-lo como queria basta salvar e fechar ele.

Para definir a ordem de boot, ou seja, para definir qual sistemas iniciará após a contagem no boot esgotar, é preciso editar o arquivo grub que fica em /etc/default e para isso faça:

$ sudo gedit /etc/default/grub
  • GRUB_DEFAULT=0 <<< configura a entrada padrão sendo "0" para 1°entrada, "1" para 2° entrada e assim por diante.
  • GRUB_TIMEOUT=3 <<< aqui você irá escolher o tempo em segundos para contagem no boot

Depois de editar esse arquivo basta salvar e fechá-lo.

Agora rode esse comando:

$ sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/30_os-prober

Esses dois arquivos por padrão vem em modo executáveis, ou seja, a cada update-grub que você der ele irá inserir as entradas no seu grub mas como você já editou elas no arquivo 40_custom elas ficariam duplicada e rodando esse comando você retira essas duplicações.

Obs.: A cada nova instalação de um Linux ou Windows ou a cada atualização ou instalação de um novo kernel você precisará voltar esses arquivos "10_Linux e 30_os-prober" para o estado de executáveis para que eles possam inserir as novas entradas no grub.cfg e assim você as copia para o arquivo 40_custom. Para retornar o modo executável desses arquivos faça:

$ sudo chmod +x /etc/grub.d/10_linux /etc/grub.d/30_os-prober << trocando -x por +x

Feito isso rode um:

$ sudo update-grub

Vá até o arquivo grub.cfg e copie as novas entradas para o 40_custom e depois retire o modo executável dos arquivos:

$ sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/30_os-prober

E novamente rode:

$ sudo update-grub

Caso queira retirar o memtest também rode esse comando:

$ sudo chmod -x /etc/grub.d/20_memtest86+

E rode um:

$ sudo update-grub

E pronto! Pode reiniciar seu PC para ver o resultado.
Voltar Topo Enviar a um amigo Imprimir Home