Index: gen_cmdline.sh =================================================================== --- gen_cmdline.sh (revision 545) +++ gen_cmdline.sh (working copy) @@ -81,6 +81,7 @@ echo " first" echo " --lvm Include LVM support" echo " --lvm2 Include LVM support" + echo " --mdadm Copy /etc/mdadm.conf to initramfs" echo " --dmraid Include DMRAID support" echo " --slowusb Enables extra pauses for slow USB CD boots" echo " --bootloader=grub Add new kernel to GRUB configuration" @@ -229,6 +230,10 @@ echo print_warning 1 "Please use --lvm, as --lvm2 is deprecated." ;; + --mdadm) + CMD_MDADM=1 + print_info 2 "CMD_MDADM: $CMD_MDADM" + ;; --no-busybox) CMD_NO_BUSYBOX=1 print_info 2 "CMD_NO_BUSYBOX: ${CMD_NO_BUSYBOX}" Index: x86/busy-config =================================================================== --- x86/busy-config (revision 545) +++ x86/busy-config (working copy) @@ -376,6 +376,7 @@ # CONFIG_IPCRM is not set # CONFIG_IPCS is not set CONFIG_LOSETUP=y +CONFIG_MDADM=y CONFIG_MDEV=y # CONFIG_FEATURE_MDEV_CONF is not set CONFIG_MDSTART=y Index: gen_determineargs.sh =================================================================== --- gen_determineargs.sh (revision 545) +++ gen_determineargs.sh (working copy) @@ -412,6 +412,13 @@ DMRAID=0 fi + if isTrue "${CMD_MDADM}" + then + MDADM=1 + else + MDADM=0 + fi + get_KV UNIONFS_MODULES_BINCACHE=`kv_replace "${UNIONFS_MODULES_BINCACHE}"` } Index: gen_initramfs.sh =================================================================== --- gen_initramfs.sh (revision 545) +++ gen_initramfs.sh (working copy) @@ -226,6 +226,23 @@ rm -r "${TEMP}/initramfs-evms-temp/" } +append_mdadm(){ + if [ -d "${TEMP}/initramfs-mdadm-temp" ] + then + rm -r "${TEMP}/initramfs-mdadm-temp/" + fi + cd ${TEMP} + mkdir -p "${TEMP}/initramfs-mdadm-temp/etc/" + if [ "${MDADM}" -eq '1' ] + cp -a /etc/mdadm.conf "${TEMP}/initramfs-udev-temp/etc" \ + || gen_die "Could not copy mdadm.conf!"; } + then + fi + cd "${TEMP}/initramfs-mdadm-temp/" + find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" + rm -rf "${TEMP}/initramfs-mdadm-temp" > /dev/null +} + append_splash(){ if [ -x /usr/bin/splash_geninitramfs ] || [ -x /sbin/splash_geninitramfs ] then @@ -437,6 +454,7 @@ append_data 'lvm' "${LVM}" append_data 'dmraid' "${DMRAID}" append_data 'evms' "${EVMS}" + append_data 'mdadm' "${MDADM}" if [ "${NOINITRDMODULES}" = '' ] then Index: generic/initrd.scripts =================================================================== --- generic/initrd.scripts (revision 545) +++ generic/initrd.scripts (working copy) @@ -602,6 +602,15 @@ ln -sf /dev/device-mapper /dev/mapper/control fi + if [ "${USE_MDADM}" -eq '1' ] + then + if [ ! -e '/etc/mdadm.conf' ] + then + /sbin/mdadm --examine > /etc/mdadm.conf + fi + /sbin/mdadm --assemble + fi + if [ "${USE_DMRAID_NORMAL}" -eq '1' ] then if [ -e '/sbin/dmraid' ] Index: generic/linuxrc =================================================================== --- generic/linuxrc (revision 545) +++ generic/linuxrc (working copy) @@ -108,6 +108,9 @@ dolvm) USE_LVM_NORMAL=1 ;; + domdadm) + USE_MDADM=1 + ;; dodmraid) USE_DMRAID_NORMAL=1 ;;