#!/bin/sh # # mkconf -- outputs valid mdadm.conf contents for the local system # # Copyright © martin f. krafft # distributed under the terms of the Artistic Licence 2.0 # # $Id: mkconf 261 2006-11-09 13:32:35Z madduck $ # set -eu ME="${0##*/}" MDADM=/sbin/mdadm DEBIANCONFIG=/etc/default/mdadm CONFIG=/etc/mdadm.conf test -r $DEBIANCONFIG && . $DEBIANCONFIG if [ -n "${MDADM_MAILADDR__:-}" ] then # honour MAILADDR from the environment (from postinst) MAILADDR="$MDADM_MAILADDR__" else # preserve existing MAILADDR MAILADDR="$(sed -ne 's,MAILADDR ,,p' $CONFIG 2>/dev/null || echo root)" fi generate=0 [ "${1:-}" = force-generate ] && rm -f $CONFIG case "${1:-}" in generate|force-generate) [ -n "${2:-}" ] && CONFIG=$2 # only barf if the config file specifies anything else than MAILADDR if egrep -qv '^(MAILADDR.*|#.*|)$' $CONFIG 2>/dev/null then echo "E: $ME: $CONFIG already exists." >&2 exit 255 fi mkdir --parent ${CONFIG%/*} exec >$CONFIG generate=1 ;; esac cat <<_eof # mdadm.conf # # Please refer to mdadm.conf(5) for information about this file. # # MD monitor START_MDADMMONITOR=False # by default, scan all partitions (/proc/partitions) for MD superblocks. # alternatively, specify devices to scan, using wildcards if desired. DEVICE partitions # auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes # automatically tag new arrays as belonging to the local system HOMEHOST # instruct the monitoring daemon where to send mail alerts MAILADDR $MAILADDR _eof error=0 if [ ! -r /proc/mdstat ] then echo W: $ME: MD subsystem is not loaded, thus I cannot scan for arrays. >&2 error=1 elif [ ! -r /proc/partitions ] then echo W: $ME: /proc/partitions cannot be read, thus I cannot scan for arrays. >&2 error=2 else echo "# definitions of existing MD arrays" if ! $MDADM --examine --scan --config=partitions then error=$(($? + 128)) echo W: $ME: failed to scan for partitions. >&2 echo "### WARNING: scan failed." else echo fi fi if [ $generate -eq 1 ] then cat <<_eof # This file was auto-generated on $(date -R) # by mkconf \$Id: mkconf 261 2006-11-09 13:32:35Z madduck $ _eof mkdir -p /var/lib/mdadm md5sum $CONFIG > /var/lib/mdadm/mdadm.conf-generated fi exit $error