From 7cc1d2e6379fde13193f98114c1bfe4a8ec5f6d8 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Wed, 27 Apr 2016 22:48:00 -0400 Subject: samizdat-eject fixes --- samizdat-eject.sh | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/samizdat-eject.sh b/samizdat-eject.sh index e9e71e5..0f4e117 100755 --- a/samizdat-eject.sh +++ b/samizdat-eject.sh @@ -7,9 +7,18 @@ die() target=$1 +if [ ! "$target" ] && mountpoint -q /srv && [ ! -e /srv/samizdat.iso ]; then + target=/srv/samizdat.iso +fi + [ "$target" ] || die "Usage: $0 " [ ! -e "$target" ] || die "Error: file exists: $target" +if mountpoint -q /outerfs; then + temp_target=$(mktemp --tmpdir=/outerfs) +else + die "Error: /outerfs is not a mountpoint. Please mount a safe filesystem to temporarily store the ISO on /outerfs" +fi . mdadm-dup.sh || exit 1 @@ -34,14 +43,21 @@ done copy() { - mdadm_copy_eject_crypt /dev/md55 "$target" + mdadm_copy_eject_crypt /dev/md55 "$temp_target" && + dd if=/dev/md55 of="$target".part && + mv "$target".part "$target" + + # I suppose at this point $target should be made the backing device of + # /dev/md55 + + # Alternatively: mdadm --stop /dev/md55 } remove() { for dev; do (set -x; btrfs device remove "$dev" /) - dmsetup remove "$dev" + dmsetup remove "$dev" 2>/dev/null losetup -D done } -- cgit v1.2.3