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.