Windows-7
將 Windows 7 部署到 OpenStack - 實例啟動時出現 Windows 設置錯誤
我創建了 Windows 7 Pro 64 映像,但都收到此錯誤。我使用 1-74 驅動程序將它們配置為使用 virtio 磁碟和網路適配器。它們在本地執行良好(ubuntu 13 上的 kvm、qcow2 驅動器、virtio nic 和磁碟),但是當我將它們上傳到我的組織的 OpenStack 雲時,Windows 會引發錯誤。
當我嘗試創建一個實例時,我從控制台看到以下錯誤:
- Windows 安裝程序無法將 Windows 配置為在此電腦的硬體上執行。
我承認了錯誤,虛擬機重新啟動,現在它在嘗試啟動作業系統時不斷顯示以下錯誤:
- 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:禁用圖像選擇 UI 失敗;狀態 0x80070005$$ gle=0x00000005 $$
- 錯誤$$ 0x0601b8 $$IBS Module_Term_DiskSpace:設置磁碟配置 UI 標誌失敗。$$ gle=0x00000005 $$
setupact.log
我不會在此處列出整個文件(下載我的setupact.log),但有類似知識庫文章中描述的條目。最接近的條目是這樣的:
- 2014-04-10 08:36:13,資訊 SYSPRP SPPNP:功能驅動程序 iaStorV 未使用。
解決方法
作為臨時解決方法,我可以對損壞的實例執行以下操作以使其正常工作。但是,我需要一個永久的解決方案,以便一開始就不會出現錯誤。
- 在錯誤螢幕上按 SHIFT-F10 調出命令提示符。
- 執行光碟 C:\windows\system32\oobe\msoobe
請幫忙,我一直在努力讓它工作 2 週!
我能夠通過以下方式創建沒有啟動錯誤的良好圖像:
- 在本地創建映像,並載入 virtIO 驅動程序。最好在安裝任何其他驅動程序、更新、軟體或自定義設置時登錄 Windows 審核模式
- 不要安裝 cloudbase-init 或 sysprep 映像
- 使用 Glance 將圖像上傳到 OpenStack(我們稱之為 SEED 圖像)
- 根據鏡像創建實例。如果您在初始啟動期間遇到任何 Windows 錯誤,請嘗試解決它們(例如通過在我的解決方法答案中執行 msoobe)並啟動到 Windows。您的目標是讓 Windows 在 OpenStack 仿真硬體上啟動和執行。在這個階段,Windows 將自我調整以完美適應 OpenStack 模擬硬體——這在本地 VM 中很難做到。
- 如果您忘記或不想在本地實例上進行這些更新,請在 OpenStack 中完成更新/自定義您的實例。
- 仍然不要安裝 cloudbase-init 或 sysprep 映像
- 關閉實例並拍攝快照(我們稱之為 PREP 快照)!請記住:快照就是圖像!稍後您將能夠參考此快照來進行圖像更新,甚至在需要時拆分新的圖像風格。
- 此時,您不需要 SEED 映像或您從中創建的實例。您可以刪除兩者。
- 從 PREP 快照啟動一個新實例。請注意,當您從 SEED 映像啟動實例時,Windows 不需要進行所有硬體調整。
- 您現在可以安裝 cloudbase-init 並 sysprep 實例。
- 關閉系統並拍攝快照(我們稱之為圖像快照)。
- 通過啟動一個實例來測試您的 IMAGE 快照。
- 將 IMAGE 快照標記為公開並慶祝!
就個人而言,我覺得這應該是建構新圖像的標準過程。您不僅可以獲得在將要部署的相同硬體上製作的映像,而且與更新您的映像相比,使用快照功能在 OpenStack 中更新/測試/分叉映像將更快/更容易本地機器,每次都上傳到glance。