diff -ur grub-2.02-beta3.orig/util/grub-mkconfig.in grub-2.02-beta3/util/grub-mkconfig.in --- grub-2.02-beta3.orig/util/grub-mkconfig.in 2016-03-21 07:42:22.000000000 +0000 +++ grub-2.02-beta3/util/grub-mkconfig.in 2016-03-21 07:44:37.320768000 +0000 @@ -133,6 +133,21 @@ # Device containing our userland. Typically used for root= parameter. GRUB_DEVICE="`${grub_probe} --target=device /`" + +# Rewrite to sane LVM node (Code from PLD Linux geninitrd): +# /dev/mapper/sys-rootfs -> /dev/sys/rootfs +# /dev/mapper/blodnatt-blah--bleh -> /dev/blodnatt/blah-bleh +# /dev/mapper/vg--meaw-root -> /dev/vg-meaw/root +case "$GRUB_DEVICE" in + /dev/mapper/*-*) + LVM2_LV_NAME='' LVM2_VG_NAME='' + eval $(lvs --noheadings --nameprefixes "$GRUB_DEVICE" 2>/dev/null) + if [ -n "$LVM2_VG_NAME$LVM2_LV_NAME" ]; then + GRUB_DEVICE=/dev/$LVM2_VG_NAME/$LVM2_LV_NAME + fi + ;; +esac + GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true # Device containing our /boot partition. Usually the same as GRUB_DEVICE.