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