Erros 15, 17 e 22 no boot pelo Grub
Olá pessoal, tempos atrás comecei a editar várias vezes meu HD para instalar diferentes sistemas no meu computador. Durante essas edições, instalações de sistemas e reboots, alguns erros no boot pelo Grub começaram a surgir. Várias soluções na Internet mostravam como recuperar os diversos erros que aconteciam no meu Grub. Eu queria uma única solução! Algo como: "reinstalar o Grub, ele automaticamente enxergar as novas partições e criar novamente o boot". Bom, até agora não encontrei algo assim, mas juntei algumas soluções para principais três erros no Grub e vi que a solução se aplica para todos meus erros.
O erro 17 já apareceu pra mim, quando eu editei as partições no meu HD e apaguei algumas partições.
Os erros 15 e 22 apareceram quando eu apaguei partições, movi, criei LVM, excluí áreas de SWAP e outras mudanças.
Vamos à solução "única" que encontrei e resumi para vocês...
Recuperando Grub
Utilizando um CD bootável, por exemplo o
Linux Ubuntu Live CD.
Mudando senha de root (prefiro utilizar root e não sudo):
# passwd root
Montamos em seguida a partição Linux onde se encontra o diretório raiz ("/"):
# mount /dev/sda6 /mnt/
# mount -o bind /dev/ /mnt/dev
(hoje muita gente esquece desse comando. Com o
udev é preciso montar esse diretório como segue)
Usando o chroot para entrarmos no ambiente do sistema:
# chroot /mnt
Entrando no "terminal" do Grub:
# grub
ou
# /usr/bin/grub
Em seguida você será levado para um terminal com cursor "grub>". Vamos agora digitar alguns comandos nesse terminal:
grub> find /boot/grub/stage1
Depois desse comando aparecerá algo como "(hd0,5)" (no meu caso). Em seguida, ainda nesse terminal do Grub, use essa informação mostrada no comando acima e digite:
grub>
root (hd0,5)
grub>
setup (hd0)
grub>
quit
Depois disso, seu boot provavelmente estará recuperado, mas ainda poderá conter erros dependendo das informações no seu arquivo
/boot/grub/menu.lst. No meu caso, isso aconteceu porque meu boot já estava configurado para "hd0, 5" (o arquivo stage1, estava para hd0,5), mas a partição do sistema estava em /dev/sda6 e não sei porque o Linux ainda não executava o boot, pois no meu menu.lst estava:
title Ubuntu 8.04.2, kernel 2.6.24-23-generic
root (hd0,6)
kernel /boot/vmlinuz-2.6.24-23-generic root=/dev/sda6 ro quiet splash locale=pt_BR
initrd /boot/initrd.img-2.6.24-23-generic
quiet
Para resolver eu tive que alterar a segunda linha para:
root (hd0,5)
Com essa alteração tudo funcionou perfeitamente!
Espero que consiga recuperar seu boot sem executar procedimentos absurdos (formatar HD, excluir partição com sistemas).
Abraço.