1#!/bin/sh
2PREREQ="mdadm mdrun multipath"
3
4prereqs()
5{
6        echo "$PREREQ"
7}
8
9case $1 in
10# get pre-requisites
11prereqs)
12        prereqs
13        exit 0
14        ;;
15esac
16
17
18#
19# Helper functions
20#
21message()
22{
23        if [ -x /bin/plymouth ] && plymouth --ping; then
24                plymouth message --text="$@"
25        else
26                echo "$@" >&2
27        fi
28        return 0
29}
30
31udev_settle()
32{
33        # Wait for udev to be ready, see https://launchpad.net/bugs/85640
34        if [ -x /sbin/udevadm ]; then
35                /sbin/udevadm settle --timeout=30
36        elif [ -x /sbin/udevsettle ]; then
37                /sbin/udevsettle --timeout=30
38        fi
39        return 0
40}
41
42
43activate_vg()
44{
45        # Sanity checks
46        if [ ! -x /sbin/lvm ]; then
47                [ "$quiet" != "y" ] && message "lvm is not available"
48                return 1
49        fi
50
51        # Detect and activate available volume groups
52        /sbin/lvm vgscan
53        /sbin/lvm vgchange -a y --sysinit
54        return $?
55}
56
57udev_settle
58activate_vg
59
60exit 0
61