自動ログオンが成功すると自動的に再起動するOpenStack上のWindows10VMが発生しています。しばらくの間これに苦労し、グーグルでこのトピックを検索するのに費やした時間は無駄になりました。以下のステップバイステップの手順に従って、根本的な原因を特定し、OpenStack上のWindows10VMが自動的に再起動しないようにします。
なぜWindowsが自動的に再起動するのか疑問に思いましたか?ありがたいことに、Windowsはイベントを追跡し、システムログに記録します。組み込みのWindowsイベントビューアを使用すると、コンピュータのシャットダウンまたは再起動の前、最中、および後にコンピュータで発生するアクティビティを監視できます。この記事は、自動再起動をトリガーしたWindows10のシステムログを表示するのに役立ちました。
イベントビューアからシャットダウンと再起動のログを表示する
イベントビューアアプリを開く
Windows Logs -> System
に移動します 左側のペイン。すべてのログがロードされるまで待ちます。 Filter Current Log
をクリックします 右ペインにあります。 41、1074、6006、6008と入力します [イベントIDを含める/除外する]の下のテキストボックスに移動し、[OK]をクリックしてイベントログをフィルタリングします。
フィルタリングされたログから、Cloudbase-Initが以下のようにコンピューターの再起動を開始したことを示す疑わしいログを見つけました:
これはさらに調査するためのヒントを提供し、cloudbase-initに関連するlaunchpadで報告されたバグを発見しました。以下は、自動再起動が発生した理由についての私の理解です:
cloudbase-init unattend.xml
から ファイル(C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\unattend.xml
)cloudbase-initが特殊な設定でホスト名を設定しようとしていることがわかります。これにより、特殊化ステップ中にSetComputerName関数が実行され、コンピューター名がDESKTOP-<random string>
に変更されます。 。 Windows10の既知の問題は、コンピューター名を変更するには再起動が必要なことです。
OpenStack上のWindows10VMが自動的に再起動しないようにする方法!
迅速な解決策を提供してくれたCurtMooreに感謝します。以下で詳しく説明しようとしたのと同じです:
ステップ1: 自動インストール中に自動sysprepを実行しないことを除いて、通常どおりMSIを使用してCloudbase-initをインストールします。
ステップ2: Cloudbse-initのインストールが完了したら、コマンドプロンプト(管理者として実行)から次のコマンドを実行して、Windowsサービスバージョンのcloudbase-initの自動起動を無効にします。
sc config cloudbase-init start= disabled
ステップ3: unattend.xmlファイルを編集し、別のRunSynchronousC
を追加します ノードを使用して、cloudbase-initWindowsサービスの自動開始を再度有効にします。このコマンドは、<Order>1</Order>
として設定する必要があります また、既存の無人のcloudbase-initノードが<Order>2</Order>
に設定されています そのため、再起動が必要なcloudbase-initの無人インスタンスの前にre-enableコマンドが実行されます。無人のcloudbase-initが必要とする再起動時に、cloudbase-initサービスを再度有効にすると(ただし、現時点では再起動しないでください)、Windowsサービスインスタンスは希望どおりに起動し、競合することはありません。すでに実行されているため、無人インスタンス。以下は、変更されたunattend.xml
です。 ファイル:
ステップ4: unattend.xml
を編集した後 ファイル、コマンドプロンプトから手動でsysprepコマンドを実行し(管理者として実行)、変更されたXMLを参照します。
C:\Windows\system32>"%SYSTEMROOT%\system32\ sysprep\ sysprep. exe" /generalize /oobe /quit /unattend:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\unattend.xml
unattend.xmlを参照してください
インストールに関して、unattend.xmlファイルパスを正しく参照してください。
ステップ5: sysprepの後でWindowsIP構成を解放し、すぐにVMをシャットダウンします。
IPをリリースする理由これにより、sysprepが実行される前にVMが持っていたのと同じIPアドレスを再検出する必要がなくなります。これは、OpenStackでVMを起動するときに厄介です。これは、ネットワークセグメントがまったく異なり、Windowsが古いアドレスの再検出を停止して新しいDHCPリクエストを発行するのを停止するのに約10〜20秒かかるためです。
ipconfig /release shutdown /s /f /t 1
次に、Windows VMをOpenStackにアップロードし、インスタンスを起動します。出来上がり! Windows10 VMが自動ログインし、再起動しませんでした!