From 4b4555bff78882221f5d7d2808cc41d7d6ac1670 Mon Sep 17 00:00:00 2001 From: David Passante Date: Fri, 7 Sep 2018 12:41:23 +0200 Subject: [PATCH] systemvmtemplate: Fixes: #2760 Fix SystemVMs running in Xen HVM mode are not configured (#2824) Set hypervisor to xen-hvm when virt-what detects both HyperV cpuid and xen-domU. --- .../opt/cloud/bin/setup/cloud-early-config | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/systemvm/debian/opt/cloud/bin/setup/cloud-early-config b/systemvm/debian/opt/cloud/bin/setup/cloud-early-config index 9baed018b7f..99acb86e5dd 100755 --- a/systemvm/debian/opt/cloud/bin/setup/cloud-early-config +++ b/systemvm/debian/opt/cloud/bin/setup/cloud-early-config @@ -35,14 +35,8 @@ log_it() { } hypervisor() { - local try=$([ -x /usr/sbin/virt-what ] && virt-what | tail -1) - [ "$try" != "" ] && echo $try && return 0 - - grep -q QEMU /proc/cpuinfo && echo "kvm" && return 0 - grep -q QEMU /var/log/messages && echo "kvm" && return 0 - - [ -d /proc/xen ] && mount -t xenfs none /proc/xen if [ -d /proc/xen ]; then + mount -t xenfs none /proc/xen $(dmesg | grep -q "Xen HVM") if [ $? -eq 0 ]; then # 1=PV,0=HVM echo "xen-hvm" && return 0 @@ -51,6 +45,19 @@ hypervisor() { fi fi + [ -x /usr/sbin/virt-what ] && local facts=( $(virt-what) ) + if [ "$facts" != "" ]; then + # Xen HVM is recognized as Hyperv when Viridian extensions are enabled + if [ "${facts[-1]}" == "xen-domU" ] && [ "${facts[0]}" == "hyperv" ]; then + echo "xen-hvm" && return 0 + else + echo ${facts[-1]} && return 0 + fi + fi + + grep -q QEMU /proc/cpuinfo && echo "kvm" && return 0 + grep -q QEMU /var/log/messages && echo "kvm" && return 0 + vmware-checkvm &> /dev/null && echo "vmware" && return 0 echo "unknown" && return 1