Bug#841741: grub-probe fails to find GRUB drive
Heinz Repp
heinz.repp at arcor.de
Sat Oct 22 23:38:24 UTC 2016
Package: grub-common
Version: 2.02~beta3-1
distro: stretch, 64bit
After update to 2.02~beta3-1 my system failed to boot with repeated
blkid usage screens (blkid -t needs NAME=value pair) with any kernel.
Turns out in initramfs-tools a function calls blkid -t $(DEV) to get the
details of the root partition, but this throws an error, and finally
gives up and falls back to a restricted initramfs-shell. Turns out, in
environment I had: ROOT='UUID=' - feeding this to blkid provokes the
error. But why was this so?
Turns out, in /boot/grub/grub.cfg all linux command lines had a
"root=UUID=" - manally inserting the blkid of the root partition enabled
a successful boot again.
Running update-grub, the blkids where missing again from grub.cfg. In
grub-mkconfig I saw the UUID is provided by grub-probe, and entering all
grub-probe calls by hand I found out it throws an error (on all
partitions tested):
> grub-probe --device /dev/sdb4 --target=fs_uuid 2
> grub-probe: error: cannot find a GRUB drive for /dev/sdb4. Check your device.map.
and this produces the empty UUID for the root partition. My device.map
didn't change, and every other partition (instead of /dev/sdb4) gives
exactly the same error.
As grub-probe from 2.02 beta 2 did work, the recent update has
introduced a severe bug.
Please fix! As a workaround I have a sed script that enters the UUID
manually in case of kernel updates.
Heinz Repp
More information about the Pkg-grub-devel
mailing list