aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hjalmarsson <xake@rymdraket.net>2011-02-23 07:10:51 +0100
committerSebastian Pipping <sebastian@pipping.org>2011-02-24 10:27:10 +0100
commit7ae5e10474ef720a50b6ae01574036beaa017c38 (patch)
treeb5fe4d1325cf3de9939837552ad1105a65698481
parentBump version to 3.4.13 (diff)
downloadgenkernel-7ae5e10474ef720a50b6ae01574036beaa017c38.tar.gz
genkernel-7ae5e10474ef720a50b6ae01574036beaa017c38.tar.bz2
genkernel-7ae5e10474ef720a50b6ae01574036beaa017c38.zip
Introducing MDADM_CONFIG
Make it possible to choose a custom mdadm.conf for your ramdisk. If not set, no mdadm.conf will be copied, and ramdisk will auto-detect. This also fixes a regression where genkernel always tried to copy /etc/mdadm.conf to the ramdisk, failing if it was non-existant.
-rw-r--r--doc/genkernel.8.txt7
-rwxr-xr-xgen_cmdline.sh7
-rwxr-xr-xgen_determineargs.sh1
-rwxr-xr-xgen_initramfs.sh15
-rw-r--r--genkernel.conf7
5 files changed, 31 insertions, 6 deletions
diff --git a/doc/genkernel.8.txt b/doc/genkernel.8.txt
index cd276d2b..e82f1ec4 100644
--- a/doc/genkernel.8.txt
+++ b/doc/genkernel.8.txt
@@ -246,11 +246,14 @@ INITIALIZATION
exist.
*--mdadm*::
- Copy '/etc/mdadm.conf' and mdadm/mdmon binaries to initramfs.
+ Include mdadm/mdmon support.
Without sys-fs/mdadm[static] installed, this will compile mdadm for you.
+*--mdadm-config*=<file>::
+ Use <file> as configfile for MDADM.
+
*--dmraid*::
- Add DMRAID support.
+ Include DMRAID support.
*--multipath*::
Include Multipath support
diff --git a/gen_cmdline.sh b/gen_cmdline.sh
index ebf69ea2..506ca3f6 100755
--- a/gen_cmdline.sh
+++ b/gen_cmdline.sh
@@ -79,7 +79,8 @@ longusage() {
echo " --> 'emerge evms' in the host operating system"
echo " first"
echo " --lvm Include LVM support"
- echo " --mdadm Copy /etc/mdadm.conf to initramfs"
+ echo " --mdadm Include MDADM/MDMON support"
+ echo " --mdadm-config=<file> Use file as mdadm.conf in initramfs"
echo " --dmraid Include DMRAID support"
echo " --multipath Include Multipath support"
echo " --iscsi Include iSCSI support"
@@ -248,6 +249,10 @@ parse_cmdline() {
CMD_MDADM=1
print_info 2 "CMD_MDADM: $CMD_MDADM"
;;
+ --mdadm-config=*)
+ CMD_MDADM_CONFIG=`parse_opt "$*"`
+ print_info 2 "CMD_MDADM_CONFIG: $CMD_MDADM_CONFIG"
+ ;;
--no-busybox)
CMD_BUSYBOX=0
print_info 2 "CMD_BUSYBOX: ${CMD_BUSYBOX}"
diff --git a/gen_determineargs.sh b/gen_determineargs.sh
index a55ccecf..e680569e 100755
--- a/gen_determineargs.sh
+++ b/gen_determineargs.sh
@@ -119,6 +119,7 @@ determine_real_args() {
set_config_with_override 1 LUKS CMD_LUKS
set_config_with_override 1 GPG CMD_GPG
set_config_with_override 1 MDADM CMD_MDADM
+ set_config_with_override 2 MDADM_CONFIG CMD_MDADM_CONFIG
set_config_with_override 1 MULTIPATH CMD_MULTIPATH
set_config_with_override 1 FIRMWARE CMD_FIRMWARE
set_config_with_override 2 FIRMWARE_DIR CMD_FIRMWARE_DIR "/lib/firmware"
diff --git a/gen_initramfs.sh b/gen_initramfs.sh
index 582df2cc..2d017fda 100755
--- a/gen_initramfs.sh
+++ b/gen_initramfs.sh
@@ -342,8 +342,19 @@ append_mdadm(){
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 [ -n "${MDADM_CONFIG}" ]
+ then
+ if [ -f "${MDADM_CONFIG}" ]
+ then
+ cp -a "${MDADM_CONFIG}" "${TEMP}/initramfs-mdadm-temp/etc/mdadm.conf" \
+ || gen_die "Could not copy mdadm.conf!"
+ else
+ gen_die '${MDADM_CONFIG} does not exist!'
+ fi
+ else
+ print_info 1 ' MDADM: Skipping inclusion of mdadm.conf'
+ fi
+
if [ -e '/sbin/mdadm' ] && LC_ALL="C" ldd /sbin/mdadm | grep -q 'not a dynamic executable' \
&& [ -e '/sbin/mdmon' ] && LC_ALL="C" ldd /sbin/mdmon | grep -q 'not a dynamic executable'
then
diff --git a/genkernel.conf b/genkernel.conf
index 779d71f4..d510339f 100644
--- a/genkernel.conf
+++ b/genkernel.conf
@@ -70,9 +70,14 @@ USECOLOR="yes"
# If included, busybox is rebuilt if the cached copy is out of date.
# BUSYBOX="yes"
-# Copy /etc/mdadm.conf, mdadm/mdmon binaries to initramfs.
+# Includes mdadm/mdmon binaries in initramfs.
# Without sys-fs/mdadm[static] installed, this will build a static mdadm.
# MDADM="no"
+# Specify a custom mdadm.conf.
+# If not set the ramdisk will be built without a mdadm.conf and will auto-detect
+# arrays during bootup.
+# This should generally not be needed.
+# MDADM_CONFIG=""
# Add Multipath support.
# MULTIPATH="no"