Назад | Перейти на главную страницу

Установка OEM-носителя Windows Server 2008 под KVM

Проблема

У меня есть сервер HP, который поставляется с OEM-копией Windows Server 2008. Я установил CentOS 5.4 на оборудование и пытаюсь установить Windows Server 2008 в качестве гостя KVM. Когда я пытаюсь установить Windows Server 2008, он жалуется, что я пытаюсь установить на неподдерживаемом оборудовании. Эта проблема вызвана тем, что информация об оборудовании SMBIOS не передается гостевой системе KVM.

Задний план

Прежде чем идти дальше, я хочу заявить, что то, что я пытаюсь сделать, находится в рамках лицензии. HP предлагает поддерживаемое решение для VMWare, но не имеет официального решения для KVM. После долгих исследований платформа, которую я собираюсь использовать, - это CentOS и KVM, поэтому, пожалуйста, не предлагайте другие платформы.

Я отправил электронное письмо в список рассылки разработчиков KVM, где мне сказали, что это возможно, и посоветовали:

«Вы можете выгрузить SLIC-таблицу BIOS вашего хоста и передать ее гостевой BIOS с помощью параметра -acpitable».

Я использовал dmidecode и получил параметры, которые нужно передать, но я не знаю, куда передать параметры.

Обновить

Похоже, CentOS 5.4 использует virt-install вместо qemu. Qemu находится в диспетчере пакетов, и я смог установить его после удаления qemu-img (они конфликтуют, и qemu содержит пакеты в qemu-img). Итак, теперь я знаю, как передать параметры acpitable, но у меня возникли проблемы с отображением того, что получилось из dmidecode, в -acpitable.

Извините, что откопал старую тему, но я узнал, что это возможно:

Проблема с фирменными носителями заключается в том, что виртуальная машина BIOS KVM поставляется с разными таблицами ACPI. С другой стороны, установщик проверяет это. На момент написания этой статьи я использовал Debian 8 с virtlib 1.2.9 и qemu-system-x86 1.7.0 (qemu-kvm).

Поэтому просто вам нужно сопоставить ACPI (dmidecode -t 0 и dmidecode -t 1) на виртуальной машине, чтобы это сделать.

Эти таблицы для Lenovo выглядят так:

# dmidecode 2.12
SMBIOS 2.8 present.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
        Vendor: LENOVO
        Version: FBKTB4AUS
        Release Date: 07/01/2015
        Address: 0xF0000
        Runtime Size: 64 kB
        ROM Size: 6656 kB
        Characteristics:
                PCI is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
                BIOS ROM is socketed
                EDD is supported
                5.25"/1.2 MB floppy services are supported (int 13h)
                3.5"/720 kB floppy services are supported (int 13h)
                3.5"/2.88 MB floppy services are supported (int 13h)
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                Printer services are supported (int 17h)
                ACPI is supported
                USB legacy is supported
                BIOS boot specification is supported
                Targeted content distribution is supported
                UEFI is supported
        BIOS Revision: 1.180
        Firmware Revision: 1.13

# dmidecode 2.12
SMBIOS 2.8 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: LENOVO
        Product Name: 30AH001GPB
        Version: ThinkStation P300
        Serial Number: S4M88119
        UUID: CECF333D-6603-E511-97D5-6C0B843F98BA
        Wake-up Type: Power Switch
        SKU Number: LENOVO_MT_30AH
        Family: To be filled by O.E.M.

Для HP:

# dmidecode 2.11                                                                                                                                                                   
SMBIOS 2.7 present.                                                                                                                                                                

Handle 0x0000, DMI type 0, 24 bytes                                                                                                                                                
BIOS Information                                                                                                                                                                   
        Vendor: HP
        Version: W07
        Release Date: 05/05/2011
        Address: 0xF0000
        Runtime Size: 64 kB
        ROM Size: 8192 kB
        Characteristics:
                PCI is supported
                PNP is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                ESCD support is available
                Boot from CD is supported
                Selectable boot is supported
                EDD is supported
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                CGA/mono video services are supported (int 10h)
                ACPI is supported
                USB legacy is supported
                BIOS boot specification is supported
                Function key-initiated network boot is supported
                Targeted content distribution is supported
        Firmware Revision: 2.23

