This
https://wiki.gentoo.org/wiki/GRUB2/Configuration_variables

has

GRUB_DISABLE_LINUX_UUID false If true, ${GRUB_DEVICE} is passed in the root parameter on the kernel command line.

If false, ${GRUB_DEVICE_UUID} is passed in the root parameter on the kernel command line when an initramfs is available.


So it looks like i can't set root= to a UUID unless i use an initramfs - can anyone confirm?

In /usr/src/linux/admin-guide/kernel-parameters.txt it has;
root=           [KNL] Root filesystem
                        See name_to_dev_t comment in init/do_mounts.c.

And in do_mounts.c it mentions PARTUUID= and PARTLABEL= but i dont know C so don't know what to make of it.

Background is that after adding a new disk the system doesn't boot, so i'm assuming that the /dev/sdX device names are now pointing to different hardware, so i want to fix that by using persistent names.