GRUB: error: file '/grub/i386-pc/normal.mod' not found
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 a Debian system, the Grub files were also available
in /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 :-)