WindowsでLinuxアプリケーションやLinuxコマンドを実行する機能である「WSL 2」は、仮想環境で動作するWindowsでは使えないことが多い。しかし、これはHyper-Vなどの仮想環境の設定を変えることで動くようにできる。仮想環境上のWindowsでWSL 2を使えずに諦めていた人は、本稿で紹介する方法を試してみていただきたい。

仮想環境「Hyper-V」

Windows 10 ProまたはWindows 11 Pro以上のエディションを使っているなら、「Hyper-V」と呼ばれる仮想化機能を使うことができる。コンシューマー向けPCに搭載されているのはWindows 10のHomeと呼ばれるエディションであることが多く、Hyper-Vを使えないことが多い。しかし、アップグレード料金を支払うことでProへアップグレードするパスが存在することは覚えておいてほしい。Pro以上で提供される「Hyper-V」の機能は便利なので、使いたいと思ったらアップグレードを検討してほしいところだ。

  • Windows 10 on Windows 10

    Windows 10 on Windows 10

Hyper-Vを使うと、Windows 10の仮想環境上で「Windows 10」を動かしたり、「Windows 10 開発環境」を動かしたり、「Windows 11開発版」を動かしたりすることができる。LinuxやFreeBSDなど、他のオペレーティングを動かすこともできる。他のオペレーティングシステムを動作させるというのはわかりやすいメリットだ。

Windows 10の上でさらにWindows 10を動かした場合、何がうれしいのたと思うかもしれない。例えば、開発環境として仮想環境で動く「Windows 10」を使うという用途がある。開発環境はいろいろ触るものなので、どんどん煩雑になっていく。そして、そのうちデフォルトの状況がわからなくなってくる。

こうした場合、仮想環境のWindows 10で作業しておけば、クリアしたくなったら仮想環境を削除して、もう一度セットアップすればよいのだ。ホストには手を入れずに買った時に近い状態をキープしておき、触るのは仮想環境だけにする。これでPCをクリーンな状態に保ちつつ、心ゆくまでカスタマイズも楽しめるというわけだ。

開発者に限らず、Windowsが散らかった状態になりがちという方にも、Hyper-Vはオススメだ。もちろん、仮想環境で動かすWindows 10の分のライセンス料を支払う必要があるが、環境が散らかりがちでPCの調子が悪くなることが多いなら、仮想環境をメインの作業場所とし、ホストのWindowsはクリーンな状態に保つという使い方もライフハックとしておススメなのだ。

仮想環境のWindowsでWSL 2が動かない

Windows 11やWindows 10にはLinuxのソフトウェアを実行するための機能である「WSL 2 (Windows Subsystem for Linux version 2)」が搭載されている。これは、WindowsでLinuxのコマンドを実行する機能だ。Windows 11開発版では、LinuxのGUIアプリケーションも実行できるようになっている。

便利な機能なので、当然Hyper-Vで動作しているWindowsでもWSL 2が使いたいと考えるのは当然だ。しかし、である。Hyper-Vで動作しているWindowsでWSL 2の機能を使おうとすると、次のようなエラーが出力されてWSL 2が実行できないはずだ。

WSL 2が実行できないというエラーの例(その1)

WslRegisterDistribution failed with error: 0x80370102

WSL 2が実行できないというエラーの例(その2)

WslRegisterDistribution failed with error: 0x80370109
  • WSL2が実行できないというエラーの例 その1

    WSL 2が実行できないというエラーの例(その1)

  • WSL2が実行できないというエラーの例 その2

    WSL 2が実行できないというエラーの例(その2)

仮想環境だから実行できないのかな、と思うかもしれない。半分正解だ。WSL 2は機能としてはHyper-Vを使っている。つまり、仮想環境でWSL 2を使おうとした場合、Hyper-Vの上でHyper-Vを使うという状態になる。Hyper-Vはデフォルトではこの機能を許可していないので使うことができないのだ。

しかし、である。最近のPCはHyper-Vの中でHyper-Vを使うための機能を備えているものが多く、ホストのHyper-Vの設定を変えることで、仮想環境のWindowsでもWSL 2を実行できるようになる。WSL 2は仮想環境でも使えたほうが便利であるは間違いないので、ぜひ使えるようにしておこう。

なお、この設定は仮想環境で動作しているWindowsでHyper-Vを使って、さらにWindowsを仮想環境で動かすということもできる。仮想環境の中の仮想環境で動作するWindowsも実現できるのだ。しかし、そのメリットはあまりないと思う。ホストのWindowsで別の仮想環境を作って利用したほうがよいだろう。