I've often run into that with SATA drives. They "move around" with configuration changes, like if you have a USB stick plugged in on boot or not. Or if one drive fails, the other ones move up to fill the gap.
Workaround is to use disk uuid. To find drives and their associated uuid's, run:
ls -al /dev/disk/by-uuid
Then you replace the disk identifier by the uuid in the boot loader configuration, replace
root = /dev/sda1
with something like
root = "UUID=/dev/disk/by-uuid/18843936-00f9-4df0-a373-000d05a5dd44"
Only done this with GRUB, but looks like LILO should do it too.