# dmidecode 2.11
SMBIOS 2.7 present.

Handle 0x0100, DMI type 1, 27 bytes
System Information
        Manufacturer: HP
        Product Name: ProLiant ML330 G6
        Version: Not Specified
        Serial Number: CZ104601XF      
        UUID: 30303734-3536-5A43-3130-343630315846
        Wake-up Type: Power Switch
        SKU Number: 470065-183      
        Family: ProLiant

Для IBM:

# dmidecode 2.12
# SMBIOS entry point at 0x7f6be000
SMBIOS 2.5 present.

Handle 0x002F, DMI type 0, 24 bytes
BIOS Information
        Vendor: IBM Corp.
        Version: -[D6E154AUS-1.13]-
        Release Date: 09/23/2011
        Address: 0xE0000
        Runtime Size: 128 kB
        ROM Size: 4096 kB
        Characteristics:
                PCI is supported
                PNP is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
                EDD is supported
                3.5"/2.88 MB floppy services are supported (int 13h)                                                                                                               
                Print screen service is supported (int 5h)                                                                                                                         
                8042 keyboard services are supported (int 9h)                                                                                                                      
                Serial services are supported (int 14h)                                                                                                                            
                CGA/mono video services are supported (int 10h)                                                                                                                    
                ACPI is supported                                                                                                                                                  
                USB legacy is supported                                                                                                                                            
                LS-120 boot is supported                                                                                                                                           
                ATAPI Zip drive boot is supported                                                                                                                                  
                Function key-initiated network boot is supported                                                                                                                   
                Targeted content distribution is supported                                                                                                                         
        BIOS Revision: 0.0                                                                                                                                                         
        Firmware Revision: 0.0                                                                                                                                                     

# dmidecode 2.12                                                                                                                                                                   
# SMBIOS entry point at 0x7f6be000                                                                                                                                                 
SMBIOS 2.5 present.                                                                                                                                                                

Handle 0x0030, DMI type 1, 27 bytes                                                                                                                                                
System Information                                                                                                                                                                 
        Manufacturer: IBM                                                                                                                                                          
        Product Name: System x3650 M3 -[7945J4G]-                                                                                                                                  
        Version: 00                                                                                                                                                                
        Serial Number: KD50NCR                                                                                                                                                     
        UUID: 49B2EFEE-5E45-3522-8FE3-C230FF137F25                                                                                                                                 
        Wake-up Type: Other
        SKU Number: XxXxXxX
        Family: System x

Мне пришлось установить носители под брендом Lenovo Windows 2012 Fundation на оборудование Lenovo.

Я добился этого, добавив в параметры qemu:

-smbios type=1,manufacturer=LENOVO,product=30AH001GPB,version=ThinkStation P300,serial=S4M88119,uuid=cecf333d-6603-e511-97d5-6c0b843f98ba,sku=LENOVO_MT_30AH,family=P300 -acpitable file=/var/lib/libvirt/images/slic.bin -acpitable file=/var/lib/libvirt/images/msdm.bin

Или добавив в xml-файл виртуальной машины libvirtd:

<domain type='kvm' id='18' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
#                           ^^^ be aware of XML's namespace for the prefixes ^^^
#                               without it qemu:arg tag won't work
...
  <qemu:commandline>
    <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=P300'/>
    <qemu:arg value='-acpitable'/>
    <qemu:arg value='file=/var/lib/libvirt/images/slic.bin'/>
    <qemu:arg value='-acpitable'/>
    <qemu:arg value='file=/var/lib/libvirt/images/msdm.bin'/>
  </qemu:commandline>
</domain>

Есть также более элегантный способ сделать это, но, к сожалению, моя библиотека libvirt не хотела передавать таблицы ACPI в виртуальную машину:

<os>
....
<sysinfo type='smbios'>
 <bios>
  <entry name='vendor'>LENOVO</entry>
 </bios>
 <system>
  <entry name='manufacturer'>HP</entry>
  <entry name='product'>30AH001GPB</entry>
  <entry name='serial'>S4M88119</entry>
  <entry name='sku'>LENOVO_MT_30AH</entry>
 </system>
</sysinfo>
</os>

Как создать дамп таблицы ACPI? Просто:

