Author: glen
Date: Tue Nov 17 10:57:01 2009
New Revision: 10978

Added:
   geninitrd/trunk/tests/
   geninitrd/trunk/tests/lvmroot.sh
Modified:
   geninitrd/trunk/mod-lvm.sh
Log:
- process also /dev/mapper/blodnatt-blah--bleh--blah -> 
/dev/blodnatt/blah-bleh-blah

Modified: geninitrd/trunk/mod-lvm.sh
==============================================================================
--- geninitrd/trunk/mod-lvm.sh  (original)
+++ geninitrd/trunk/mod-lvm.sh  Tue Nov 17 10:57:01 2009
@@ -180,17 +180,22 @@
                        export ROOTVG="$VGVOLUMES"
                        export SUSPENDVG=$SUSPENDVG
                EOF
+
+               # need awk for "s/--/-/g" subst when parsing kernel root 
commandline
+               busybox_applet awk
                add_linuxrc <<-'EOF'
                        # parse rootdev from kernel commandline if it begins 
with /
                        case "$ROOT" in
                                /*)
 
-                               # rewrite /dev/mapper/sys-rootfs -> 
/dev/sys/rootfs
+                               # rewrite:
+                               # /dev/mapper/sys-rootfs -> /dev/sys/rootfs
+                               # /dev/mapper/blodnatt-blah--bleh -> 
/dev/blodnatt/blah-bleh
                                case "$ROOT" in
                                        /dev/mapper/*-*)
                                                ROOT=${ROOT#/dev/mapper/}
                                                local VG=${ROOT%%-*}
-                                               local LV=${ROOT#*-}
+                                               local LV=$(echo "${ROOT#$VG-}" 
| awk '{gsub(/--/, "-"); print}')
                                                ROOT=/dev/$VG/$LV
                                        ;;
                                esac

Added: geninitrd/trunk/tests/lvmroot.sh
==============================================================================
--- (empty file)
+++ geninitrd/trunk/tests/lvmroot.sh    Tue Nov 17 10:57:01 2009
@@ -0,0 +1,68 @@
+#!/bin/sh
+runtest_run() {
+                       # parse rootdev from kernel commandline if it begins 
with /
+                       case "$ROOT" in
+                               /*)
+
+                               # rewrite:
+                               # /dev/mapper/sys-rootfs -> /dev/sys/rootfs
+                               # /dev/mapper/blodnatt-blah--bleh -> 
/dev/blodnatt/blah-bleh
+                               case "$ROOT" in
+                                       /dev/mapper/*-*)
+                                               ROOT=${ROOT#/dev/mapper/}
+                                               local VG=${ROOT%%-*}
+                                               local LV=$(echo "${ROOT#$VG-}" 
| awk '{gsub(/--/, "-"); print}')
+                                               ROOT=/dev/$VG/$LV
+                                       ;;
+                               esac
+
+                               if [ "$ROOT" != "$ROOTDEV" ]; then
+                                       ROOTDEV=$ROOT
+
+                                       echo "LVM: Using 'root=$ROOTDEV' from 
kernel commandline"
+                                       local tmp=${ROOTDEV#/dev/}
+                                       if [ "$tmp" != "$ROOTDEV" ]; then
+                                               ROOTVG=${tmp%/*}
+                                               echo "LVM: Using Volume Group 
'$ROOTVG' for rootfs"
+                                       fi
+                               fi
+                               ;;
+                       esac
+}
+
+fail=0 ok=0
+fail() {
+       echo "FAIL: $@"
+       fail=$((fail+1))
+       return 1
+}
+ok() {
+       echo "OK: $@"
+       ok=$((ok+1))
+       return 0
+}
+runtest() {
+       local exp=$(mktemp) out=$(mktemp)
+       cat > $exp
+       eval $@
+       runtest_run > $out
+       diff -u $out $exp || fail "$@" && ok "$...@\n$(cat $exp)"
+       rm -f $exp $out
+}
+
+runtest ROOT=/dev/mapper/sys-rootfs OK=/dev/sys/rootfs <<'EOF'
+LVM: Using 'root=/dev/sys/rootfs' from kernel commandline
+LVM: Using Volume Group 'sys' for rootfs
+EOF
+
+runtest ROOT=/dev/mapper/blodnatt-blah--bleh OK=/dev/blodnatt/blah-bleh <<'EOF'
+LVM: Using 'root=/dev/blodnatt/blah-bleh' from kernel commandline
+LVM: Using Volume Group 'blodnatt' for rootfs
+EOF
+
+runtest ROOT=/dev/mapper/blodnatt-blah--bleh--blah 
OK=/dev/blodnatt/blah-bleh-blah <<'EOF'
+LVM: Using 'root=/dev/blodnatt/blah-bleh-blah' from kernel commandline
+LVM: Using Volume Group 'blodnatt' for rootfs
+EOF
+
+echo "OK: $ok; FAIL: $fail"
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to