#! /bin/sh -ex : ${vgtag=@backup} ${vgprefix=vg-backup-} : ${mntbkpdir=/mnt/bkp} : ${STOREDIR=$mntbkpdir/store} ${METADIR=$mntbkpdir/meta} vgs=$(vgs --noheadings -oname) found=nil for vg in $vgs; do case "$found,$vg" in nil,$vgprefix*) found=t tag=${vg#$vgprefix} ;; t,$vgprefix*) echo >&2 "$0: multiple backup volumes attached" exit 1 ;; esac done case $found in nil) echo >&2 "$0: no backup volumes attached"; exit 1 ;; esac vg=$vgprefix$tag vgchange -ay $vg mount /dev/$vg/meta $METADIR cryptop decrypt backup <$METADIR/crypt.blob | cryptsetup luksOpen --key-file=- /dev/$vg/crypt cbackup mount /dev/mapper/cbackup $STOREDIR