我正在尝试使用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
指定的产品密钥有效(我可以从该文件复制并粘贴到产品密钥对话框中,安装将正确进行)。
你知道如何使这个安装工作吗?
在这种情况下,答案很简单。我有:
当我需要时:
也就是说,我的
processorArchitecture
XML 中有错误(我完全应该早点发现)。我知道有一个工作的、全自动的过程,可以生成适合在 OpenStack 中部署的 Windows 映像。我正在使用的脚本和配置可在 github 上找到。
我们用于为 OpenStack 生成官方 Windows Server 2012 R2 评估映像的过程在此处进行了详细说明:
https://github.com/cloudbase/windows-openstack-imaging-tools
Windows OpenStack 映像(KVM 和 Hyper-V):
http://www.cloudbase.it/ws2012r2/