Package: initramfs-tools
Version: 0.60
Tags: patch

Currently the lvm script does not activate the volume group which the resume partition resides on. In case the resume lv is in the same vg as the root lv, then things will work anyway since the root vg is activated but if they are in different vg's this means that resume will not work.

I've attached a patch which fixes this by activating both resume and root vg's.

Regards,
David Härdeman

diff -ur initramfs-tools-0.60-orig/scripts/local-top/lvm 
initramfs-tools-0.60/scripts/local-top/lvm
--- initramfs-tools-0.60-orig/scripts/local-top/lvm     2006-03-26 
21:56:35.000000000 +0200
+++ initramfs-tools-0.60/scripts/local-top/lvm  2006-06-21 23:43:19.000000000 
+0200
@@ -15,23 +15,34 @@
        ;;
 esac
 
-vg=${ROOT#/dev/mapper/}
+activate_vg()
+{
+       local vg="$1"
 
-case ${vg} in
-       /dev/root)
-               unset vg
-               ;;
-       /*)
-               exit 0
-               ;;
-esac
-       
-modprobe -q dm-mod
+       # Make sure that we have a non-empty argument
+       if [ -z "$vg" ]; then
+               return 0
+       fi
+
+       # Make sure that we have a d-m path
+       vg=${vg#/dev/mapper/}
+       if [ "$vg" = "$1" ]; then
+               return 0
+       fi
 
-# Split volume group from logical volume.
-vg=$(echo ${vg} | sed -e 's#\(.*\)\([^-]\)-[^-].*#\1\2#')
-# Reduce padded --'s to -'s
-vg=$(echo ${vg} | sed -e 's#--#-#g')
+       # Split volume group from logical volume.
+       vg=$(echo ${vg} | sed -e 's#\(.*\)\([^-]\)-[^-].*#\1\2#')
+       # Reduce padded --'s to -'s
+       vg=$(echo ${vg} | sed -e 's#--#-#g')
 
-vgchange -ay ${vg}
+       vgchange -ay ${vg}
+}
+
+if [ ! -e /sbin/vgchange ]; then
+       exit 0
+fi
+
+modprobe -q dm-mod
 
+activate_vg "$ROOT"
+activate_vg "$resume"

Reply via email to