WSL2(Hyper-V)とVirtualBoxを共存させるには
5月頃にWindows 10 May 2020 Update (opens new window)
が配信開始されていたとのことなので、目玉機能であるWSL2と、仮想マシンの定番VirtualBoxで起こりうる仮想化機能の競合について書いていきます。
# WSL2とは
簡単に書くとWindows環境で動くLinux環境です。
WSL2では、Linux OSの中核となるLinuxカーネルがWindowsで動作することで完全なLinux環境を構築することができます。
そんな完全なLinuxは、Hyper-Vという仮想化システム(ベアメタル型ハイパーバイザに分類)上に配置されることになります。
WSL「2」なので当然無印のWSLも存在します。
WSLとWSL2ではかなり仕様が異なるので、WSLについてはここでは触れません。
# VirtualBoxとは
メインのOS上で自由に他のOS環境を構築できる仮想化ソフトウェア(ホスト型ハイパーバイザに分類)です。
Windowsだけでなく、Mac、Linux上でも利用できます。
あまり使わないので詳しくは知りません。
# 何故競合が起きるのか
WSL2が動作するHyper-VとVirtualBoxでは、効率的に仮想マシンを動作させるためにCPUが持つ仮想化支援技術を利用しています。
そして、それぞれがこの仮想化支援技術を占有しようとするためため競合が起こります。
# 競合の解決方法
実はこの問題を解決するためのAPIがWindows April 2018 Update以降で提供されています。
Windowsハイパーバイザープラットフォーム (opens new window)
このでAPIでは、仮想化ソフトウェアごとにパーティションを作成することでそれぞれの仮想化支援技術の利用を管理してくれます。
これを有効化することで、仮想化支援技術を占有することなく効率的に利用できます。
# APIの有効化
[Windowsの機能の有効化または無効化]からWindowsハイパーバイザープラットフォームにチェックを入れます。