#!/bin/sh ### BEGIN INIT INFO # Provides: local-mountraid # Required-Start: $local_fs $syslog mdadm # Required-Stop: $local_fs $syslog mdadm # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Late imsm raid mount # Description: Mount the imsm raid separately to work around LP #1320402 ### END INIT INFO # Put in /etc/init.d and fix symlinks with: # > sudo update-rc.d -n local-mountraid defaults set -eu MDDEV=/dev/md/vol0 MOUNTS="/more /d /snapshots" MDADM=/sbin/mdadm MOUNT=/bin/mount UMOUNT=/bin/umount case "${1:-}" in start) $MDADM --assemble $MDDEV || : # Apparently mdadm --assemble doesn't wait for the device to become # available, so sleep for a bit. sleep 5 for m in $MOUNTS; do $MOUNT $m done ;; stop) # Unmount filesystems lazily and keep trying mdadm --stop for a minute # to be somewhat robust to unmount problems. for m in $(echo $MOUNTS | /usr/bin/tac -s ' '); do $UMOUNT -f -l $m || : done retries=12 while ! $MDADM --stop $MDDEV; do retries=`expr $retries - 1` test $retries -le 0 && break echo "mdadm failed to stop $MDDEV - retrying" >&2 sleep 5 done $MDADM --wait-clean $MDDEV ;; status|reload) : ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: ${0:-} {start|stop|status|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0