---- grub-1.97.1/util/grub-mkconfig.in~ 2009-11-17 17:02:16.626243372 +0200
-+++ grub-1.97.1/util/grub-mkconfig.in 2009-11-17 17:02:08.346050859 +0200
-@@ -120,6 +120,21 @@
+--- grub-2.02~beta2/util/grub-mkconfig.in~ 2014-01-13 16:12:41.020705075 +0200
++++ grub-2.02~beta2/util/grub-mkconfig.in 2014-01-13 16:10:42.000000000 +0200
+@@ -131,6 +131,21 @@
# Device containing our userland. Typically used for root= parameter.
GRUB_DEVICE="`${grub_probe} --target=device /`"
+# /dev/mapper/blodnatt-blah--bleh -> /dev/blodnatt/blah-bleh
+# /dev/mapper/vg--meaw-root -> /dev/vg-meaw/root
+case "$GRUB_DEVICE" in
-+/dev/mapper/*-*)
-+ # change "--" to / (as "/" is impossible in LV name)
-+ local dev=$(awk -vdev="${GRUB_DEVICE#/dev/mapper/}" 'BEGIN{gsub(/--/, "/", dev); print dev}')
-+ local VG=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[1]); print v[1]}')
-+ local LV=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[2]); print v[2]}')
-+ GRUB_DEVICE=/dev/$VG/$LV
-+;;
++ /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
+ GRUB_DEVICE_PARTUUID="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2> /dev/null`" || true
- # Device containing our /boot partition. Usually the same as GRUB_DEVICE.