Edited at

VT-xとHyper-VとVirtualBoxの関係についてのメモ


これは何?

私の技術メモです。

そもそもはDocker for WindowsとVirtualBoxは共存できない?から始まり、Hyper-V含めたその辺りの関係性がよくわからなかったので、調べた結果を自分向けに整理します。

違うところがあったらどなたか教えてください!


知りたかったこと

Hyper-VとVirtualBoxはなぜ同時に使用できないのか?


個人的な結論

VT-xを同時に使用できるのは一つの機能だけだから。

(AMD製は調べてません)


調べた


登場するもの



  • VT-x(Intel VT)


    • 仮想化支援技術




  • Hyper-V


    • VT-xあるいはAMD-Vが必要




  • VirtualBox


    • VT-xあるいはAMD-Vが必要




  • Docker for Windows


    • Hyper-Vの上で動く


      • 肝要なのは「Hyper-Vが必要」っていうところだけです






なぜHyper-VとVirtualBoxは共存できないのか?

↑の情報だけなら、VT-xを有効にしていればHyper-V(とDocker for Windows)とVirtualBoxのどちらも使えるのでは?と思いました。

その後調べてみて、↓を見つけました。(古いけど…)

hyper-v disables vt-x for other hypervisors

ここには回答に


Because when hyper-V is installed on Windows 8 Pro, the hypervisor is running all the time underneath the host OS, and only one thing can control the VT hardware at a time for stability.

The hypervisor blocks all other calls to the VT hardware.


ということがMicrosoft MVPの方によって書かれています。

個人的訳ですが恐らく、


同時にVTハードウェア(=VT-x?)をコントロールできるのは、安定性のために1つだけです。

ハイパーバイザ(=Hyper-V?)は、他の全てがVTハードウェアを呼び出しすのをブロックします。


ハッキリと「1つだけです」「ブロックします」と書かれており、これならHyper-VとVirtualBoxが同時に使用できないことが納得できます。

この投稿はWindows8 Pro時代のものなので間違っている可能性がありますが、Windows10 Hyper-Vのシステム要件に「他の呼び出しをブロックする」とまでハッキリ書いてあるところが見つからなかったので、Hyper-Vのこの仕様は変わってないだろう…と思って納得することにしました。(ダメかな…?)


なぜHyper-VとVirtualBoxは共存できないのか?2019/06/21追記

Switch between Hyper-V and VirtualBox or VMware on Windows 10

こちらではWin10として同様のことが書かれているので、個人的にはより納得感が増しました。


参考にさせて頂いたもの(ありがとうございます)