This has happend quite a while ago, but it was weird enough and unexpected that I still wanted to share it here. After a scheduled reboot, this machine greeted me with:
error: file '/grub/i386-pc/normal.mod' not found. grub rescue>
So, apparently GRUB has some kind of trouble. What
happened here? After some looking around in this (very minimalistic) rescue shell it became clear that almost everything below
/boot/grub had been removed. Maybe
by some br0ken update script, I never really found out what may have caused this.
But the interwebs
were helpful as usual and the trick was now to find all the missing files elsewhere. This being
Debian system, the Grub files were also available
/usr/lib/grub/i386-pc/ (yes, even on an amd64 system).
Without being able to boot into another rescue system and re-install Grub, Still in the
grub rescue shell, we now have to load every needed module from that location:
> insmod /usr/lib/grub/i386-pc/normal.mod > insmod /usr/lib/grub/i386-pc/ext2.mod > insmod /usr/lib/grub/i386-pc/linux.mod > [...]
We may need more modules than that, and some modules may even depend on other modules, so this took some trial and error to figure out. But in the end a basic Grub configuration could be submitted:
> set root (hd0,msdos2) > linux (hd0,msdos2)/vmlinuz root=/dev/sda2 > initrd (hd0,msdos2)/initrd.img
If this fails, more modules may need to be loaded.
So, if this really boots, make sure to install Grub again :-)