chiark / gitweb /
@@ -1,3 +1,11 @@
[chiark-utils.git] / backup / lvm
index 09bda9e811a84fc59b897f560272c559a0bba0a5..4d897e71ae77a2bc00cd477a212bf44ee6bd4eb5 100755 (executable)
@@ -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"