aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkvmx21
-rw-r--r--kvmxfile4
2 files changed, 20 insertions, 5 deletions
diff --git a/kvmx b/kvmx
index 43ea2f2..a1d2012 100755
--- a/kvmx
+++ b/kvmx
@@ -365,12 +365,23 @@ function kvmx_up {
exit 1
fi
- echo "Copying base image $baseimage to $image..."
- if which rsync &> /dev/null; then
- rsync -ah --sparse --progress $baseimage $image
+ if [ ! -z "$backing_file" ]; then
+ if [ -e "$backing_file" ]; then
+ echo "Creating image $image as an overlay of $backing_file..."
+ backing_file_format="`qemu-img info $backing_file | grep "^file format: " | cut -d : -f 2 | sed -e 's/ //g'` "
+ qemu-img create -o backing_file=$backing_file,backing_fmt=$backing_file_format -f $format $image
+ else
+ echo "Backing file not found: $backing_file"
+ exit 1
+ fi
else
- # See https://rwmj.wordpress.com/2010/10/19/tip-making-a-disk-image-sparse/
- cp --sparse=always $baseimage $image
+ echo "Copying base image $baseimage to $image..."
+ if which rsync &> /dev/null; then
+ rsync -ah --sparse --progress $baseimage $image
+ else
+ # See https://rwmj.wordpress.com/2010/10/19/tip-making-a-disk-image-sparse/
+ cp --sparse=always $baseimage $image
+ fi
fi
if [ -e "$basekey" ]; then
diff --git a/kvmxfile b/kvmxfile
index 115d150..5f09daf 100644
--- a/kvmxfile
+++ b/kvmxfile
@@ -119,6 +119,10 @@ xrandr="0"
# Where the guest image is stored
#image="$HOME/.local/share/kvmx/$VM/box.img"
+# Backing file for overlay images
+# See https://wiki.archlinux.org/index.php/QEMU#Overlay_storage_images
+#backing_file="$HOME/.local/share/kvmx/$basebox/box.img"
+
# Where datafiles are stored: just set this if you know what you're doing
#datadir="$HOME/.local/share/kvmx/$VM"