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.
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
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"
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}"
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"
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
# 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"