From bc450a5189e4e380a626dd8b1ebdee2497a2d7df Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 23 Oct 2018 20:32:58 -0300 Subject: Adds support for backing_file --- kvmx | 21 ++++++++++++++++----- kvmxfile | 4 ++++ 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" -- cgit v1.2.3