I have bought HP Proliant MicroServer N40L (a nice cube-like entry level server for home or small bussiness) with OEM installation of Windows Server 2008 R2 from HP. Since I’d like to run more operating systems on this server, I decided to install Win 2008 as Virtual Machine on Linux KVM server. But, a little while after installation CD boots up, some HP utility popped up and informed me, that „This system is not supported platform“.
From the licensing point of view it’s okay to install it as Virtual Machine, because Microsoft provides one hardware and one virtual license for Windows Server 2008 R2 Standard. Even HP supports this scenario and provides a workaroud for it’s installation media for VMware ESX via addin a „SMBIOS.reflectHost=TRUE“ parameter to guest configuration, which makes VMware to pass BIOS and System information from host hardware to virtual gues. But, KVM doesn’t have such option, so I needed to find another way how to fool that stupid HP check that it’s being installed on HP hardware. After a bit of googling I’ve found, that libvirt can read manually configured BIOS and System information which will be shown into Guest.
So, at first we need to get the information from host hardware, so we’ll run „dmidecode“ command, which returns something like this:
# dmidecode 2.11 SMBIOS 2.6 present. 35 structures occupying 1145 bytes. Table at 0x000FB330.
Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: HP Version: O41 Release Date: 07/29/2011 .... Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: HP Product Name: ProLiant MicroServer Version: Serial Number: 123456AB UUID: 1E3BD500-1DD2-11B2-8000-009C02ABDD39 Wake-up Type: Power Switch SKU Number: 987654-321 Family: ...
Now just open your Guest XML file and into <os> tag add:
an then, somewhere into <domain> tag add this, with values from dmidecode output:
<sysinfo type='smbios'> <bios> <entry name='vendor'>HP</entry> </bios> <system> <entry name='manufacturer'>HP</entry> <entry name='product'>ProLiant MicroServer</entry> <entry name='serial'>123456AB</entry> <entry name='sku'>987654-321</entry> </system> </sysinfo>
And that’s all, now just start your Guest and the Windows Server 2008 installation shoud pass the HP hardware check.
Also remember to connect ISO with VirtIO drivers before installation, If you’re going to use VirtIO storage controller for best performance. After manually loading VirtIO drivers, Windows Installer loads your virtual Hard Drive correctly and the installation process then went flawlessly.