]> TLD Linux GIT Repositories - packages/grub2.git/blobdiff - grub-lvmdevice.patch
- PLD merge - grub 2.02 beta 2, no changes
[packages/grub2.git] / grub-lvmdevice.patch
index 8f04e80f4d0794d93c790654ca5a8cd074ed6fc0..0f9d87fa8f915f7efbdc1793d1ac4048cb7b0065 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,27 @@
+--- 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/vg--meaw-root -> /dev/vg-meaw/root
 +case "$GRUB_DEVICE" in
 +      /dev/mapper/*-*)
-+              DM_REAL_DEVICE="$(readlink -f "$GRUB_DEVICE")"
-+              DM_UUID="$(cat /sys/block/${DM_REAL_DEVICE#/dev/}/dm/uuid)"
-+              case "$DM_UUID" in
-+                      LVM-*)
-+                              # 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
-+                              ;;
-+              esac
++              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
 +