(驚きの情報)Windows11 24H2+VirtualBox 7.2.0で、ついにHyper-V/WSL2とVirtualBoxの”実用的な速度”での共存が可能になってました

PC関連
スポンサーリンク

「驚きの情報」っていうか、「私が驚いた」って話なのですが・・・

Windowsを使っていて
Hyper-V(又はWSL2/docker)
VirtualBox
VMware
を複数同時に使っていた人にしか伝わらない話なのですが、
「Hyper-V/WSL2を有効にするとVirtualBox/VMwareが動かない」
から始まって
「Hyper-V/WSL2を有効にするとVirtualBox/VMwareが
動いても劇遅で使い物にならない」
(もしくは相当我慢してVirtualBox使えばぎりぎり我慢できる/できない)
という状態がつい最近まで続いていました

(※)「Hyper-V/WSL2とVirtualBoxが共存できるだけまし」
「動くだけまし」って状況が続いていました

なのですが、(どうやらVirtualBox 7.1.4以降かららしいのですが)
Windows11 24H2 + VirtualBox 7.2.0の現在
「Hyper-V/WSL2を有効にしていてもVirtualBoxが実用的な速度で快適に動く」状況になっていたみたいです

スポンサーリンク

今回は細かい設定方法は書かずに概要だけ書きます

細かい説明書いてると長くなりそうなので概要だけ書きます

スポンサーリンク

これまではHyper-VをOFFにしてVirtualBox/VMwareだけを使ってました

Hyper-V/WSL2を設定した状態で(自分でコマンドで切り替えてもいいのですが)「Hyper-V Switch」というフリーソフトを使ってHyper-VのON/OFFを切り替えてました

(※)というかHyper-VはOFFにしっぱなしにしていました。私はVirtualBoxメインで使っていたので

Windowsの仮想化機能“Hyper-V”をGUIで手軽にON/OFFできる「HyperV-Switch」 - 窓の杜
「HyperV-Switch」は、Windowsの仮想化機能“Hyper-V”を手軽にON/OFFするためのツール。編集...
Releases · nuitsjp/HyperV-Switch
It is an application to switch the ON / OFF of Hyper-V - nui...
スポンサーリンク

これまではWSL2はVMware上で使っていました

Hyper-V自体はVirtualBoxやVMwareで同等の事ができるので不要だったのですが、「WSL2/dockerが使えない」のが本当に困っていて、これまでは「nested virtualization」ができるVMware上でWSL2を使っていました

(※)VMwareでも標準ではできず、設定ファイルいじる必要があったので他の人にはオススメしづらい方法でした
(※)2025年現在、VMware Workstation/Player自体がオススメしづらい状況です

スポンサーリンク

これからはVirtualBoxが使える環境でWSL2が普通に使えます

(※)正確に書くと「WSL2/dockerが使える環境」で「VirtualBoxが普通に使えます」ですね・・・(私が「VirtualBoxメイン」の使い方をしてるので視点が逆転してます・・・)

VirtualBoxが快適に動く状況下で同時にWSL2が普通に使える様になったのは非常に助かります

尚、同時にHyper-Vも普通に使える様になりました

スポンサーリンク

Hyper-Vもnested virtualizationが使えるんだった

Hyper-Vもnested virtualizationが使えるので、Hyper-V上のWindowsでもWSL2を動かす事ができます

Hyper-VのVMでnested virtualizationを動かす為には下記の設定が必要になります

Run Hyper-V in a Virtual Machine with Nested Virtualization
Learn how to use nested virtualization to run Hyper-V in a v...

具体例で言うと、例えばHyper-VのゲストOSで「Win11_24H2」という名前のゲストOSがあったとして

(Windowsターミナルなどで)Powershellを起動して

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

の<VMName>をWin11_24H2に置き換えて

Set-VMProcessor -VMName Win11_24H2 -ExposeVirtualizationExtensions $true

を一度実行すればゲストOSがnested virtualization対応になるので、ゲストOS上でWSL2が動くという事になります

(Hyper-VのゲストOS Windows11 24H2上でWSL2とDockerが動いてる例)

(※)勿論「Hyper-VのゲストOS上でWSL2が動く」だけでなく「ホストOS上でもWSL2が動きます」(ホストOSでWSL2が動く方が本来の形です。これまではこれができなかったです)

スポンサーリンク

AI時代にdockerは必須技術の一つなので本当に助かった・・・

AI時代になって、「ローカルPCでAI系の設定をする際にdockerは必須技術の一つ」になってるので、「メインPC環境でdocker環境どうしようかなー?」と迷ってる最中での「気づき」だったので本当に助かりました・・・

(※)繰り返しになりますがVirtualBox 7.2.0からではなくて7.1.4から既に対策済みだったらしいのですが、過去5年越し、10年越しで「どうしても実用的な速度では共存できなかった」話なので「まさか実用的な速度で共存できる様になっていた」とは思ってもいませんでした・・・

(※)・・・というか、(世間的に)「もっと騒いどいてくれよ?」って感想でもあります・・・
「誰も騒がないから本気で全く気付いてなかった」っていうのが本音でもあります

コメント

タイトルとURLをコピーしました