root@node0:/sys/firmware/acpi/tables# ls -l
total 0
-r-------- 1 root root    146 Sep 23 13:44 APIC
-r-------- 1 root root    165 Sep 23 13:44 ASF!
-r-------- 1 root root     56 Sep 23 13:44 BGRT
-r-------- 1 root root     52 Sep 23 13:44 DBGP
-r-------- 1 root root    184 Sep 23 13:44 DMAR
-r-------- 1 root root  96238 Sep 23 13:44 DSDT
drwxr-xr-x 2 root root      0 Sep 23 13:44 dynamic
-r-------- 1 root root    268 Sep 23 13:44 FACP
-r-------- 1 root root     64 Sep 23 13:44 FACS
-r-------- 1 root root    156 Sep 23 13:44 FIDT
-r-------- 1 root root     68 Sep 23 13:44 FPDT
-r-------- 1 root root     56 Sep 23 13:44 HPET
-r-------- 1 root root 207330 Sep 23 13:44 LUFT
-r-------- 1 root root     60 Sep 23 13:44 MCFG
-r-------- 1 root root     85 Sep 23 13:44 MSDM
-r-------- 1 root root    374 Sep 23 13:44 SLIC
-r-------- 1 root root   1337 Sep 23 13:44 SSDT1
-r-------- 1 root root   2776 Sep 23 13:44 SSDT2
-r-------- 1 root root    877 Sep 23 13:44 SSDT3
-r-------- 1 root root  13608 Sep 23 13:44 SSDT4
root@node0:/sys/firmware/acpi/tables# cat SLIC > /var/lib/libvirt/images/slic.bin 

Он будет работать с носителями под брендом Windows 2008/2012. Очень важно проверить, правильно ли переданы эти аргументы, проверьте логин виртуальной машины: /var/log/libvirt/vm_name.log. Запустите какой-нибудь живой дистрибутив в виртуальной машине, например sysresccd, и проверьте вывод dmidecode -t 0; dmidecode -t 1 он должен соответствовать версии оборудования.

Как профессионал (только под брендом Windows 2012 Foundation AFAIK):

Извлеките таблицы SLIC из материнской платы и создайте собственный seabios, используя: https://github.com/ghuntley/seaslic

К сожалению, ответ, связанный с драйверами, подписанными Windows, не отражает активацию OEM / SLP. Эти драйверы могут улучшить производительность, но активация Windows OEM / SLP строго касается данных, хранящихся в BIOS, в частности таблиц ACPI.

Михаил Токарев смог сделать это сам, изменив источник, включив таблицу SLIC во весь формат таблицы, но он также упоминает, что это можно сделать с помощью нескольких параметров -acpitable (http://kerneltrap.org/mailarchive/linux-kvm/2010/3/24/6260060). Изменение, которое он внес в исходный код, просто позволило ему включить всю таблицу ACPI вместо передачи нескольких аргументов для включения различных ее аспектов в командную строку.

Я сам сейчас занимаюсь этим, так как хотел бы реализовать это в целях тестирования на некоторых установках в нашем офисе. У нас много OEM-машин, и мы можем нормально установить на каждую машину, но виртуализация дает много преимуществ для тестирования, а также очень быстрое развертывание, поэтому я хотел бы довести это до конца.

Я хотел бы отметить OP этого поста, rancidfishbreath, то, что он извлек из dmidecode, как он отформатировал это в параметрах, которые он дал kvm, и т. Д. Если вы можете добавить какие-либо данные, которые разработчики дали вам по этому поводу, я был бы признателен.

вам также может потребоваться использовать подписанные MS драйверы с гостевым KVM. http://www.linux-kvm.com/content/tip-how-setup-windows-guest-paravirtual-network-drivers http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers

Я точно знаю, что драйверы, поставляемые с RHEV, подписаны, но не уверен в CentOS

Проверьте http://jamar.org/2012/09/28/installing-windows-2008-hp-oem-as-kvm-guest/

предоставить информацию smbios в гостевой xml conf файл (/ etc / libvirt / qemu), который можно сбросить с помощью dmidecode

больше информации на: http://libvirt.org/formatdomain.html#elementsSysinfo

Работает у меня win2k12