]> TLD Linux GIT Repositories - packages/grub2.git/blobdiff - grub-lvmdevice.patch
- merged 2.12 from PLD
[packages/grub2.git] / grub-lvmdevice.patch
index 53324ec60fb34cdc1f3335c1e3c23ed95ae66103..85ae59694b997c4e33e170a971f1082dc26a7b00 100644 (file)
@@ -1,6 +1,6 @@
---- 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.