Package: partman-auto-raid Version: 14 I'm preseed installing using two spares. The auto-raidcfg script is not properly counting spares resulting in mdadm error (fatal).
tty0: (in red) An unexpected error occurred while setting up a preseeded RAID configuration. Check /var/log/syslog or see virtual console 4 for the details. syslog: partman-auto-raid: Selected spare count: 1 partman-auto-raid: Spare devices count: 2 partman-auto-raid: mdadm: You have listed more devices (5) than are in the array(4)! partman-auto-raid: Error creating array /dev/md0 my preseed.cfg partman-auto-raid rule looks as follows: d-i partman-auto-raid/recipe string \ 1 2 2 ext3 / \ /dev/sda1#/dev/sdb1 \ /dev/sdc1#/dev/sdd1 \ . Basically spares are counted (with wc) before they are split on '#'. Below is a patch (tested) to fix this behavior: --- auto-raidcfg 2008-08-09 14:26:07.000000000 -0500 +++ auto-raidcfg.FIXED 2009-07-20 15:08:29.474764832 -0500 @@ -24,12 +24,14 @@ DEVICES="$6" SPARE_DEVICES="$7" - NAMED_SPARES=$(echo $SPARE_DEVICES | wc -w) - RAID_DEVICES=$(echo $DEVICES | sed -e "s/#/ /g") SPARE_DEVICES=$(echo $SPARE_DEVICES | sed -e "s/#/ /g") + # fixed - needs to run after splitting SPARE_DEVICES + NAMED_SPARES=$(echo $SPARE_DEVICES | wc -w) + + if [ "$RAID_TYPE" != "0" ]; then # Count them SELECTED=$(echo $RAID_DEVICES | wc -w) To work around this problem without rebuilding installer packages, I'm running following script from inittab to replace auto-raidcfg (I placed it into initrd along with preseed.cfg and /bin/auto-raidcfg.fixed): /bin/fix-auto-raidcfg: #!/bin/sh /bin/echo -n "waiting for /bin/auto-raidcfg to appear: "; while [ ! -e /bin/auto-raidcfg ]; do /bin/sleep 1; /bin/echo -n "."; done; /bin/echo ""; /bin/mv /bin/auto-raidcfg.fixed /bin/auto-raidcfg /bin/echo "*** replaced /bin/auto-raidcfg with a fixed version" /bin/echo -n "sleeping: " while true; do /bin/echo -n '.'; sleep 1; done; my initrd's /etc/inittab looks as follows: # /etc/inittab # busybox init configuration for debian-installer # main rc script ::sysinit:/sbin/reopen-console /sbin/debian-installer-startup # main setup program ::respawn:/sbin/reopen-console /sbin/debian-installer # convenience shells tty2::askfirst:-/bin/sh tty3::askfirst:-/bin/sh # logging tty4::respawn:/usr/bin/tail -f /var/log/syslog # fix auto-raidcfg script tty5::respawn:/bin/fix-auto-raidcfg # Stuff to do before rebooting ::ctrlaltdel:/sbin/shutdown > /dev/null 2>&1 # re-exec init on receipt of SIGHUP/SIGUSR1 ::restart:/sbin/init Please let me know if you accept my patch. Thanks, Michal ps. Since I'm already modifying auto-raidcfg, I'm using a non-default chunk size (not shown in above code). Ability to specify chunk size in partman-auto-raid/recipe would be nice... optimal chunk size increased sequential IO on my systems by 30%. -- Michal Sabala | "There are 10 types of Research Programmer / System Administrator | people in the world. Those LAC/NCDM: University of Illinois at Chicago | who understand binary and tel. (312)-996-9546 | those who don't." -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org