diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 07dd14a1..36f7af80 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -3615,6 +3615,7 @@ sub config_to_command { my ($ds, $drive) = @_; if (PVE::Storage::parse_volume_id($drive->{file}, 1)) { + check_volume_storage_type($storecfg, $drive->{file}); push @$vollist, $drive->{file}; } @@ -7744,4 +7745,17 @@ sub vm_is_paused { return $qmpstatus && $qmpstatus->{status} eq "paused"; } +sub check_volume_storage_type { + my ($storecfg, $vol) = @_; + + my ($storeid, $volname) = PVE::Storage::parse_volume_id($vol); + my $scfg = PVE::Storage::storage_config($storecfg, $storeid); + my ($vtype) = PVE::Storage::parse_volname($storecfg, $vol); + + die "storage '$storeid' does not support content-type '$vtype'\n" + if !$scfg->{content}->{$vtype}; + + return 1; +} + 1;