You can change those to /dev/disk/by-uuid/XYZ ("ls -an" that directory to see the symlinks to your current drives)
vcmj
Basically just look for things like root=/dev/sda2 in the kernel command line. You can get it at runtime by running "cat /proc/cmdline" having /dev/sda etc in your fstab might also be a problem
Yes if you have multiple drives some buggy BIOS may not enumerate them in the same order every time. Most modern distros do UUIDs by default but when manually setting up a bootloader it is easy to succumb to such temptations to use the much simpler device paths as the UUIDs are a pain. If you're not sure how to change the kernel parameters most likely you're good on that front actually, its in your grub config as others have mentioned. I'll leave this comment around in case some poor soul who did it manually comes across the thread.
Depending on if you wrote the kernel cmdline yourself I imagine this might happen using /dev/sdN style device paths? BIOS might change things up every now and then for fun, so using partition UUIDs would be a better way if so.
Yes, forgot the exact details apologies