Author: glen
Date: Tue Nov 13 17:22:41 2007
New Revision: 9041

Modified:
   geninitrd/trunk/geninitrd
Log:
- parse root=/dev/sys/rootfs from kernel commandline for lvm2

Modified: geninitrd/trunk/geninitrd
==============================================================================
--- geninitrd/trunk/geninitrd   (original)
+++ geninitrd/trunk/geninitrd   Tue Nov 13 17:22:41 2007
@@ -1314,10 +1314,23 @@
                initrd_gen_devices
 
                add_linuxrc <<-EOF
-                       export LVM_ROOTDEV=$rootdev
-                       export LVM_VGVOLUME=$VGVOLUME
+                       export ROOTDEV=$rootdev
+                       export VGVOLUME=$VGVOLUME
                EOF
                add_linuxrc <<-'EOF'
+                       # parse rootdev from kernel commandline
+                       for arg in $CMDLINE; do
+                               if [ "${arg##root=}" != "${arg}" ]; then
+                                       ROOTDEV=${arg##root=}
+                                       echo "Using $ROOTDEV from kernel 
commandline"
+                                       local tmp=${ROOTDEV#/dev/}
+                                       if [ "$tmp" != "$ROOTDEV" ]; then
+                                               VGVOLUME=${tmp%/*}
+                                               echo "Using $VGVOLUME LVM 
Volume Group from kernel commandline"
+                                       fi
+                               fi
+                       done
+
                        # disable noise from LVM accessing devices that aren't 
ready.
                        read printk < /proc/sys/kernel/printk
                        echo 0 > /proc/sys/kernel/printk
@@ -1327,14 +1340,14 @@
                        lvm.static vgscan --mknodes --ignorelockingfailure 
2>/dev/null
 
                        : 'Activating Volume Groups'
-                       lvm.static vgchange --ignorelockingfailure -a y 
$LVM_VGVOLUME 2>/dev/null
+                       lvm.static vgchange --ignorelockingfailure -a y 
$VGVOLUME 2>/dev/null
 
                        echo "$printk" > /proc/sys/kernel/printk
 
                        # Find out major/minor
-                       attrs="$(lvm.static lvdisplay --ignorelockingfailure -c 
$LVM_ROOTDEV 2>/dev/null)"
+                       attrs="$(lvm.static lvdisplay --ignorelockingfailure -c 
$ROOTDEV 2>/dev/null)"
                        if [ "$attrs" ]; then
-                               
majmin="${attrs#*$LVM_ROOTDEV*:*:*:*:*:*:*:*:*:*:*:*}"
+                               
majmin="${attrs#*$ROOTDEV*:*:*:*:*:*:*:*:*:*:*:*}"
                                if [ "$majmin" != "$attrs" ]; then
                                        major="${majmin%:*}"
                                        minor="${majmin#*:}"
@@ -1345,7 +1358,7 @@
                                # Pass it to kernel
                                echo $((256 * $major + $minor)) > 
/proc/sys/kernel/real-root-dev
                        else
-                               echo 2>&1 "Error figuring out real root device 
for $LVM_ROOTDEV!"
+                               echo 2>&1 "Error figuring out real root device 
for $ROOTDEV!"
                                echo 2>&1 "System will not most likely boot up! 
So dropping you to a shell!"
                                echo 2>&1 ""
                                sh
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to