X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-utils.git;a=blobdiff_plain;f=backup%2Flvm;h=4d897e71ae77a2bc00cd477a212bf44ee6bd4eb5;hp=09bda9e811a84fc59b897f560272c559a0bba0a5;hb=7aedffeb9404e1802b087d8fc9a91a554aa3a1e9;hpb=49d70032448b886fc0de88ffd9a4843845deb93b;ds=sidebyside diff --git a/backup/lvm b/backup/lvm index 09bda9e..4d897e7 100755 --- a/backup/lvm +++ b/backup/lvm @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # invoked by backup scripts as # lvm snap $vardir $device $mountpoint # creates and mounts on $vardir/snap-mount @@ -63,9 +63,11 @@ fstype="$(mount | sed -n \ "s,^$device on $mountpoint type \([a-z0-9][a-z0-9]*\) .*,-t \1 ,p")" if [ -z "$lvm_lvsize_opts" ]; then - df="$(df -P -k $device)" - blocks="$(printf "%s" "$df" | sed -n '2,$s,^/dev/[^ ]*[ ][ ]*[0-9][0-9]*[ ][ ]*\([0-9][0-9]*\)[ ].*,\1,p')" - lvm_lvsize_opts="-L $blocks"K + vggroup="${device#/dev/}" + vggroup="${vggroup%/*}" + vgdisplay_out="$(really vgdisplay -c "$vggroup")" + extents="$(printf "%s" "$vgdisplay_out" | awk -F: '{print $16}')" + lvm_lvsize_opts="-l $extents" fi lvpath="$(dirname "$device")/$lvm_lv"