diff options
author | Matthias Dahl <ua_bugz_gentoo@mortal-soul.de> | 2010-08-27 17:26:52 +0200 |
---|---|---|
committer | Sebastian Pipping <sebastian@pipping.org> | 2011-01-17 15:42:07 +0100 |
commit | daed0ccebb15142265e2634262c474a2ef81201b (patch) | |
tree | bc9a0e8b52e89bfa16602ed2b607286d07f8f161 /gen_initramfs.sh | |
parent | docmatcher: Get GnuPG parameters out of the way (diff) | |
download | genkernel-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-x | gen_initramfs.sh | 12 |
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}" \ |