X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=backup%2Fsnap-common;h=f6e788ab975a566f1c5dcad9ce4b17297eea798e;hb=a03c623bb1574922308347df36cd57c85e72981a;hp=c12bc6dcbbbafae0949efde85e7b15f02fec84ff;hpb=b7fed73a8d9509acef0307ce94d59c047653b821;p=chiark-utils.git diff --git a/backup/snap-common b/backup/snap-common index c12bc6d..f6e788a 100644 --- a/backup/snap-common +++ b/backup/snap-common @@ -29,6 +29,27 @@ esac #---------- common functions +lvmunmapperdevice () { + # turns device=/dev/mapper/... into /dev// + case "$device" in + /dev/mapper/*) + device="`printf '%s' "$device" | perl -pe ' + s,^/dev/mapper/,,; + die if m,/,; + s,\-\-,!,g; + s,\-,/,g; + s,\!,-,g; + s,^,/dev/,; + '`" + ;; + esac +} + +lvmdevice2vgroup () { + vgroup="${device#/dev/}" + vgroup="${vgroup%/*}" +} + lvmdropcore () { snmnt="$vardir/snap-mount" umount -v "$snmnt" || true @@ -49,6 +70,7 @@ lvmdropcore () { } lvmextentscore1 () { + # vgroup must be set vgdisplay_out="$(really vgdisplay -c "$vgroup")" extents="$(printf "%s" "$vgdisplay_out" | awk -F: '{print $16}')" extsize="$(printf "%s" "$vgdisplay_out" | awk -F: '{print $13}')" @@ -60,6 +82,7 @@ lvmextentscore2 () { } lvmcreatecore1 () { + # vgroup must be set lvpath="/dev/$vgroup/$lvm_lv" ln -s -- "$lvpath" "$vardir"/snap-device sync