Я пытаюсь выполнить автоматическую установку Windows Server 2012 на виртуальную машину KVM, используя virt-install
. Установщик жалуется: "Windows не может прочитать <ProductKey>
из файла ответов автоматической установки ", и я не смог понять, как продолжить работу после этого момента.
Я начинаю со следующего autounattend.xml
файл:
<unattend xmlns="urn:schemas-microsoft-com:unattend"
xmlns:ms="urn:schemas-microsoft-com:asm.v3"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup"
publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS" processorArchitecture="x86">
<UserData>
<AcceptEula>true</AcceptEula>
<ProductKey>
<Key>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
<WillShowUI>OnError</WillShowUI>
</ProductKey>
</UserData>
<ImageInstall>
<OSImage>
<WillShowUI>Never</WillShowUI>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>1</PartitionID>
</InstallTo>
<InstallFrom>
<MetaData>
<Key>/IMAGE/Name</Key>
<Value>Windows Longhorn SERVERSTANDARDCORE</Value>
</MetaData>
</InstallFrom>
</OSImage>
</ImageInstall>
</component>
</settings>
</unattend>
Я записываю это в образ ISO, используя mkisofs
:
$ ls config/
autounattend.xml
$ mkisofs -o config.iso -J -r config
А потом я начинаю установку так:
virt-install -n ws2012 -r 2048 -w network=default,model=virtio \
--disk path=ws2012.qcow2,device=disk,bus=virtio \
--cdrom en_windows_server_2012_r2_with_update_x64_dvd_4065220.iso \
--disk path=virtio-win-0.1-81.iso,device=cdrom \
--disk path=config.iso,device=cdrom \
--os-type windows --os-variant win2k8
Смотря на x:\windows\panther\setupact.log
, Я вижу, что программа установки находит файл автоматической установки:
2014-11-14 12:29:43, Info [0x060114] IBS
Callback_Productkey_Validate_Unattend:User specified an unattend
xml file
Указанный ключ продукта действителен (я могу скопировать и вставить его из этого файла в диалоговое окно ключа продукта, и установка будет продолжена правильно).
Вы знаете, как заставить эту установку работать?
В данном случае ответ был прост. Я имел:
<component name="Microsoft-Windows-Setup"
publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS" processorArchitecture="x86">
Когда мне понадобилось:
<component name="Microsoft-Windows-Setup"
publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS" processorArchitecture="amd64">
То есть я ошибся processorArchitecture
в моем XML (который я должен был заметить раньше).
Я знаю, что у меня есть рабочий, полностью автоматизированный процесс, в результате которого образ Windows подходит для развертывания в OpenStack. Скрипты и конфигурация, которые я использую, доступно на github.
процедура, которую мы используем для создания официальных оценочных образов Windows Server 2012 R2 для OpenStack, подробно описана здесь:
https://github.com/cloudbase/windows-openstack-imaging-tools
Образы Windows OpenStack (KVM и Hyper-V):