Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 258228 Details for
Bug 282100
[PATCH] add proper mdadm support to genkernel generated initramfs
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Full mdadm support, with IMSM support (v3)
0001-use-mdadm-instead-of-bundled-stripped-down-mdassembl.patch (text/plain), 5.41 KB, created by
Laurent Pinchart
on 2010-12-28 00:35:45 UTC
(
hide
)
Description:
Full mdadm support, with IMSM support (v3)
Filename:
MIME Type:
Creator:
Laurent Pinchart
Created:
2010-12-28 00:35:45 UTC
Size:
5.41 KB
patch
obsolete
>From f01e862b38b3219252ee76f7a20179a20a97a0fb Mon Sep 17 00:00:00 2001 >From: Matthias Dahl <ua_bugz_gentoo@mortal-soul.de> >Date: Fri, 27 Aug 2010 17:26:52 +0200 >Subject: [PATCH] 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. >--- > defaults/initrd.scripts | 5 +++-- > gen_compile.sh | 35 +++++++++++++++++++++++++++++++++++ > gen_determineargs.sh | 2 ++ > gen_initramfs.sh | 12 ++++++++++++ > genkernel.conf | 5 +++++ > 5 files changed, 57 insertions(+), 2 deletions(-) > >diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts >index e0710c4..531d2bd 100755 >--- a/defaults/initrd.scripts >+++ b/defaults/initrd.scripts >@@ -608,9 +608,10 @@ startVolumes() { > then > if [ ! -e '/etc/mdadm.conf' ] > then >- /sbin/mdadm --examine > /etc/mdadm.conf >+ echo "DEVICE /dev/sd[a-z]* /dev/hd[a-z]*" >/etc/mdadm.conf >+ /sbin/mdadm --examine --scan >>/etc/mdadm.conf > fi >- /sbin/mdadm --assemble >+ /sbin/mdadm -A --scan > fi > > if [ "${USE_DMRAID_NORMAL}" = '1' ] >diff --git a/gen_compile.sh b/gen_compile.sh >index 7bab9e1..ec5df4b 100755 >--- a/gen_compile.sh >+++ b/gen_compile.sh >@@ -444,6 +444,42 @@ compile_lvm() { > fi > } > >+compile_mdadm() { >+ if [ ! -f "${MDADM_BINCACHE}" ] >+ then >+ [ -f "${MDADM_SRCTAR}" ] || >+ gen_die "Could not find MDADM source tarball: ${MDADM_SRCTAR}! Please place it there, or place another version, changing /etc/genkernel.conf as necessary!" >+ cd "${TEMP}" >+ rm -rf "${MDADM_DIR}" > /dev/null >+ /bin/tar -jxpf "${MDADM_SRCTAR}" || >+ gen_die 'Could not extract MDADM source tarball!' >+ [ -d "${MDADM_DIR}" ] || >+ gen_die 'MDADM directory ${MDADM_DIR} is invalid!' >+ >+ cd "${MDADM_DIR}" >+ sed -i "/^CFLAGS = /s:^CFLAGS = \(.*\)$:CFLAGS = -Os:" Makefile >+ sed -i "/^CXFLAGS = /s:^CXFLAGS = \(.*\)$:CXFLAGS = -Os:" Makefile >+ sed -i "/^CWFLAGS = /s:^CWFLAGS = \(.*\)$:CWFLAGS = -Wall:" Makefile >+ sed -i "s/^# LDFLAGS = -static/LDFLAGS = -static/" Makefile >+ >+ print_info 1 'mdadm: >> Compiling...' >+ compile_generic 'mdadm mdmon' utils >+ >+ mkdir -p "${TEMP}/mdadm/sbin" >+ install -m 0755 -s mdadm "${TEMP}/mdadm/sbin/mdadm" >+ install -m 0755 -s mdmon "${TEMP}/mdadm/sbin/mdmon" >+ print_info 1 ' >> Copying to bincache...' >+ cd "${TEMP}/mdadm" >+ strip "sbin/mdadm" "sbin/mdmon" || >+ gen_die 'Could not strip mdadm binaries!' >+ /bin/tar -cjf "${MDADM_BINCACHE}" sbin/mdadm sbin/mdmon || >+ gen_die 'Could not create binary cache' >+ >+ cd "${TEMP}" >+ rm -rf "${MDADM_DIR}" mdadm >+ fi >+} >+ > compile_dmraid() { > compile_device_mapper > if [ ! -f "${DMRAID_BINCACHE}" ] >diff --git a/gen_determineargs.sh b/gen_determineargs.sh >index d911f07..b4b31fb 100755 >--- a/gen_determineargs.sh >+++ b/gen_determineargs.sh >@@ -128,6 +128,7 @@ determine_real_args() { > BUSYBOX_BINCACHE=`cache_replace "${BUSYBOX_BINCACHE}"` > DEVICE_MAPPER_BINCACHE=`cache_replace "${DEVICE_MAPPER_BINCACHE}"` > LVM_BINCACHE=`cache_replace "${LVM_BINCACHE}"` >+ MDADM_BINCACHE=`cache_replace "${MDADM_BINCACHE}"` > DMRAID_BINCACHE=`cache_replace "${DMRAID_BINCACHE}"` > ISCSI_BINCACHE=`cache_replace "${ISCSI_BINCACHE}"` > BLKID_BINCACHE=`cache_replace "${BLKID_BINCACHE}"` >@@ -139,6 +140,7 @@ determine_real_args() { > BUSYBOX_BINCACHE=`arch_replace "${BUSYBOX_BINCACHE}"` > DEVICE_MAPPER_BINCACHE=`arch_replace "${DEVICE_MAPPER_BINCACHE}"` > LVM_BINCACHE=`arch_replace "${LVM_BINCACHE}"` >+ MDADM_BINCACHE=`arch_replace "${MDADM_BINCACHE}"` > DMRAID_BINCACHE=`arch_replace "${DMRAID_BINCACHE}"` > ISCSI_BINCACHE=`arch_replace "${ISCSI_BINCACHE}"` > BLKID_BINCACHE=`arch_replace "${BLKID_BINCACHE}"` >diff --git a/gen_initramfs.sh b/gen_initramfs.sh >index 231411e..2400b75 100755 >--- a/gen_initramfs.sh >+++ b/gen_initramfs.sh >@@ -328,10 +328,22 @@ append_mdadm(){ > fi > cd ${TEMP} > mkdir -p "${TEMP}/initramfs-mdadm-temp/etc/" >+ mkdir -p "${TEMP}/initramfs-mdadm-temp/sbin/" > if [ "${MDADM}" -eq '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}" >diff --git a/genkernel.conf b/genkernel.conf >index a71ce69..62b7801 100644 >--- a/genkernel.conf >+++ b/genkernel.conf >@@ -162,6 +162,11 @@ LVM_DIR="LVM2.${LVM_VER}" > LVM_SRCTAR="${DISTDIR}/LVM2.${LVM_VER}.tgz" > LVM_BINCACHE="%%CACHE%%/LVM2.${LVM_VER}-%%ARCH%%.tar.bz2" > >+MDADM_VER="VERSION_MDADM" >+MDADM_DIR="mdadm-${MDADM_VER}" >+MDADM_SRCTAR="${DISTDIR}/mdadm-${MDADM_VER}.tar.bz2" >+MDADM_BINCACHE="%%CACHE%%/mdadm-${MDADM_VER}-%%ARCH%%.tar.bz2" >+ > DMRAID_VER="VERSION_DMRAID" > DMRAID_DIR="dmraid/${DMRAID_VER}" > DMRAID_SRCTAR="${DISTDIR}/dmraid-${DMRAID_VER}.tar.bz2" >-- >1.7.2.2 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 282100
:
201781
|
201783
|
244967
|
244969
| 258228 |
259663