Hoje após correr o script de actualização, smxi na Debian do meu laptop, por alguma razão que não sei qual, uma vez que não estava a ver o que ela estava a fazer, ao fazer reboot deparei-me com o seguinte erro no GRUB2:

GRUB Loading.

WELCOME to GRUB!

Entering rescue mode?
error: the symbol `grub_loaded_is_loaded? not found
grub rescue>

Confesso que ainda não tinha olhado para o GRUB2, como tal a única coisa que me lembrei foi de escrever help a ver se apareciam alguns comandos, mas nada.

No scroogle também apenas encontrei isto.

Resolvi entrar à bruta e reinstalar o GRUB2, convém frisar que num dos updates anteriores há uns tempos atrás, o update tinha feito o upgrade do GRUB para o GRUB2 sem qualquer problema.

Eis o que fiz para reinstalar o GRUB2.

1. Peguei num livecd do #!Crunchbang 9.04.1 (mental note, colocar a multidistro Katana numa pen USB) e fiz reboot, após este carregar havia que descobrir a partição onde está instalado o boot da Debian.
$sudo fdisk -l (é um L)

Disk /dev/sda: 80.1 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x34fe34fd

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         131     1052226   82  Linux swap / Solaris
/dev/sda2   *         132        1667    12337920   83  Linux
/dev/sda3            1668        9733    64790145    5  Extended
/dev/sda5            1668        3200    12313791   83  Linux
/dev/sda6            3201        9733    52476291   83  Linux


Reparem onde está o asterisco, é essa a partição a usar.

2. Montar essa partição a partir do livecd
$sudo mount /dev/sda2 /mnt

3. Reinstalar o GRUB2
$sudo grub-install ?root-directory=/mnt/ /dev/sda

(reparem que agora apenas dou a indicação do disco e não da partição, sda sem o 2)

O problema é que isto deu outro erro, queixava-se de um problema qualquer relativo ao ficheiro device.map
Resolvi renomear o ficheiro para device.map.bak e corri de novo o comando acima.
Desta vez tudo correu bem.

4. Fazer reboot, ou seja reiniciar a partir do disco rígido.

Se tudo tivesse corrido bem no ponto 3, sem que tivesse sido necessário renomear o ficheiro device.map, agora seguir-se-ia
$sudo update-grub ou na Debian #update-grub

Mas como não correu tudo bem, dei por mim novamente no ecrã do GRUB2 que me tinha aparecido a quando do upgrade automático do GRUB para GRUB2 o qual indicava que após o boot caso tudo corresse bem que deveria correr o seguinte comando
#upgrade-from-grub-legacy

And that?s it, tudo a bombar.

A propósito o excelente livro Linux in a Nutshell tem muita e boa info sobre o GRUB.

Fonte: Dicas Debian