quarta-feira, 19 de outubro de 2011

Mudar a opção default boot no Grub

As vezes queremos direcionar o boot para algum SO default (no caso de dualboot) ou até mesmo rodar o próprio Linux com uma versão de kernel diferente e deixar essa opção como default pra não ter que ficar selecionando, para fazer isso é bem simples, abra um terminal de comando e digite:

grep menuentry /boot/grub/grub.cfg


Será mostrado algo como:

menuentry 'Ubuntu, com Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 3.0.0-12-generic (modo de recuperação)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-11-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-11-generic (modo de recuperação)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-10-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-10-generic (modo de recuperação)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-8-generic (modo de recuperação)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry "Memory test (memtest86+)" {
menuentry "Memory test (memtest86+, serial console 115200)" {



Entenda, cada linha que contém um menuentry é uma opção do menu (ou submenu) do Grub e significa um índice, ou seja, a primeira opção é índice 0, a segunda é índice 1 e assim por diante, então caso você desejar colocar como padrão a opção 'Ubuntu, com Linux 2.6.38-11-generic' deverá setar a variável GRUB_DEFAULT no arquivo /etc/default/grub com o valor 2, ficando assim:

GRUB_DEFAULT=2

Porém, digamos que você instalou mais um kernel e agora esse índice mudou... seria chato ter que editar cada vez o arquivo para trocar a opção default não é mesmo? Para nossa sorte existe a opção de colocar a descrição do menu nesta mesma variável, ou seja:

GRUB_DEFAULT="Ubuntu, com Linux 2.6.38-11-generic"

Legal né? Legal sim, mas não funciona, ou melhor, pode não funcionar se essa opção estiver definida dentro de um "submenu" do Grub, para saber se ela está inserida em um submenu você deve editar o arquivo /boot/grub/grub.cfg e procurar pela palavra submenu, se você encontrar algo do tipo:


submenu "Previous Linux versions" {
menuentry 'Ubuntu, com Linux 2.6.38-11-generic' --class ubuntu --class gnu-linux --class gnu --class os {


Significa que essa opção está inserida em um submenu e neste caso aquela variável deve ser definida diferente, nela deve constar a opção do menu principal a qual faz parte o submenu, no exemplo apresentado aqui, ela deve ser:

GRUB_DEFAULT="Previous Linux versions>Ubuntu, com Linux 2.6.38-11-generic"

Note o ">" fazendo a separação do menu e submenu.


Quase tudo pronto, agora que você já fez as alterações necessárias (identificando a opção default pelo seu índice ou pelo seu nome) vamos precisar recriar esse menu no arquivo de configuração do Grub que será utilizado no boot, basta digitar:

sudo update-grub

UPDATE: Esse 'sudo update-grub' você vai precisar executar sempre que for instalado um novo kernel, caso contrário ao ser instalado um novo kernel essa seleção default não funcionará mais.

É isso!






Nenhum comentário:

Postar um comentário