diff -ur mdcfg-1.22/debian/mdcfg-utils.templates mdcfg-1.22-new/debian/mdcfg-utils.templates --- mdcfg-1.22/debian/mdcfg-utils.templates 2006-10-04 18:09:37.000000000 +0100 +++ mdcfg-1.22-new/debian/mdcfg-utils.templates 2008-08-26 22:18:09.764073786 +0100 @@ -39,7 +39,7 @@ Template: mdcfg/createmain Type: select -__Choices: RAID0, RAID1, RAID5, Cancel +__Choices: RAID0, RAID1, RAID5, RAID10, Cancel _Description: Multidisk device type: Please choose the type of the multidisk device to be created. @@ -117,6 +117,13 @@ Please choose which partitions are active devices. You must select exactly ${COUNT} partitions. +Template: mdcfg/raid10devs +Type: multiselect +Choices: ${PARTITIONS} +_Description: Active devices for the RAID10 multidisk device: + You have chosen to create a RAID10 array. Please choose the active devices + in this array. + Template: mdcfg/deletemenu Type: select #flag:translate!:1 diff -ur mdcfg-1.22/mdcfg.sh mdcfg-1.22-new/mdcfg.sh --- mdcfg-1.22/mdcfg.sh 2006-10-04 18:09:37.000000000 +0100 +++ mdcfg-1.22-new/mdcfg.sh 2008-08-26 22:25:18.422073784 +0100 @@ -89,6 +89,8 @@ fi case "$RAID_SEL" in + "RAID10") + md_create_raid10 ;; "RAID5") md_create_raid5 ;; "RAID1") @@ -472,6 +474,38 @@ ${SPARE_DEVICES} ${MISSING_SPARES} } +md_create_raid10() { + db_subst mdcfg/raid10devs PARTITIONS "${PARTITIONS}" + db_set mdcfg/raid10devs "" + db_input critical mdcfg/raid10devs + db_go + + if [ "$?" -eq 30 ]; then return; fi + + db_get mdcfg/raid10devs + SELECTED=0 + for i in $RET; do + let SELECTED++ + done + + prune_partitions "$RET" + + MD_NUM=`grep ^md /proc/mdstat|sed -e 's/^md\(.*\) : active .*/\1/'|sort|tail -n 1` + + if [ -z "${MD_NUM}" ]; then + MD_NUM=0 + else + let MD_NUM++ + fi + + logger -t mdcfg "Number of devices in the RAID10 array md${MD_NUM}: ${SELECTED}" + + RAID_DEVICES="$(echo ${RET} | sed -e 's/,//g')" + log-output -t mdcfg \ + mdadm --create /dev/md/${MD_NUM} --auto=yes --force -R -l raid10 \ + -n ${SELECTED} ${RAID_DEVICES} +} + md_mainmenu() { while [ 1 ]; do db_set mdcfg/mainmenu "false" @@ -502,6 +536,7 @@ modprobe raid1 >/dev/null 2>&1 # kernels >=2.6.18 have raid456 modprobe raid456 >/dev/null 2>&1 || modprobe raid5 >/dev/null 2>&1 +modprobe raid10 >/dev/null 2>&1 # Try to detect MD devices, and start them # mdadm will fail if /dev/md does not already exist Only in mdcfg-1.22-new: mdcfg.sh~