-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Something for the btrfs crowd:
A small qvm-backup wrapper script that handles running VMs by chrooting
into a temporary dom0 filesystem snapshot. The backed up data is the
same as if those VMs had just been killed, which seems to work fine for
the usual journaling/copy-on-write VM filesystems.
https://github.com/rustybird/qubes-stuff/blob/master/dom0/bin/qvm-backup-snap
Also pasted below. POC, may ruin absolutely everything, etc.
Rusty
#!/usr/bin/sudo sh
#
# qvm-backup wrapper that can handle running VMs stored on btrfs dom0.
# Usage: qvm-backup-snap <qvm-backup argument>...
set -e
tmp=$(mktemp -ud /var/tmp/qubes-backup-snap.XXXXXX)
btrfs subvolume snapshot / "$tmp"
trap 'btrfs subvolume delete "$tmp"' EXIT
sed -e 's/^\( *\)if vm.is_running():$/\1if False:/' \
-i "$tmp"/usr/lib64/python2.7/site-packages/qubes/backup.py
for d in /dev /dev/shm /proc /run; do mount --bind $d "$tmp"/$d; done
chroot "$tmp" su -s /usr/bin/qvm-backup - "$SUDO_USER" -- "$@"
-----BEGIN PGP SIGNATURE-----
iQJ8BAEBCgBmBQJYqu8RXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ4NEI1OUJDRkM2MkIxMjlGRTFCMDZEMDQ0
NjlENzhGNDdBQUYyQURGAAoJEEadePR6ryrf8v0QAI4eRTXSAkHAbL3+Z3K94nbU
aEaG0YzyMA6r9byo8idpsvuR/gMPhrcLiBdB+bvlMRuQ8tx1GH/8YnGVdb3/8ccr
QcrDAv9abWOUbCRbLxP6cckE7pNYwBys7DQVqkMvN3irkxHnNWGjtczMbJJ+B+gi
R+LxYXJnz4Hn6392HXSqbAv1PPyNGymYLqSJfzH30pdvTt6QICjOH4DHH5yfGRqx
o3iablnBb9EmbSCa8Fn8mdtu/CcP58QgVwUrGA2Y15JE2ViAS2EVpxX5Ah+e0RpC
WzjJC9t73SI8/1549BvxHMf5aInJbXBmn/hbmpTTnFacRkXn7aPSvA7dUZrQvhqP
FcCYlBZ6LO2H1rxpcaI7/ppLaqNwjzuXs6OW6Luw96k2yaR+iI5N4JCIhHUFagBR
2KaU2wTi4yKNJD9ZD0lGCpjDLdpECrDKHHC56ZRawYQS8JwUkjF7vwD2UJTzT7HN
r6pQR11lpSgdbbWAdqQxH2VKFX6bwEN4gvl52VG7B6+/hTMb5PdXMp/2h+gI1biK
Lw0roF9QyYMmP96JWXtAoO0eC1IhGVDVqR+3kGXFRwxrkQCrZP/jt+fSllYpAWZp
JfWNoB38rZpqNyZdOEGC4Odw0iiw7BeSKeRuCDhWiSJkeCUtVyohZI7rXNLcCKdV
fIYc8ix5g9B1gQbFYJNd
=imFn
-----END PGP SIGNATURE-----