Hyper-V と VirtualBox が共存できる条件について

# はじめに

qiita 初投稿の記事として、以下のページを公開しました。

https://qiita.com/hiro20180901/items/bc2fbd60c646da280916

こちらには、Hyper-V と VirtualBox が共存できている私の環境を記載しましたが、過去の取り組みの中で「なぜ共存できないんだー」と約2年に渡って悩み続けていました。

同じような苦労を繰り返さないように、私の経験から、Hyper-V と VirtualBox が共存できる条件についてまとめました。

なお、共存させる事による性能低下が、特に VirtualBox に顕著ですので、VirtualBox のみを使用する場合には無理に共存させずに、単独で使用した方が良いかと思います。

(私が Hyper-V と VirtualBox を共存させているのは、単なる技術的な興味からです)

# CPU の種類

Hyper-V は CPU にハードウェア仮想化技術 (Virtualization technology) が備わっていないと動作させる事は出来ません。VirtualBox はハードウェア仮想化技術は必須ではありませんでしたが、[Ver.6.1.0 から必須となりました](https://www.virtualbox.org/wiki/Changelog-6.1 "Ver.6.1 ChangeLog")。

Intel であれば VT-x、AMD であれば AMD-V (又は SVM Mode) に対応しているかどうかが一つの基準になります。

ところが、Core i7 870 で色々と試した際に、一言で「ハードウェア仮想化技術」といっても、CPU の世代によって対応範囲が異なっている事が分かりました。


https://hiro20180901.hatenablog.com/entry/2019/02/23/070000


上記の記事は qemu の whpx option が使えなかった時の調査内容です。少なくとも、Nehalem 世代の Core i7 870 は Hyper-V / VirtualBox それぞれ単独では動作しましたが、共存はできませんでした。その原因は、対応しているハードウェア仮想化技術の範囲が、ソフトウェアの要求している内容に対して不足している為だと私は推測しています。

| メーカー | 発売   | 世代                | CPU 名称      | 共存 |
|:--------|:------:|:--------------------|:--------------|:---:|
| Intel   | 2009Q3 | Nehalem (Lynnfield) | Core i7 870   | ×   |
| Intel   | 2013Q3 | 第4世代 Haswell      | Core i5 4300U | ○   |
| Intel   | 2017Q3 | 第8世代 Kaby Lake Refresh | Core i7 8650U | ○   |
| Intel   | 2019Q2 | 第8世代 Whiskey Lake | Core i5 8365U | ○   |
| AMD     | 2019Q3 | Zen2 Matisse        | Ryzen 7 3800x | ○   |
| Intel   | 2019Q4 | Gemini Lake Refresh | Celeron J4125 | ○   |

以下のページの内容を表に追加しています。


https://qiita.com/takotakot/items/94d3218cf8de5b2c1da8


情報が少なくて判断が難しいですが、少なくとも過去10年以内に発売された CPU であれば共存できそうです。(情報を頂けたら追記します)

# UEFI / BIOS で CPU の仮想化機能を有効化

Intel CPU は真面な環境を所有していないので省略します。[UEFI に Intel VT-x の項目がない Mini PC です](https://hiro20180901.hatenablog.com/entry/2022/04/03/230000, "MINISFORUM GK41 UEFI")。

AMD 環境では、UEFI の AMD-V 又は SVM Mode を Enabled にすると同時に、IOMMU も Enabled にします。仮想化が有効にならない場合には、両方を一旦 Disabled にして再起動、その後で両方を Enabled にして再起動すると有効になります。


https://hiro20180901.hatenablog.com/entry/2020/01/31/070000


# Windows10 / Windows11 のバージョン

Home でも可能だと思いますが、Pro を推奨します。

Windows10、Windows11 共に、Windows Update で最新版に更新して下さい。

私の場合は、Windows10 Pro 20H2 に更新後に共存できるようになりました。Windows11 Pro は 21H2 から使い始めましたが、最初から共存できました。

# Windows の機能の有効化または無効化の項目

コントロールパネル -> プログラム -> プログラムと機能の中にあります。検索で「有効化または無効化」で探す方が簡単です。

少なくとも以下の項目が有効になっている事を確認してください。

- Hyper-V ... 子項目も含め全て ON
- Linux 用 Windows サブシステム ... WSL2 も使うなら ON
- Windows ハイパーバイザープラットフォーム ... VirtualBox や qemu-whpx を使う時に必要
- 仮想マシン プラットフォーム ... 同上

これで、少なくとも Hyper-V と WSL2 は使えるようになります。

# VirtualBox のバージョン


https://qiita.com/takotakot/items/94d3218cf8de5b2c1da8#2021-10-30-%E8%BF%BD%E8%A8%98


こちらのページによると、Ver.6.1.28 は地雷のようです。

2023年7月現在で、

- Ver.6 系は 6.1.44
- Ver.7 系は 7.0.8

が最新です。Ver.7.0.8 で問題なく共存できていますので、Ver.6 系に拘る理由が無ければ、Ver.7.0.8 をインストールする事をお勧めします。

# まとめ

[前の記事](https://qiita.com/hiro20180901/items/bc2fbd60c646da280916, "【結論】Hyper-V と VirtualBox は共存できます！")で


**Hyper-V と VirtualBox (と WSL2 と qemu-whpx) は共存できます！**


と大見得を切ってしまいましたので、Hyper-V と VirtualBox を共存させたくても実現できていない方への参考となるように、条件をまとめました。

Hyper-V と VirtualBox が共存できる環境であれば、同じように Windows ハイパーバイザープラットフォームを使用する qemu の whpx option も使用できるようになります。

拙い文章ですが、参考になれば幸いです。

(この記事は qiita-cli を試用して書きました。普段使いのエディタで書けるのは便利です)