web-dev-qa-db-ja.com

Windows7をOpenStackにデプロイする-インスタンスの起動時にWindowsセットアップエラーが発生する

Windows 7 Pro 64イメージを作成しましたが、すべてこのエラーが発生します。 1-74ドライバーを使用してvirtioディスクとネットワークアダプターを使用するように構成しました。ローカルでは正常に動作しますが(ubuntu 13、qcow2ドライブ、virtio nic、ディスクのkvm)、組織のOpenStackクラウドにアップロードするとWindowsでエラーが発生します。

インスタンスを作成しようとすると、コンソールから次のエラーが表示されました。

  • Windowsセットアップは、このコンピューターのハードウェアで実行するようにWindowsを構成できませんでした。 enter image description here

エラーを確認しました。VMが再起動しましたが、OSを起動しようとすると、常に次のエラーが表示されます。

  • Windowsはインストールを完了できませんでした。このコンピューターにWindowsをインストールするには、インストールを再開します。

enter image description here

からの読み取り この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 )、KB記事に記載されているようなエントリがありました。最も近いエントリはこれでした:

  • 2014-04-10 08:36:13、情報SYSPRP SPPNP:関数ドライバーiaStorVは使用されていません。

回避策

一時的な回避策として、壊れたインスタンスに対して次のことを実行して、インスタンスを機能させることができます。ただし、そもそもエラーが発生しないように、永続的な解決策が必要です。

  1. エラー画面でShift-F10を押して、コマンドプロンプトを表示します。
  2. CD C:\ windows\system32\oobe\msoobeを実行します

助けてください、私はこれを2週間動作させようとしています!

1
Alex

次の方法で、起動エラーのない良好なイメージを作成できました。

  1. ローカルでイメージを作成し、virtIOドライバーをロードします。できれば、追加のドライバー、更新プログラム、ソフトウェアをインストールしたり、設定をカスタマイズしたりしながら、Windows監査モードにログインしてください。
  2. Cloudbase-initまたはsysprepイメージをインストールしないでください
  3. 画像を一目でOpenStackにアップロードします(SEED画像と呼びましょう)
  4. イメージに基づいてインスタンスを作成します。最初の起動時にWindowsエラーが発生した場合は、それらを解決して(回避策の回答でmsoobeを実行するなど)、Windowsを起動してみてください。ここでの目標は、WindowsをOpenStackエミュレートされたハードウェアで起動して実行することです。このフェーズでは、WindowsはOpenStackエミュレートされたハードウェアに完全に適合するように調整されます。これはローカルVMでは実行が困難でした。
  5. ローカルインスタンスでこれらの更新を忘れた場合、または単に実行したくない場合は、OpenStackでインスタンスの更新/カスタマイズを完了してください。
  6. それでもcloudbase-initまたはsysprepイメージをインストールしないでください
  7. インスタンスをシャットダウンし、スナップショットを取ります(これをPREPスナップショットと呼びましょう)。注意:スナップショットIS画像!後でこのスナップショットを参照して画像を更新したり、必要に応じて新しいフレーバーの画像を分割したりすることができます。
  8. この時点では、SEEDイメージまたはそれから作成したインスタンスは必要ありません。両方を削除できます。
  9. PREPスナップショットから新しいインスタンスを起動します。 SEEDイメージからインスタンスを起動したときにWindowsが行ったすべてのハードウェア調整をWindowsが行う必要がないことに注意してください。
  10. これで、cloudbase-initとsysprepインスタンスをインストールできます。
  11. システムをシャットダウンし、スナップショットを撮ります(これをIMAGEスナップショットと呼びましょう)。
  12. IMAGEスナップショットからインスタンスを起動して、そのスナップショットをテストします。
  13. IMAGEスナップショットを公開としてマークし、祝いましょう!

個人的には、これが新しいイメージを構築するための標準的なプロセスであるべきだと思います。デプロイされるのと同じハードウェアで作成されたイメージを取得するだけでなく、イメージの更新/テスト/フォークは、スナップショット機能を使用してOpenStack内で行うのが、イメージを更新するよりもはるかに高速/簡単になります。ローカルマシンと毎回一目でアップロードします。

0
Alex