oyogupenguin blog

2020/11/08

WindowsOSでのHyper-VとVirtualBoxの共存

WindowsWSL2VirtualBox
WindowsOSでのHyper-VとVirtualBoxの共存

私は研究の都合で、WindowsマシンにVirtualBoxをインストールし、ゲストOSにUbuntuを導入している。

昨日、VirtualBox上のUbuntuを立ち上げようと思ったところ、次のようなエラーが出て仮想マシンの起動ができず、非常に困った...

vb-error

研究に必要な大事なデータも残っているのに...

原因は?

VirtualBoxがつかえないことは私にとって死活問題であり(修論が書けない!!)、早急に復旧作業にとりかかった。

調べてみると、どうやら同様のエラーで困っていた先駆者も多いらしく、特にMicrosoftコミュニティでのやりとりがヒントとなった。

Q.

Windows 10 Proを最新のバージョン1903にアップデートしました。 その状態では仮想ソフト(Virtualbox、VMware、Nox Player)の仮想マシンは起動しました。 しかし、Windows Sandboxをインストールしてから、それらの仮想マシンが起動しなくなりました。 Virtualbox: 以下のメッセージが表示されました。

''' Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED). 終了コード : E_FAIL (0x80004005) コンポーネント: ConsoleWrap インターフェース: IConsole {872da645-4a9b-1727-bee2-5585105b9eed} '''

VMware: 以下のメッセージが表示されました。

中略

Virtualboxは再インストールし、Windows Sandboxはアンインストールしたのですが、症状は解決されませんでした。

A.

Windows SandboxがHyper-Vの機能を使用していますので、他の仮想マシンソフトウェアを使用するのであれば[Windowsの機能の有効化および無効化]でHyper-V及び関連する仮想化機能を無効化する必要があります。

なるほど、Hyper-V...

Hyper-Vが関連する機能はWindows Sandbox以外にも、

Windows Defender Application Guard

Windows Subsystem for Linux(WSL2が有効なIP版の場合のみ)

Windows ハイパーバイザープラットフォーム

インターネットインフォメーションサービスのホスト可能なWebコア

仮想マシンプラットフォーム

など複数ありますので注意願います。

基本的にHyper-Vを利用してセキュリティ機能や拡張機能を実装していく傾向がありますので、今後は他社製の仮想マシンソフトウェアを使うのはますます困難になるでしょう。

つまりはHyper-Vが悪さをしているということか...

Hyper-vとその他の仮想化環境を共存させることは出来ないということみたい...

しかし、Hyper-Vなんていじったことないぞ...最近はDocker for Windowsをインストールしたくらいで...

悪さをしたのはDocker

そう、Dockerをインストールしたことが、原因になっていました。

Docker for Windowsは、WSL2を使用して動作するため、インストール時にHyper-Vが有効になってしまった、ということです。

出典:Windows に Docker Desktop をインストール

dfw-install-req

なぜ競合がおきるのか? 共存はできない?

CPUには仮想化を支援する__Intel-VT__や、__AMD-V__と呼ばれる機能が備わっており、Hyper-VとVirtualBox間でリソースの取り合いが発生するようです。

しかしながら、Latexコンテナも動作させたいし、VirtualBoxも必要だし...

共存させる方法はないかと探していると、このページを見つけました!

WSL2(Hyper-V)とVirtualBoxを共存させるには _ daysput

このサイトによれば、

実はこの問題を解決するためのAPIがWindows April 2018 Update以降で提供されています。

Windowsハイパーバイザープラットフォーム

このでAPIでは、仮想化ソフトウェアごとにパーティションを作成することでそれぞれの仮想化支援技術の利用を管理してくれます。

これを有効化することで、仮想化支援技術を占有することなく効率的に利用できます。

とのこと。なるほど、共存出来る可能性があるなら試してみよう。

長くなったので、今回はここまでで。

profile

Gravatar for oyogupenguin@gmail.com

Name : oyopen

Working in Omotesando, Tokyo.
as a Software Engineer

Links

  • x (ex:Twitter)
  • GitHub