WindowsでLinuxを実行できる「Windows Subsystem for Linux」。
Widnows 10で導入された注目の機能で、Windows 11でも引き続き使用することができます。今回、このWSL(実際はWSL2)を、VMware Fusionの仮想Windows 11環境内で実行しようとしてみたところ、「WslRegisterDistribution failed with error: 0x80370102」というエラーが表示されてインストールできない現象に遭遇しました。
ファイルのダウンロードは完了しているものの、初期セットアップで失敗している感じです。
以下この問題を解消する方法を説明します。
仮想化のサポートが必要
ネットで検索してみると「0x80370102」エラーは、デバイスが仮想化をサポートしていない場合に発生するエラーの模様。実機の場合BIOS設定でCPUの仮想化機能を有効にすれば解決するようです。
VMware Fusion、VMware Workstationなどの仮想環境の場合は、仮想マシンのCPU設定を変更します。
▲仮想マシンをシャットダウンし、「設定 > プロセッサとメモリ」で「この仮想マシンでハイパーバイザーアプリケーションを有効にする」にチェックを入れます。
この後、仮想Windows 11を起動し、再度「wsl --install」でWSL2をインストールします。すでにインストール済みとみなされていた場合、アプリ設定から、Linuxディストリビューションを削除してから実行します。
これでもエラーが収まらない場合、「Windowsの機能の有効化または無効化」を検索して起動します。
▲「Windowsハイパーバイザープラットフォーム」と「仮想マシンプラットフォーム」にチェックを入れて、再起動後「wsl --install」を実行します。
▲エラーが表示されず、UNIXユーザー名の入力プロンプトが表示されたら成功です。
なお、ネットを検索するとvmxファイルに以下の設定を追加すると良いという情報も見つかりましたが、今回は特に必要ありませんでした。
hypervisor.cpuid.v0 = "FALSE" vhv.enable = "TRUE" vpmc.enable = "TRUE" mce.enable = "TRUE" vhu.enable = "TRUE"
「Windowsの機能の有効化または無効化」の効果がない場合は検討してみると良いかもしれません。
まとめ
WSL2をインストールする際に表示される「WslRegisterDistribution failed with error: 0x80370102」を解消する方法を説明しました。Windows 10 Version 2004あるいはWindows 11以降の環境では、「wsl --instlall」コマンド一発で、WSLのセットアップが完了するはずですが、場合によっては設定の見直しが必要な場合もあるようです。ご参考までに。