Windows-Server-2012

Solidworks:此虛擬環境不支持啟動許可模式(Qemu-KVM)

  • October 11, 2019

這個問題實際上不在 Solidworks 周圍,所以請繼續閱讀。

虛擬化的整個想法是獨立於硬體。在我們眼前,正在創建一個全新的依賴級別 - 附加到管理程序。

據我所知,尋找解決此問題的方法並不違反我所在國家/地區的 Solidworks 許可證和當地法律。

我的客戶和我想在 KVM 虛擬機上啟動 Solidworks 產品。由於一些奇怪的原因(Hyper-V 和 VMware 應該經過很好的測試:)他們(開發人員)Solidworks 2015 PDM 不希望他們的產品在 Qemu-KVM 上被啟動(最後一個 2014 版本工作得很好)。

http://www.solidworks.com/sw/support/11168_ENU_HTML.htm http://www.solidworks.com/sw/support/11168_ENU_HTML.htm

我在用:

設置

如您所見,它是基於 KVM 的 VM,安裝了 Windows 2012 和 Solidworks PDM。

問題:如果我在 Qemu-KVM 中執行我的虛擬機,除了檢查之外,他們還能檢查什麼:

  • 虛擬機乙太網適配器的 MAC 地址,
  • 設備驅動程序標籤,
  • CPU型號,
  • ACPI 表。

我將在接下來的幾個小時內排除上述情況,但我想知道您是否還有其他想法。

解決方案

事實證明,他們驗證了兩件事:

  1. 正如邁克爾漢普頓正確指出的那樣,有-cpu,kvm=off選擇

禁用 CPUID 0x40000000 葉。

  1. 來賓上的 ACPI 表。

qemu命令行參數相關部分:

-cpu host,kvm=off -smbios type=0,vendor=LENOVO,version=FBKTB4AUS,date=07/01/2015,release=1.180 -smbios type=1,manufacturer=LENOVO,product=30AH001GPB,version=ThinkStation P300,serial=S4M88119,uuid=cecf333d-6603-e511-97d5-6c0b843f98ba,sku=LENOVO_MT_30AH,family=P300

Libvirtd 配置文件語法:

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
# Please notice there is xmlns definition in <domain> tag. Without it 
# <qemu:commandline> and <qemu:arg> tags won't work.
 <name>acm-server</name>
 <uuid>d0e14081-b4a0-23b5-ae39-110a686b0e55</uuid>
 <memory unit='KiB'>81920000</memory>
 <currentMemory unit='KiB'>81920000</currentMemory>
 <vcpu placement='static'>4</vcpu>
 <os>
   <type arch='x86_64' machine='pc-1.1'>hvm</type>
   <boot dev='hd'/>
   <bootmenu enable='yes'/>
 </os>
 <features>
   <acpi/>
   <apic/>
   <pae/>
 </features>
# Please notice there is no CPU definition on the top.
 <qemu:commandline>
   <qemu:arg value='-cpu'/>
   <qemu:arg value='host,kvm=off'/>
   <qemu:arg value='-smbios'/>
   <qemu:arg value='type=0,vendor=LENOVO,version=FBKTB4AUS,date=07/01/2015,release=1.180'/>
   <qemu:arg value='-smbios'/>
   <qemu:arg value='type=1,manufacturer=LENOVO,product=30AH001GPB,version=ThinkStation P300,serial=S4M88119,uuid=cecf333d-6603-e511-97d5-6c0b843f98ba,sku=LENOVO_MT_30AH,family=P3'/>
 </qemu:commandline>
</domain>

作為證明,現在它要啟動: 與黑客

更新 21.04.2017r。DS Justice 提到 Qemu(我在這個例子中使用了 virtio)磁碟模式也可能是相關的。

大多數目前在 Intel 硬體上執行的管理程序使用 CPUID 留下 0x40000000 et seq。將有關虛擬機管理程序的資訊從主機傳遞給來賓。

KVMXenVMwareHyper-V都使用這種方法。

這是對 CPUID 葉 0x1 中設置的管理程序功能標誌的補充,它指示機器是虛擬機。

因此,對於可以呼叫 CPUID 指令來確定它是否在這些管理程序之一下執行的程序來說,這是微不足道的。

最新版本的 KVM 包括一個命令行選項來禁用 CPUID 0x40000000 葉,-cpu kvm=off.

引用自:https://serverfault.com/questions/727347