Exploiting "PARTUUID=" for working with multiple installations / kernel/system partitions fails. Reproducible: Always Steps to Reproduce: Run grub2-mkconfig -o /boot/grub2/grub.cfg: Line in /etc/devault/grub: A) #GRUB_DEVICE ( commented ) (= /dev/sdc5 ) : "grub2-mkconfig -o /boot/grub2/grub.cfg" : works just fine. B) GRUB_DEVICE="PARTUUID=3FAC7BF3-749E-410F-BDE9-0ED8BC991470" : "grub2-mkconfig -o /boot/grub2/grub.cfg" : fails: Generating grub.cfg ... /usr/sbin/grub2-probe: error: cannot find a GRUB drive for PARTUUID=3FAC7BF3-749E-410F-BDE9-0ED8BC991470. Check your device.map. Found linux image: /boot/vmlinuz-3.8.3 /usr/sbin/grub2-probe: error: cannot find a GRUB drive for PARTUUID=3FAC7BF3-749E-410F-BDE9-0ED8BC991470. Check your device.map. done This bug was forked from https://bugs.gentoo.org/show_bug.cgi?id=381761#c23 ff. due to Samuli's proposal; please consider those comments for further information. This bug may be related to the "No /dev/root/" problem area. So please consider marking this as a possible "blocker" to BUG 438380, in case. Thanks. equery list grub [IP-] [ ] sys-boot/grub-2.00-r2:2 grep -v "#" /etc/default/grub GRUB_DISTRIBUTOR="Gentoo" GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=3 GRUB_CMDLINE_LINUX_DEFAULT="snd-hda-intel.model=6stack-digout acpi_enforce_resources=lax pcie_aspm=off" GRUB_CMDLINE_LINUX="" GRUB_BACKGROUND="/boot/grub2/bgi.jpg" GRUB_DISABLE_RECOVERY=true
Above the working version; the one below fails as described above: # grep -v "#" /etc/default/grub GRUB_DISTRIBUTOR="Gentoo" GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=3 GRUB_CMDLINE_LINUX_DEFAULT="snd-hda-intel.model=6stack-digout acpi_enforce_resources=lax pcie_aspm=off" GRUB_CMDLINE_LINUX="" GRUB_DEVICE="PARTUUID=3FAC7BF3-749E-410F-BDE9-0ED8BC991470" <----- GRUB_BACKGROUND="/boot/grub2/bgi.jpg" GRUB_DISABLE_RECOVERY=true
grub-mkconfig and grub-probe do not support the PARTUUID syntax for specifying a device. I suggest using an initramfs with support for mounting the root filesystem via UUID, which may be specified manually via GRUB_DEVICE_UUID or auto-detected. If you really want to pass PARTUUID to the kernel, you'll have to write your own grub config or modify 10_linux to emit that instead. For official support you will need to request from the grub developers upstream.
(In reply to comment #2) First: Thanks for your clarification! > grub-mkconfig and grub-probe do not support the PARTUUID syntax for > specifying a device. Why then DID it work, at least until the late udev modifications stepped in? > I suggest using an initramfs ... The whole point behind this is about NOT NEEDING an initram at all for some setups. > If you really want to pass PARTUUID to the kernel, you'll have to write your > own grub config That's exactly what I've done; at least wanted others to possibly find these observations. > or modify 10_linux to emit that instead. > > For official support you will need to request from the grub developers > upstream. Kind of "Mid-Air Collision": http://savannah.gnu.org/bugs/?func=detailitem&item_id=35937 Thanks.
I knew this bug seemed familiar... :)