AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

対処:モジュール DevicePowerOn のパワーオンに失敗しました

VMware Player のVMイメージが必要で新たに用意したところ、次のエラーが出たので対処メモ。

3台用意したWindows10うち、1台だけで発生したので焦りました。


f:id:hidehara:20200812213858p:plain


vmware.log より

Power on failure messages: カーネルバイス \\.\VMCIDev\VMX を開くことができません: この操作を正しく終了しました。VMware Player のインストール後に再起動しましたか。
モジュール DevicePowerOn のパワーオンに失敗しました。
仮想マシンの起動に失敗しました。


対象OS等 :


※ホストOS再起動は終わっていて、ゲストVMをいくつかコピー作って試すものの動作しない状況でした

結論

ホストWindows10への、VMware Workstation Player のインストールが一部失敗していた。

設定 > アプリ > VMware Player を選択して、「修復」を実施。

デバイスドライバVMware VMCI Host Device が認識されてなく、不明なデバイス(値 : ROOT\VMWVMCIHOSTDEV\0000)と表示されていた症状が解決。

上記の後、「カーネルバイス \\.\VMCIDev\VMX を開くことができません」エラーがでることなく、無事にVMが起動するようになりました。

対処詳細

ゲストVM側での回避策もあったのですが、ホストOS側での対処に成功したのでゲストVMの設定は触らなくても動作させれました。



ゲスト側の設定を調整する回避方法

検索すると出てきたのが、このあたり。

内容としてはゲストVMの vmxファイルの設定を1つ変更する。

  • vmci0.present = “TRUE” を vmci0.present = “FALSE” に変更

上記を実施したところ、確かに起動できた。

しかし設定を戻すと、再び起動できず。

3台中1つでのみ、ゲストVMの設定を変更しなければいけない点も、ちょっと納得ができない。


vmci って何?

VMware が提供してる専用ネットワークっていう感じだろうか。

次の記事からは、なくても通常ネットワークは利用できるように思える。

仮想マシン コミュニケーション インターフェイス (VMCI) は、仮想マシンとホスト オペレーティング システム間、および同じホスト上の複数の仮想マシン間での高速かつ効率的な通信を実現するインフラストラクチャです。VMCI SDK によって、VMCI インフラストラクチャを使用するアプリケーションの開発が容易になります。VMCI がない場合、仮想マシンは、ネットワーク レイヤーを使用してホストと通信します。

前出の vmci0.present パラメータは、このI/Fの存在有無を設定してるのだろうと想像。

ホストOSのデバイスドライバ確認

vmci0.present を True にしてて、VMが起動しないのであれば、ホストOS側の不具合を疑った。

デバイスドライバを複数インストールしてる記憶があったので、のぞいてみると、不明なデバイスが4つ。

その中の1つには、不明なデバイス(値 : ROOT\VMWVMCIHOSTDEV\0000)とあり、 VMCI の文字も発見。

f:id:hidehara:20200812215946p:plain


不明なデバイスを修復

次の記事から、やってみた操作で解決した。

設定 > アプリ > VMware Player を選択して、「修復」を実施。

その後、促されるままに、ホストOSを再起動。

f:id:hidehara:20200812220218p:plain


デバイスドライバ > システムデバイスVMware VMCI Host Device が加わってることが確認。

f:id:hidehara:20200812220319p:plain


その後、vmx ファイルのパラメータを修正することなく、ゲストVMが起動できました。


これで3台ともに、同じゲストVMが、そのまま使えます。

めでたしめでたし。