So, when a new kernel is to be added, how does grubby know whether to add an entry with "root=LABEL=/" or "root=LABEL=/1"?
I don't use labels. However, I don't see any reason why grubby shouldn't be able to determine correct label. Labels are just strings. You can label your root file system as "root", or "foobar" or "kebab" if you wanted, and use "root=LABEL=kebab". "/" is default label. It isn't the only possible label. Grubby should be able to handle that. If I were to use labels, I'd probably try hard to make them uniqeu across all disks on all machines I administer (which preaty much rules out simple labels such as "/").
Basically, grubby should do two checks. Find out where your /boot directory is (or whatever directory holds kernel and initrd images, it doesn't need to be /boot), and find out what is grub's representation of that partition. This will be used in root line.
Than it needs to simply read the label stored in metadata of your root file system (relative to RPM installation root), and use that as kernel's root option. It can either read it directly from file system metadata (it runs as root, so it can do it), or simply parse fstab and use whatever it finds there (that way if user doesn't use labels in fstab, they won't be used in grub.conf either, plus it covers the case if root file system doesn't has labels without need for code to handle that special case).
I haven't checked it myself, but I believe above is how grubby works, or at least how it would work if I were to implement it...
-- Aleksandar Milivojevic <amilivojevic@xxxxxx> Pollard Banknote Limited Systems Administrator 1499 Buffalo Place Tel: (204) 474-2323 ext 276 Winnipeg, MB R3T 1L7