我创build了Windows 7专业版64图像,所有都得到这个错误。 我configuration它们使用1-74驱动程序使用virtio磁盘和networking适配器。 他们在本地工作良好(在Ubuntu 13,QCOW2驱动器,virtio nic和磁盘上的KVM),但是当我将它们上传到我的组织的OpenStack云时,Windows会引发错误。
当我试图创build一个实例时,我从控制台中看到以下错误:
- Windows安装程序无法将Windowsconfiguration为在此计算机的硬件上运行。

我承认错误,重新启动虚拟机,现在它不断尝试启动操作系统时,显示以下错误:
- Windows无法完成安装。 要在此计算机上安装Windows,请重新启动安装。

从这个KB中读取我检索的日志文件,如下所示:
setuperr.log
- 错误[0x0f0082] SYSPRP LaunchDll:执行'C:WindowsSystem32scecli.dll,SceSysPrep'时发生失败,返回错误代码1208 [gle = 0x000003e5]
- 错误[0x060435] IBS Callback_Specialize:决定是否需要专门化或专门化时发生错误; dwRet = 0x4b8
- 错误[0x0603f1] IBS Module_Term_ImageTransfer:无法禁用图像selectUI; 状态0x80070005 [gle = 0x00000005]
- 错误[0x0601b8] IBS Module_Term_DiskSpace:无法设置磁盘configurationUI标志[gle = 0x00000005]
setupact.log
我不会在这里列出整个文件(下载我的setupact.log ),但是在知识库文章中有描述。 最接近的条目是这样的:
- 2014-04-10 08:36:13,信息SYSPRP SPPNP:function驱动程序iaStorV未使用。
解决方法
作为一个临时的解决方法,我可以对破损的实例进行如下操作。 但是,我需要一个永久的解决scheme,以便首先不会出现错误。
- 在错误屏幕上按SHIFT-F10调出命令提示符。
- 运行CD C:\ windows \ system32 \ oobe \ msoobe
请帮忙,我一直试图让这个工作2个星期吧!
我能够通过以下方式创build一个没有启动错误的良好映像:
- 在本地创build映像,然后加载virtio驱动程序。 最好login到Windows审计模式,同时安装任何额外的驱动程序,更新,软件或自定义设置
- 不要安装cloudbase-init或sysprep映像
- 一目了然地上传图片到OpenStack(我们称之为SEED图片)
- 根据图像创build一个实例。 如果在初始启动过程中遇到任何Windows错误,请尝试解决它们(例如,通过在我的解决方法答案中运行msoobe)并启动到Windows。 您的目标是让Windows启动并在OpenStack模拟硬件上运行。 在这个阶段,Windows将自行调整以完全适合OpenStack模拟硬件 – 这在本地VM中难以做到。
- 如果您忘记了或完全不想在您的本地实例上执行这些更新,请在OpenStack中完成更新/定制您的实例。
- 仍然不要安装cloudbase-init或sysprep映像
- closures实例并获取SNAPSHOT(我们称之为PREP快照)! 请记住:快照是一个图像! 稍后您将能够参考此快照以进行图像更新,或者如果需要,甚至可以分离出新的图像。
- 此时,您不需要SEED图像或从中创build的实例。 你可以删除这两个。
- 从PREP快照启动一个新实例。 请注意,Windows在从SEED映像启动实例时不需要执行所有硬件调整。
- 您现在可以安装cloudbase-init和sysprep实例。
- closures系统并获取快照(让我们称之为IMAGE快照)。
- 通过启动一个实例来testing你的IMAGE快照。
- 将图片快照标记为公开并庆祝!
就我个人而言,我觉得这应该是build立新形象的标准过程。 您不仅可以获得在相同的硬件上部署的映像,而且可以使用快照function更新/testing/分散映像,从而在OpenStack中快速/轻松地完成映像的更新本地机器和上传,每次浏览一下。