oyogupenguin blog
私は研究の都合で、WindowsマシンにVirtualBoxをインストールし、ゲストOSにUbuntuを導入している。
昨日、VirtualBox上のUbuntuを立ち上げようと思ったところ、次のようなエラーが出て仮想マシンの起動ができず、非常に困った...
研究に必要な大事なデータも残っているのに...
VirtualBoxがつかえないことは私にとって死活問題であり(修論が書けない!!)、早急に復旧作業にとりかかった。
調べてみると、どうやら同様のエラーで困っていた先駆者も多いらしく、特にMicrosoftコミュニティでのやりとりがヒントとなった。
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はアンインストールしたのですが、症状は解決されませんでした。
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 for Windowsは、WSL2を使用して動作するため、インストール時にHyper-Vが有効になってしまった、ということです。
出典:Windows に Docker Desktop をインストール
CPUには仮想化を支援する__Intel-VT__や、__AMD-V__と呼ばれる機能が備わっており、Hyper-VとVirtualBox間でリソースの取り合いが発生するようです。
しかしながら、Latexコンテナも動作させたいし、VirtualBoxも必要だし...
共存させる方法はないかと探していると、このページを見つけました!
→WSL2(Hyper-V)とVirtualBoxを共存させるには _ daysput
このサイトによれば、
実はこの問題を解決するためのAPIがWindows April 2018 Update以降で提供されています。
このでAPIでは、仮想化ソフトウェアごとにパーティションを作成することでそれぞれの仮想化支援技術の利用を管理してくれます。
これを有効化することで、仮想化支援技術を占有することなく効率的に利用できます。
とのこと。なるほど、共存出来る可能性があるなら試してみよう。
長くなったので、今回はここまでで。
Name : oyopen
Working in Omotesando, Tokyo.
as a Software Engineer