| #!/bin/sh |
| PREREQ="mdadm mdrun multipath" |
| |
| prereqs() |
| { |
| echo "$PREREQ" |
| } |
| |
| case $1 in |
| # get pre-requisites |
| prereqs) |
| prereqs |
| exit 0 |
| ;; |
| esac |
| |
| |
| # |
| # Helper functions |
| # |
| message() |
| { |
| if [ -x /bin/plymouth ] && plymouth --ping; then |
| plymouth message --text="$@" |
| else |
| echo "$@" >&2 |
| fi |
| return 0 |
| } |
| |
| udev_settle() |
| { |
| # Wait for udev to be ready, see https://launchpad.net/bugs/85640 |
| if [ -x /sbin/udevadm ]; then |
| /sbin/udevadm settle --timeout=30 |
| elif [ -x /sbin/udevsettle ]; then |
| /sbin/udevsettle --timeout=30 |
| fi |
| return 0 |
| } |
| |
| |
| activate_vg() |
| { |
| # Sanity checks |
| if [ ! -x /sbin/lvm ]; then |
| [ "$quiet" != "y" ] && message "lvm is not available" |
| return 1 |
| fi |
| |
| # Detect and activate available volume groups |
| /sbin/lvm vgscan |
| /sbin/lvm vgchange -a y --sysinit |
| return $? |
| } |
| |
| udev_settle |
| activate_vg |
| |
| exit 0 |