diff options
author | Dimitri John Ledkov <xnox@ubuntu.com> | 2016-07-02 19:16:01 +0100 |
---|---|---|
committer | Dimitri John Ledkov <xnox@ubuntu.com> | 2016-07-02 19:16:01 +0100 |
commit | b83f8fcaffa542498c5698a3a161b9967ac1d3d6 (patch) | |
tree | 3cb83259723d112fd7b08b5bd299df2f5ee94009 /debian/mkconf |
mdadm (3.4-2) unstable; urgency=low
* Reneable incremental assembly
* Rely on udev to assemble incremental arrays
* In environments with systemd rely on mdadm-last-resort@.timer|.service
units to activate degrated raids
* In environments initramfs-tools initrd (no systemd) add local-block
script to do the same after 2/3rds of root delay iteration
* Drop local-top initramfs script
* Drop dependency on initscripts package
* Drop INITRDSTART support
* Drop mdadm-raid init script
* Drop ancient preinst
* In mdadm.init remove dependency on mdadm-raid
* In mdadm.init check, and bail out running in a container
* In mdadm.config drop mdadm/autostart logic
* Drop CREATE stanzas from mkconf and don't include them in the
initramfs. The generated defaults, are the compiled-in defaults. And
the current one generates warnings when running mdadm in the
initramfs, as there is no passwd|group files to resolve root/disk
uid/gid. Closes: 717609
* Adapt changes and formatting of initramfs hook from Ubuntu
* Bump standards version to 3.9.7, no changes required
* Fix copyright-refers-to-symlink-license
* Closes: #781172, #796624, #769201, #813335, #632401, #804973, #714155,
#770002, #737132, #675452, #726390, #813637, #814036.
# imported from the archive
Diffstat (limited to 'debian/mkconf')
-rw-r--r-- | debian/mkconf | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/debian/mkconf b/debian/mkconf new file mode 100644 index 00000000..632c9120 --- /dev/null +++ b/debian/mkconf @@ -0,0 +1,97 @@ +#!/bin/sh +# +# mkconf -- outputs valid mdadm.conf contents for the local system +# +# Copyright © martin f. krafft <madduck@madduck.net> +# distributed under the terms of the Artistic Licence 2.0 +# +set -eu + +ME="${0##*/}" +MDADM=/sbin/mdadm +DEBIANCONFIG=/etc/default/mdadm +CONFIG=/etc/mdadm/mdadm.conf + +# initialise config variables in case the environment leaks +MAILADDR= DEVICE= HOMEHOST= PROGRAM= + +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)" || : +fi + +# save existing values as defaults +if [ -r "$CONFIG" ]; then + DEVICE="$(sed -ne 's/^DEVICE //p' $CONFIG)" + HOMEHOST="$(sed -ne 's/^HOMEHOST //p' $CONFIG)" + PROGRAM="$(sed -ne 's/^PROGRAM //p' $CONFIG)" +fi + +[ "${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 + ;; +esac + +cat <<_eof +# mdadm.conf +# +# Please refer to mdadm.conf(5) for information about this file. +# + +# by default (built-in), scan all partitions (/proc/partitions) and all +# containers for MD superblocks. alternatively, specify devices to scan, using +# wildcards if desired. +#DEVICE ${DEVICE:-partitions containers} + +# automatically tag new arrays as belonging to the local system +HOMEHOST ${HOMEHOST:-<system>} + +# instruct the monitoring daemon where to send mail alerts +MAILADDR ${MAILADDR:-root} + +_eof + +if [ -n "${PROGRAM:-}" ]; then + cat <<-_eof + # program to run when mdadm monitor detects potentially interesting events + PROGRAM ${PROGRAM} + + _eof +fi + +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 + +echo "# This configuration was auto-generated on $(date -R) by mkconf" + +exit $error |