Author: glen
Date: Mon Mar 23 01:14:53 2009
New Revision: 10230

Modified:
   geninitrd/trunk/Makefile
   geninitrd/trunk/geninitrd
Log:
- modularize mdadm

Modified: geninitrd/trunk/Makefile
==============================================================================
--- geninitrd/trunk/Makefile    (original)
+++ geninitrd/trunk/Makefile    Mon Mar 23 01:14:53 2009
@@ -1,6 +1,6 @@
 # when making release, make sure you do it as RELEASE document describes
 VERSION                := 10000.3
-MODS           := mod-ide.sh mod-luks.sh mod-multipath.sh mod-dmraid.sh 
mod-lvm.sh
+MODS           := mod-ide.sh mod-luks.sh mod-multipath.sh mod-dmraid.sh 
mod-lvm.sh mod-md.sh
 FILES          := Makefile geninitrd.sysconfig geninitrd functions $(MODS) 
geninitrd.8 geninitrd.8.xml ChangeLog
 prefix         := /usr
 mandir         := $(prefix)/share/man

Modified: geninitrd/trunk/geninitrd
==============================================================================
--- geninitrd/trunk/geninitrd   (original)
+++ geninitrd/trunk/geninitrd   Mon Mar 23 01:14:53 2009
@@ -20,8 +20,6 @@
 . /etc/sysconfig/system
 
 COMPRESS=yes
-USERAIDSTART=yes
-USEMDADMSTATIC=no
 USEINSMODSTATIC=no
 USE_SUSPEND=yes
 USE_TUXONICE=no
@@ -67,8 +65,6 @@
 
 # if we should init NFS at boot
 have_nfs=no
-# if we should init md (softraid) at boot
-have_md=no
 
 usage() {
        uname_r=$(uname -r)
@@ -425,79 +421,6 @@
        fi
 }
 
-find_modules_md() {
-       local found raidlevel
-
-       if [ -f /etc/mdadm.conf ]; then
-               debug "Finding RAID details using mdadm for rootdev=$1"
-               eval `(/sbin/mdadm -v --examine --scan 
--config=/etc/mdadm.conf;/sbin/mdadm -v --detail --scan 
--config=/etc/mdadm.conf) | awk -v rootdev="$1" '
-               BEGIN {
-                       found = "no";
-                       dev_list = "";
-                       raidlevel = ""
-                       rootdev_devfs = rootdev;
-                       if (rootdev ~ /\/dev\/md\/[0-9]/) {
-                               gsub(/\/dev\/md\//,"/dev/md",rootdev_devfs);
-                       }
-               }
-
-               /^ARRAY/ {
-                       if (($2 == rootdev) || ($2 == rootdev_devfs)) {
-                               raidlevel=$3;
-                               gsub(/level=/,NUL,raidlevel);
-                               if (raidlevel ~ /^raid([0-6]|10)/) {
-                                       gsub(/raid/,NUL,raidlevel);
-                               };
-                               found="yes";
-                               getline x;
-                               if (x ~ /devices=/) {
-                                       dev_list = x;
-                                       gsub(".*devices=", NUL, dev_list);
-                                       gsub(",", " ", dev_list);
-                               }
-                       }
-               }
-
-               END {
-                       print "have_md=" found;
-                       print "raidlevel=" raidlevel;
-                       print "dev_list=\"" dev_list "\"";
-               }'`
-       fi
-
-       if [ "$have_md" != "yes" -a -f /etc/raidtab ]; then
-               die "raidtools are not longer supported. Please migrate to 
mdadm setup!"
-       fi
-
-       if is_yes "$have_md"; then
-               case "$raidlevel" in
-               [01]|10)
-                       find_module "raid$raidlevel"
-                       ;;
-               [456])
-                       find_module "-raid$raidlevel"
-                       find_module "-raid456"
-                       ;;
-               linear)
-                       find_module "linear"
-                       ;;
-               *)
-                       warn "raid level $number (in mdadm config) not 
recognized"
-                       ;;
-               esac
-       else
-               die "RAID devices not found for \"$1\", check your 
configuration!"
-       fi
-
-       rootdev_nr=$(( $rootdev_nr + 1 ))
-       eval "rootdev${rootdev_nr}=\"$1\""
-       eval "dev_list${rootdev_nr}=\"${dev_list}\""
-
-       for device in $dev_list; do
-               find_modules_for_devpath $device
-       done
-}
-
 find_modules_scsi() {
        local n
        for n in $PRESCSIMODS; do
@@ -564,7 +487,7 @@
                return
        fi
 
-       if [[ "$devpath" == /dev/md* ]]; then
+       if is_md "$devpath"; then
                find_modules_md "$devpath"
                return
        fi
@@ -979,60 +902,6 @@
        EOF
 }
 
