aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Dahl <ua_bugz_gentoo@mortal-soul.de>2010-08-27 17:26:52 +0200
committerSebastian Pipping <sebastian@pipping.org>2011-01-17 15:42:07 +0100
commitdaed0ccebb15142265e2634262c474a2ef81201b (patch)
treebc9a0e8b52e89bfa16602ed2b607286d07f8f161 /gen_initramfs.sh
parentdocmatcher: Get GnuPG parameters out of the way (diff)
downloadgenkernel-daed0ccebb15142265e2634262c474a2ef81201b.tar.gz
genkernel-daed0ccebb15142265e2634262c474a2ef81201b.tar.bz2
genkernel-daed0ccebb15142265e2634262c474a2ef81201b.zip
use mdadm instead of bundled stripped down mdassemble (v2)
mdassemble can't handle newer metadata formats and fails for partitioned arrays, among other things. This... - replaces the bundled mdassemble with proper support for mdadm - fixes raid autodetection/assemble when no mdadm.conf is available - fixes a compilation failure for newer mdadm versions Tested w/ genkernel 3.4.10.907 and mdadm 3.1.3.
Diffstat (limited to 'gen_initramfs.sh')
-rwxr-xr-xgen_initramfs.sh12
1 files changed, 12 insertions, 0 deletions
diff --git a/gen_initramfs.sh b/gen_initramfs.sh
index ac32516..e7d4a10 100755
--- a/gen_initramfs.sh
+++ b/gen_initramfs.sh
@@ -339,10 +339,22 @@ append_mdadm(){
fi
cd ${TEMP}
mkdir -p "${TEMP}/initramfs-mdadm-temp/etc/"
+ mkdir -p "${TEMP}/initramfs-mdadm-temp/sbin/"
if [ "${MDADM}" = '1' ]
then
cp -a /etc/mdadm.conf "${TEMP}/initramfs-mdadm-temp/etc" \
|| gen_die "Could not copy mdadm.conf!"
+ if [ -e '/sbin/mdadm' ] && LC_ALL="C" ldd /sbin/mdadm|grep -q 'not a dynamic executable'
+ then
+ print_info 1 ' MDADM: Adding support (using local static binaries)...'
+ cp /sbin/mdadm "${TEMP}/initramfs-mdadm-temp/sbin/mdadm" ||
+ gen_die 'Could not copy over mdadm!'
+ else
+ print_info 1 ' MDADM: Adding support (compiling binaries)...'
+ compile_mdadm
+ /bin/tar -jxpf "${MDADM_BINCACHE}" -C "${TEMP}/initramfs-mdadm-temp" ||
+ gen_die "Could not extract mdadm binary cache!";
+ fi
fi
cd "${TEMP}/initramfs-mdadm-temp/"
find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \