Author: arekm
Date: Tue Apr  3 12:18:55 2007
New Revision: 8409

Modified:
   geninitrd/trunk/functions
   geninitrd/trunk/geninitrd
Log:
Create additional devices like xfs logdev. Verbose copying of devices.

Modified: geninitrd/trunk/functions
==============================================================================
--- geninitrd/trunk/functions   (original)
+++ geninitrd/trunk/functions   Tue Apr  3 12:18:55 2007
@@ -9,18 +9,23 @@
 # 
 # Sets global variables:
 # - $rootdev
+# - $rootdev_add
 # - $rootFS
 #
 find_root() {
        local fstab="$1"
        local function="${PROGRAM:+$PROGRAM: }find_root"
+       local rootopt
 
-       eval $(awk '/^[\t ]*#/ {next} {if ( $2 == "/" ) {print "rootdev=\"" $1 
"\"\nrootFs=\"" $3 "\""}}' $fstab)
+       eval $(awk '/^[\t ]*#/ {next} {if ( $2 == "/" ) {print "rootdev=\"" $1 
"\"\nrootFs=\"" $3 "\"\nrootopt=\"" $4 "\""}}' $fstab)
        if [ -z "$rootdev" ]; then
                echo >&2 "$function: can't find real device for rootfs"
                return 1
        fi
 
+       # additional devices needed (xfs logdev)
+       rootdev_add=$(echo "$rootopt" | awk -F',' '{ for (i=1; i<=NF; i++) { if 
($i ~ /^logdev=/) { gsub(/^logdev=/, NIL, $i); print $i; } } }')
+
        case $rootdev in
        LABEL=*)
                if [ ! -x /sbin/blkid ]; then

Modified: geninitrd/trunk/geninitrd
==============================================================================
--- geninitrd/trunk/geninitrd   (original)
+++ geninitrd/trunk/geninitrd   Tue Apr  3 12:18:55 2007
@@ -252,7 +252,7 @@
                return
        fi
        debug "$1 -> $2"
-       cp "$1" "$2"
+       cp -HR "$1" "$2"
 }
 
 find_modules_softraid() {
@@ -958,6 +958,7 @@
 debug "Using $rootdev as device for rootfs"
 
 find_modules_for "$rootdev"
+[ -n "$rootdev_add" ] && find_modules_for "$rootdev_add"
 
 findmodule "-$rootFs"
 
@@ -1057,7 +1058,7 @@
        mkdir -p $MNTIMAGE/etc
        mkdir -p $MNTIMAGE/dev
        resume_dev="$(awk '/^resume device =/ { print $4 } ' /etc/suspend.conf)"
-       cp -HR /dev/snapshot $resume_dev $MNTIMAGE/dev
+       inst /dev/snapshot $resume_dev $MNTIMAGE/dev
        inst /etc/suspend.conf $MNTIMAGE/etc/suspend.conf
        inst /usr/sbin/resume "$MNTIMAGE/bin/resume"
        echo "resume" >> "$s"
@@ -1202,7 +1203,7 @@
                        [ -e "$MNTIMAGE/$f" ] && continue
                        debug echo "copying $f"
                        # this works fine with and without devfs
-                       cp -HR $f $MNTIMAGE/$f
+                       inst $f $MNTIMAGE/$f
                done
        done
 
@@ -1281,7 +1282,7 @@
                for device in $PVDEVICES; do
                        # if LVM on RAID then device might be copied already in 
gen_softraid
                        [ -e "$MNTIMAGE/dev/$(basename $device)" ] && continue
-                       cp -HR $device $MNTIMAGE/dev/
+                       inst $device $MNTIMAGE/dev/
                done
        fi
        echo "mount -t proc none /proc" >> "$s"
@@ -1395,9 +1396,12 @@
        initrd_gen_procdata
 fi
 
+# additional devs always needed
+[ ! -e "$MNTIMAGE/$rootdev_add" ] && inst $rootdev_add $MNTIMAGE/dev
+
 if [ "$INITRDFS" = "initramfs" ]; then
        mkdir -p $MNTIMAGE/newroot
-       [ ! -e "$MNTIMAGE/$rootdev" ] && cp -HR $rootdev $MNTIMAGE/dev
+       [ ! -e "$MNTIMAGE/$rootdev" ] && inst $rootdev $MNTIMAGE/dev
        # Parsing root parameter
        # We support passing root as hda3 /dev/hda3 0303 0x0303 and 303
        cat << 'EOF' >> "$s"
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to