]> git.proxmox.com Git - qemu-server.git/commitdiff
fix efi disk format detection
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Thu, 28 Dec 2017 13:25:43 +0000 (14:25 +0100)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Tue, 9 Jan 2018 14:20:51 +0000 (15:20 +0100)
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Fixes: 2bfbee039bbe ("include format for efidisk")
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
PVE/QemuServer.pm

index 42c412a72e4aafc53cfbfbff37de7f48cb7f9b75..32bf70d3b9e8f8cda911fd9c3384769a357d9e02 100644 (file)
@@ -2908,20 +2908,27 @@ sub config_to_command {
        die "uefi base image not found\n" if ! -f $OVMF_CODE;
 
        my $path;
-       my $format = 'raw';
+       my $format;
        if (my $efidisk = $conf->{efidisk0}) {
            my $d = PVE::JSONSchema::parse_property_string($efidisk_fmt, $efidisk);
            my ($storeid, $volname) = PVE::Storage::parse_volume_id($d->{file}, 1);
+           $format = $d->{format};
            if ($storeid) {
                $path = PVE::Storage::path($storecfg, $d->{file});
+               if (!defined($format)) {
+                   my $scfg = PVE::Storage::storage_config($storecfg, $storeid);
+                   $format = qemu_img_format($scfg, $volname);
+               }
            } else {
                $path = $d->{file};
+               die "efidisk format must be specified\n"
+                   if !defined($format);
            }
-           $format = $d->{format} if $d->{format};
        } else {
            warn "no efidisk configured! Using temporary efivars disk.\n";
            $path = "/tmp/$vmid-ovmf.fd";
            PVE::Tools::file_copy($OVMF_VARS, $path, -s $OVMF_VARS);
+           $format = 'raw';
        }
 
        push @$cmd, '-drive', "if=pflash,unit=0,format=raw,readonly,file=$OVMF_CODE";