chiark / gitweb /
@@ -1,3 +1,14 @@
authorianmdlvl <ianmdlvl>
Sun, 30 Jul 2006 13:34:05 +0000 (13:34 +0000)
committerianmdlvl <ianmdlvl>
Sun, 30 Jul 2006 13:34:05 +0000 (13:34 +0000)
+chiark-utils (4.1.2) unstable; urgency=low
+
+  * Translate /dev/mapper devices from mount table into LVM device names.
+  * Use `current logical extents associated to logical volume' (field 8)
+    rather than `allocated logical extents of logical volume' (field 9)
+    for size, as the latter is sometimes -1 for some reason.
+  * Attempt 10 times to mount readonly.
+  * Comments stating that lvm{create,extents}core1 need vgroup.
+
+ --
+
 chiark-utils (4.1.1) unstable; urgency=low

   * summer sorts the output and identifies hardlink

backup/lvm
backup/remountrocp
backup/snap-common
debian/changelog

index 3d8be29..dd503e7 100755 (executable)
@@ -23,13 +23,14 @@ fi
 fstype="$(mount | sed -n \
  "s,^$device on $mountpoint type \([a-z0-9][a-z0-9]*\) .*,-t \1 ,p")"
 
+lvmunmapperdevice
+lvmdevice2vgroup
+
 if [ -z "$lvm_lvsize_opts" ]; then
-       vgroup="${device#/dev/}"
-       vgroup="${vgroup%/*}"
        lvmextentscore1
 
        lvdisplay_out="$(really lvdisplay -c "$device")"
-       extents2="$(printf "%s" "$lvdisplay_out" | awk -F: '{print $9}')"
+       extents2="$(printf "%s" "$lvdisplay_out" | awk -F: '{print $8}')"
        extents2=$(( $extents2 + ($extents2+9)/10 - 1 ))
 
        lvmextentscore2
index 5e40cc3..d9ba155 100755 (executable)
@@ -59,7 +59,17 @@ mkfs -t $remountrocp_fs "$lvpath"
 mkdir -- "$snmnt"
 mount -t $remountrocp_fs $lvm_mount_opts "$lvpath" "$snmnt"
 
-mount -o remount,ro "$mountpoint"
+attempts=10
+while true; do
+       if mount -o remount,ro "$mountpoint"; then last; fi
+       attempts=$(( $attempts - 1 ))
+       if [ $attempts = 0 ]; then
+               echo >&2 'cannot remount readonly'
+               exit 1
+       fi
+       sleep 1
+done
+
 trap "mount -o remount,rw $mountpoint; exit 12" 0
 cp -a -- "$mountpoint/." "$snmnt/."
 mount -o remount,rw "$mountpoint"
index c12bc6d..f6e788a 100644 (file)
@@ -29,6 +29,27 @@ esac
 
 #---------- common functions
 
+lvmunmapperdevice () {
+       # turns device=/dev/mapper/... into /dev/<group>/<volume>
+       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
index d2516d8..3bf070f 100644 (file)
@@ -1,3 +1,14 @@
+chiark-utils (4.1.2) unstable; urgency=low
+
+  * Translate /dev/mapper devices from mount table into LVM device names.
+  * Use `current logical extents associated to logical volume' (field 8)
+    rather than `allocated logical extents of logical volume' (field 9)
+    for size, as the latter is sometimes -1 for some reason.
+  * Attempt 10 times to mount readonly.
+  * Comments stating that lvm{create,extents}core1 need vgroup.
+
+ --
+
 chiark-utils (4.1.1) unstable; urgency=low
 
   * summer sorts the output and identifies hardlink