[pve-devel] [PATCH] use qom-get to check if pxe file are used
Alexandre Derumier
aderumier at odiso.com
Thu Nov 5 19:30:45 CET 2015
fix qemu 2.4 pxe -> qemu 2.4 efi
Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
PVE/QemuMigrate.pm | 11 +++++++++++
PVE/QemuServer.pm | 22 +++++++++++++++-------
2 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index a1ee10a..1a7c777 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -142,6 +142,17 @@ sub prepare {
die "cant migrate running VM without --online\n" if !$online;
$running = $pid;
$self->{forcemachine} = PVE::QemuServer::get_current_qemu_machine($vmid);
+
+ foreach my $opt (keys %$conf) {
+ next if $opt !~ m/^net(\d+)$/;
+ my $net = PVE::QemuServer::parse_net($conf->{$opt});
+ next if !$net;
+ my $romfile = PVE::QemuServer::vm_mon_cmd_nocheck($vmid, 'qom-get', path => $opt, property => 'romfile');
+ $self->{forcemachine} .= '.pxe';
+ last;
+
+ }
+
}
if (my $loc_res = PVE::QemuServer::check_local_resources($conf, 1)) {
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 72bd1d0..6b96edb 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -373,7 +373,7 @@ EODESCR
machine => {
description => "Specific the Qemu machine type.",
type => 'string',
- pattern => '(pc|pc(-i440fx)?-\d+\.\d+|q35|pc-q35-\d+\.\d+)',
+ pattern => '(pc|pc(-i440fx)?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)',
maxLength => 40,
optional => 1,
},
@@ -2657,12 +2657,20 @@ sub config_to_command {
push @$cmd, '-p', "CPUQuota=$cpulimit\%";
}
- # Note: kvm version < 2.4 use non-efi pxe files, and have problems when we
- # load new efi bios files on migration. So this hack is required to allow
- # live migration from qemu-2.2 to qemu-2.4, which is sometimes used when
- # updrading from proxmox-ve-3.X to proxmox-ve 4.0
- my $use_old_bios_files = !qemu_machine_feature_enabled ($machine_type, $kvmver, 2, 4);
-
+
+ my $use_old_bios_files = undef;
+
+ if ($machine_type && $machine_type =~ m/^(\S+)\.pxe$/){
+ $machine_type = $1;
+ $use_old_bios_files = 1;
+ } else {
+ # Note: kvm version < 2.4 use non-efi pxe files, and have problems when we
+ # load new efi bios files on migration. So this hack is required to allow
+ # live migration from qemu-2.2 to qemu-2.4, which is sometimes used when
+ # updrading from proxmox-ve-3.X to proxmox-ve 4.0
+ $use_old_bios_files = !qemu_machine_feature_enabled ($machine_type, $kvmver, 2, 4);
+ }
+
push @$cmd, '/usr/bin/kvm';
push @$cmd, '-id', $vmid;
--
2.1.4
More information about the pve-devel
mailing list