I just had a whole series of problems with boot on my Debian system (SID) suddenly it reported:
/grub/i386-pc/normal.mod not found.
Eventually I got it back (fsck moved lots of stuff from /boot into lost+found and I needed to replace via grub-install)
But after it was all working and I did reinstalls of various grub-* packages (in case they were now in lost+found). I noticed the grub.cfg had many differences, of the form:
< set root='hd2,msdos1'
---
> set root='hd0,msdos1'
An indeed my /boot (and / (root)) device was now /dev/sdc (hd2) and not /dev/sda (hd0). On the one hand I can't see how/why it changed but on the other I realise the /dev/sdX name is not fixed and CAN change from one boot to the next. So given all this my question is:
How can grub.cfg contain entries like:
set root='hd2,msdos1'
Since (there is no mapping file) this equates to /dev/sdc ...what if at the next boot that disk appears as sdb or sda ?
ABTW. The initial cause was probably corrupted /boot ...I note it's ext2 , can't I use ext4? ... and is that not the default now? [ Bug 985470 ]