さてHANAの仮想環境を実行しようとしたところ、VMWareおよびOracle VM Virtual Boxの両方でエラーがでる。
まずはVT-xの不具合によるエラーであることを確認する。これはIntel Processor Identification Utility(IPIU)により確認できる。
このツールは下記から無料で取得できる。
https://downloadcenter.intel.com/download/7838/Intel-Processor-Identification-Utility-Windows-Version
IPIUで確認した結果、VTが利用できていないことが分かった。
この原因として考えられるのは下記3つであることが分かった。
https://superuser.com/questions/1153470/vt-x-is-not-available-but-is-enabled-in-bios
- The CPU doesn’t support VT-x
- VT-x is not enabled in the BIOS
- Hyper-V virtualization is enabled in Windows
まずCPUに関しては使用しているDELLに問い合わせをして確認をしたところ、搭載しているCPUがVT-Xをサポートしていることは確認できた。
次にBIOSについても同様にDELLのサポートから2か所の設定が有効になっていればDellのハードウェアとしてはVT-xが有効になっていることがわかった。
そうするとHyper-Vが有効になっていることが理由と考えられる。そもそも論としてVX-tとHyper-Vは共存できないことが下記で記述されている。
https://social.technet.microsoft.com/Forums/en-US/118561b9-7155-46e3-a874-6a38b35c67fd/hyperv-disables-vtx-for-other-hypervisors?forum=w8itprogeneral
つい先日Dockerを導入している。このDockerはHyper-Vを利用している動く。Dockerを導入→Hyper-Vが有効になる。
ではHyper-Vをどうやって無効にするか。
調べてみると3つの方法がある。
- bcdeditを利用する
- dismを利用する。
上記2つはHyper-V側のエラーから調べた。
3. Credential Guardを無効化する。
上記はVMWareの下記サイトに記載されているMicrosoftサイトに掲載された手順である。
https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-manage
さてまず1) bceditでVX-tが有効になるか試す。
再起動後IPIUで確認したところいまだVT-xはNoになっている。
そこで気づいたのがDockerがスタートアップで起動する時にHyper-Vが正常に動いているかを確認している。のみならずただしく動いていないと自らHyper-Vの設定を変えて正しく動かしているようにみえる。
そこでまずDockerをスタートアップでは起動しないようにした。次に3)の方法を実行。最後にHyper-VをWindowsの機能の有効化から確認して無効にする。
この3つの方法をとった結果、IPIU上でVT-xがYesになることを確認した。
この結果VMWareおよびVirtual Boxの両方で仮想マシンが立ち上がることを確認した。



