No seu disco rígido estão instalados dois ou mais sistemas operacionais em dual boot? Na hora de instalar (ou reinstalar) um deles o menu de boot do GRUB sumiu? Veja nessa dica como recuperá-lo através de um LiveCD.
Os passos aqui apresentados foram executados em um computador com Windows 7 e Kubuntu 10.10 em dual boot com GRUB 2.0 instalado no disco rígido, mas os mesmos devem servir para outras distribuições
Linux (como Ubuntu, por exemplo), mesmo que a versão do GRUB nelas instalada não seja a 2.0 (como Debian ou Kurumin). Para executá-los, você precisará iniciar um sistema Linux a partir de um LiveCD, que não precisa necessariamente ser da mesma distribuição instalada no computador. Após iniciá-lo, abra o terminal.
Primeiramente, devemos saber em qual partição do disco rígido está instalado o Linux. Se você não souber qual é a partição, este comando pode ajudá-lo:
# fdisk -l
Ele deve retornar informações sobre os discos e suas partições. No meu computador, ele retornou isto:
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf05ada11
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13055 104857600 7 HPFS/NTFS
/dev/sda2 13055 32636 157286400 7 HPFS/NTFS
/dev/sda3 32636 38914 50425856 83 Linux
Como você pode ver, o Linux está instalado na partição /dev/sda3. Vou utilizá-la como exemplo. Nos comandos a seguir, lembre-se de substituir essa partição pela equivalente no seu computador. Prosseguindo, vamos montá-la:
# mkdir /mnt/sda3
# mount /dev/sda3 /mnt/sda3
Para que possamos "entrar" nela através do chroot, vamos "emprestar" alguns recursos do nosso sistema para o sistema nela instalado (observe que já fizemos isso em
outro artigo publicado aqui no Viva o Linux). Faremos isso através dos comandos a seguir:
# mount --bind /dev /mnt/sda3/dev
# mount --bind /dev/pts /mnt/sda3/dev/pts
# mount --bind /proc /mnt/sda3/proc
# mount --bind /sys /mnt/sda3/sys
Finalmente, entramos no sistema que está instalado na partição:
# chroot /mnt/sda3
O comando a seguir é na verdade opcional, mas garante que a lista de sistemas operacionais oferecidos pelo GRUB na hora do boot esteja atualizada. Eu o executei aqui no meu computador.
# update-grub
Ele procura por sistemas operacionais no disco rígido, gera o arquivo de configuração do GRUB e retorna uma mensagem dizendo que a operação foi concluída com sucesso:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.35-22-generic
Found initrd image: /boot/initrd.img-2.6.35-22-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done
Podemos então finalmente instalar o GRUB no disco rígido. Para isso, execute o seguinte comando (lembre-se de substituir /dev/sda pelo seu disco rígido):
# grub-install /dev/sda
Se ele retornar a seguinte mensagem, tudo ocorreu perfeitamente:
Installation finished. No error reported.
Agora tudo o que temos que fazer é sair do sistema operacional instalado no disco rígido, desmontar as pastas que montamos anteriormente e reiniciar o computador. Tudo isso pode ser feito através dos seguintes comandos:
# exit
# umount /mnt/sda3/dev/pts
# umount /mnt/sda3/dev
# umount /mnt/sda3/proc
# umount /mnt/sda3/sys
# umount /mnt/sda3
# reboot
Há outra solução ainda mais prática apresentada na
wiki do Ubuntu, que não abordarei aqui por não ter testado a execução desses comandos nem saber sua compatibilidade com as distribuições anteriormente citadas. No entanto, amostro a seguir quais seriam os comandos que provavelmente eu usaria no meu computador para restaurar o GRUB, segundo essa solução.
# mount /dev/sda3 /mnt/sda3
# grub-install -root-directory=/mnt/sda3/ /dev/sda3
# update-grub
# reboot
Um abraço a todos e até a próxima.
Fontes:
Essa dica foi publicada originalmente no meu blog:
http://avmlinux.blogspot.com/2010/10/restaurando-grub.html
Antônio Vinícius