to avoid the resulting qcow2 file referencing its backing file via an absolute path, which makes renaming the base of the storage impossible.
Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> --- src/PVE/QemuServer/Blockdev.pm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/PVE/QemuServer/Blockdev.pm b/src/PVE/QemuServer/Blockdev.pm index 6e105571..71d5ef69 100644 --- a/src/PVE/QemuServer/Blockdev.pm +++ b/src/PVE/QemuServer/Blockdev.pm @@ -5,6 +5,7 @@ use warnings; use Digest::SHA; use Fcntl qw(S_ISBLK S_ISCHR); +use File::Basename; use File::stat; use JSON; @@ -954,12 +955,19 @@ sub blockdev_replace { $parent_fmt_blockdev->{backing} = $target_fmt_blockdev->{'node-name'}; mon_cmd($vmid, 'blockdev-reopen', options => [$parent_fmt_blockdev]); + my $backing_file = $target_file_blockdev->{filename}; + my $backing_dir = dirname($backing_file); + if ($backing_dir eq dirname($parent_file_blockdev->{filename})) { + # make backing file relative if in same directory + $backing_file = basename($backing_file); + } + #change backing-file in qcow2 metadatas mon_cmd( $vmid, 'change-backing-file', device => $deviceid, 'image-node-name' => $parent_fmt_blockdev->{'node-name'}, - 'backing-file' => $target_file_blockdev->{filename}, + 'backing-file' => $backing_file, ); } @@ -1069,11 +1077,18 @@ sub blockdev_stream { { 'snapshot-name' => $snap }, ); + my $backing_file = $parent_file_blockdev->{filename}; + my $backing_dir = dirname($backing_file); + if ($backing_dir eq dirname($target_file_blockdev->{filename})) { + # make backing file relative if in same directory + $backing_file = basename($backing_file); + } + my $job_id = "stream-$deviceid"; my $jobs = {}; my $options = { 'job-id' => $job_id, device => $target_fmt_blockdev->{'node-name'} }; $options->{'base-node'} = $parent_fmt_blockdev->{'node-name'}; - $options->{'backing-file'} = $parent_file_blockdev->{filename}; + $options->{'backing-file'} = $backing_file; mon_cmd($vmid, 'block-stream', %$options); $jobs->{$job_id} = {}; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel