#これは何?
私の技術メモです。
そもそもは**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として同様のことが書かれているので、個人的にはより納得感が増しました。