X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-utils.git;a=blobdiff_plain;f=backup%2Fremountrocp;h=04ddd270afff6e73356009a0b28561155543bead;hp=65037ee0c3b423943183a32b927fd719605cfccf;hb=5facb39b231207d3dcea7b831bea73abd8a24bff;hpb=b9c4c377780c9053f0444bb8b89ef21699e1134c diff --git a/backup/remountrocp b/backup/remountrocp index 65037ee..04ddd27 100755 --- a/backup/remountrocp +++ b/backup/remountrocp @@ -35,7 +35,7 @@ if [ -z "$lvm_lvsize_opts" ]; then df_out="$(really df -P --block-size=$extsize $mountpoint)" extents2="$(printf "%s" "$df_out" | awk '/^\// {print $3}')" - extents2=$(( ($extents2*150+99)/100 + 4 )) + extents2=$(( ($extents2*150+102399)/102400 + 4 )) lvmextentscore2 fi @@ -55,9 +55,11 @@ lvcreate \ $vgroup \ $lvm_lvcreate_args -mkfs -t $remountrocp_fs "$lvpath" +mkfs -t $remountrocp_fs -q "$lvpath" + mkdir -- "$snmnt" mount -t $remountrocp_fs $lvm_mount_opts "$lvpath" "$snmnt" +echo ' copy filesystem created and mounted' attempts=10 while true; do @@ -69,9 +71,10 @@ while true; do fi sleep 1 done - -trap "mount -o remount,rw $mountpoint; exit 12" 0 -cp -a -- "$mountpoint/." "$snmnt/." +trap "set +e; mount -o remount,rw $mountpoint; exit 12" 0 +echo ' source remounted readonly, copying...' +cp -ax -- "$mountpoint/." "$snmnt/." +echo ' finalising...' mount -o remount,rw "$mountpoint" trap '' 0 mount -o remount,ro "$lvpath"