SVN: geninitrd/trunk: Makefile geninitrd

glen glen at pld-linux.org
Mon Mar 23 01:14:53 CET 2009


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


More information about the pld-cvs-commit mailing list