BIOS-Informationen an KVM-Gast durchreichen

BIOS-Informationen an KVM-Gast durchreichen

Getestet mit Ubuntu 14.04.2.

Gelegentlich ist es nötig, dem Gastsystem einige Infos bezüglich der Hardware des Hostsystem zukommen zu lassen. Sinn könnte das machen, wenn man eine OEM-Lizenz nicht auf dem Hostsystem, sondern stattdessen auf dem Gastsystem verwenden möchte (im Folgenden jedoch nur eine technische Betrachtung, keine rechtliche).

Auslesen kann man die Infos zum Hostsystem mit

sudo dmidecode

Interessant in der Ausgabe von dmidecode ist hauptsächlich folgender Teil:

BIOS Information
    Vendor: Dell Inc.
    Version: A01
    Release Date: 01/12/2012
    [...]
System Information
    Manufacturer: Dell Inc.
    Product Name: Latitude A1122
    Version: 0001
    Serial Number: AB12AB1
    UUID: eeeeeeee-ffff-1234-1234-aabbaabbaabb
    [...]
    SKU Number:  
    Family: Not Specified

Diese Angaben kann man dem Gastsystem namens win7 zur Verfügung stellen mit den fett hervorgegebenen Änderungen und

sudo virsh edit win7

<domain type='kvm'>
  <name>win7neu</name>
  <uuid>eeeeeeee-ffff-1234-1234-aabbaabbaabb</uuid>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <sysinfo type='smbios'>
    <bios>
      <entry name='vendor'>Dell Inc.</entry>
      <entry name='version'>A01</entry>
      <entry name='date'>01/12/2012</entry>
    </bios>
    <system>
      <entry name='manufacturer'>Dell Inc.</entry>
      <entry name='product'>Latitude A1122</entry>
      <entry name='version'>0001</entry>
      <entry name='serial'>AB12AB1</entry>
      <entry name='uuid'>eeeeeeee-ffff-1234-1234-aabbaabbaabb</entry>
    </system>
  </sysinfo>
  <os>
    <type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type>
    <boot dev='hd'/>
    <smbios mode='sysinfo'/>
  </os>
  <features>[...]

Wenn man die uuid ändert, muss man auch den Namen ändern (hier win7neu). virsh legt dann eine zusätzliche VM an, welche auf das gleiche Image verweist wie die alte VM (hier win7).

Die alte VM kann man nach einem Test der neuen VM löschen, wenn man die Image-Dateien unangetastet lässt.

Auf dem Gastsystem kann man nun testen, ob die Systeminfos angekommen sind:

wmic system get
wmic bios get

Hinweis: Im Labortest war die UUID unter Windows ähnlich, aber nicht gleich. Genau gleich war nur der letzte Block der UUID (im Beispiel aabbaabbaabb). Gute Nachricht: Scheinbar ist etwas angekommen.