#!/bin/sh PREREQ="mdadm mdrun multipath" prereqs() { echo "$PREREQ" } case $1 in # get pre-requisites prereqs) prereqs exit 0 ;; esac if [ ! -e /sbin/lvm ]; then exit 0 fi lvchange_activate() { lvm lvchange -aay -y --sysinit --ignoreskippedcluster "$@" } activate() { local dev="$1" # Make sure that we have a non-empty argument if [ -z "$dev" ]; then return 1 fi case "$dev" in # Take care of lilo boot arg, risky activating of all vg fe[0-9]*) lvchange_activate exit 0 ;; # FIXME: check major /dev/root) lvchange_activate exit 0 ;; /dev/mapper/*) eval $(dmsetup splitname --nameprefixes --noheadings --rows "${dev#/dev/mapper/}") if [ "$DM_VG_NAME" ] && [ "$DM_LV_NAME" ]; then lvchange_activate "$DM_VG_NAME/$DM_LV_NAME" fi ;; /dev/*/*) # Could be /dev/VG/LV; use lvs to check if lvm lvs -- "$dev" >/dev/null 2>&1; then lvchange_activate "$dev" fi ;; esac } conffile=/conf/btrfs-lvm if [ -n "$conffile" ]; then cat $conffile | ( while read dev; do activate "$dev" done ) fi