-initrd_gen_md() {
-       debug "Setting up mdadm..."
-
-       if [ ! -x /sbin/mdadm -o ! -x /sbin/initrd-mdassemble ]; then
-               die "/sbin/mdadm or /sbin/initrd-mdassemble is missing!"
-       fi
-
-       inst_exec /sbin/initrd-mdassemble /bin/mdassemble
-
-       # LVM on RAID case
-       dev_list_extra=$(awk '/^DEVICE / { for (i=2; i<=NF; i++) { printf "%s 
", $i; }; } ' /etc/mdadm.conf | xargs)
-       if [ "$dev_list_extra" = "partitions" ]; then
-               # FIXME: handle this case (see man mdadm.conf)
-               echo "DEVICE partitions" >> "$DESTDIR/etc/mdadm.conf"
-               dev_list_extra=""
-       else
-               for ex_dev in $dev_list_extra; do
-                       echo "DEVICE $ex_dev" >> "$DESTDIR/etc/mdadm.conf"
-               done
-       fi
-       do_md0=1
-       for nr in `seq 1 $rootdev_nr`; do
-               eval cr_rootdev="\$rootdev${nr}"
-               eval cr_dev_list="\$dev_list${nr}"
-               debug echo "Setting up array ($cr_rootdev = $cr_dev_list)"
-
-               [ "$cr_rootdev" = "/dev/md0" ] && do_md0=0
-
-               echo "DEVICE $cr_dev_list" >> "$DESTDIR/etc/mdadm.conf"
-               cr_dev_list_md="$(echo "$cr_dev_list" | xargs | awk ' { gsub(/ 
+/,",",$0); print $0; }')"
-               cr_md_conf=$(/sbin/mdadm --detail --brief 
--config=/etc/mdadm.conf $cr_rootdev | awk ' { gsub(/spares=[0-9]+/, "", $0); 
print $0; }')
-               if [ -n "$cr_md_conf" ]; then
-                       echo "$cr_md_conf" >> "$DESTDIR/etc/mdadm.conf"
-               else
-                       echo "ARRAY $cr_rootdev devices=$cr_dev_list_md" >> 
"$DESTDIR/etc/mdadm.conf"
-               fi
-
-               for f in $cr_dev_list $cr_rootdev $dev_list_extra; do
-                       # mkdir in case of devfs name
-                       inst_d $(dirname $f)
-                       [ -e "$DESTDIR/$f" ] && continue
-                       # this works fine with and without devfs
-                       inst $f $f
-               done
-       done
-
-       echo "mdassemble" | add_linuxrc
-
-       # needed to determine md-version
-       if [ "$do_md0" -eq 1 ]; then
-               mknod $DESTDIR/dev/md0 b 9 0
-       fi
-}
-
 initrd_gen_nfs() {
        # use root=/dev/ram0 init=/linuxrc when starting kernel or you will
        # have problems like init(XX) being child process of swapper(1).
@@ -1199,7 +1068,7 @@
        . /etc/udev/udev.conf
 fi
 
-# ide addon
+# IDE addon
 . /lib/geninitrd/mod-ide.sh
 # cryptsetup luks addon
 . /lib/geninitrd/mod-luks.sh
@@ -1209,6 +1078,8 @@
 . /lib/geninitrd/mod-dmraid.sh
 # LVM addon
 . /lib/geninitrd/mod-lvm.sh
+# md addon
+. /lib/geninitrd/mod-md.sh
 
 if [ -x /sbin/initrd-blkid ]; then
        USE_BLKID=yes
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to