Windows 10(バージョン 1903 / ビルド 18362以降)から、公式ツールのみで手軽にインストールできるようになった「WSL2(Windows Subsystem for Linux 2)」。
今回は、Microsoftの公式ドキュメントを参考にしつつ、基本のインストール手順から、少し特殊な「ESXi上のWindows 10(ネスト環境)」で構築する際のエラー回避方法までを詳しく解説します。
1. 設定環境の確認
今回利用するOS環境は以下の通りです。
- OS: Windows 10(バージョン:21H1 / ビルド:19043.1151)
- システムの種類: x64 ベース プロセッサ

【Tips】バージョンやプロセッサの確認方法
・バージョン確認:「Windowsキー + R」で「ファイル名を指定して実行」を開き、winver と入力。
・プロセッサ確認:「Windowsキー + X」から「システム」を開くか、PowerShellで systeminfo と入力。
2. WSL2の有効化と基本設定
① Linux 用 Windows サブシステムの有効化
WSLを利用するために、まずはWindows側の機能を有効化します。
管理者権限でPowerShellを起動し、以下のコマンドを実行してください。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
② 仮想マシンの機能を有効化する
WSL2はWindowsの仮想化機能を利用するため、「仮想マシン プラットフォーム」も併せて有効化します。同じくPowerShellで以下を実行します。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
※コマンド実行が完了したら、一度Windowsを再起動してください。
③ Linux カーネル更新プログラムのインストール
再起動後、x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージをダウンロードして実行します。

インストーラーが起動したら、「Next」を押して指示通りに進めていけばOKです(途中で管理者権限の許可が求められます)。
④ WSL 2 を既定のバージョンに設定する
再びPowerShellを開き、今後のデフォルトバージョンをWSL2に設定します。
wsl --set-default-version 2
3. ディストリビューション(Ubuntu)のインストール
Microsoft Storeを開き、お好みのLinuxディストリビューションをインストールします。 (※Ubuntu、Debian、openSUSEなどが選択可能です。CentOSは一覧にありませんが、非公式の手順を踏めば一応インストール可能です)

今回は定番の「Ubuntu 20.04 LTS」を選択しました。

容量が約450MBほどあるので、ダウンロード完了を待ってから「起動」をクリックします。

4. 【要注意】起動エラー「0x80370102」の解決方法
Ubuntuの初回起動時、環境によっては以下のようなエラーメッセージが表示されて起動に失敗することがあります。
WslRegisterDistribution failed with error: 0x80370102

これは、公式のトラブルシューティングにも記載がある通り、「CPUの仮想化(ハードウェアレベル)」が有効になっていないことが原因です。 物理マシンの場合は、BIOS/UEFIの設定に入って「Virtualization Technology(VT-xなど)」をONにする必要があります。
ESXi上の仮想マシン(Windows10)でWSL2を動かす場合の対処法
今回の私の環境のように、**VMware ESXi上に構築したWindows 10のゲストOS内でWSL2を動かしたい場合(Nested仮想化)**は、ESXi側で以下のひと手間を加える必要があります。
① vhv.allow を有効にする
ESXiでSSHを有効にし、TeraTermなどでログインします。 /etc/vmware/config ファイルを開き、末尾に以下の1行を追記してください。
vhv.allow = "TRUE"
② ゲストOS(Windows10)のCPU設定を変更
ESXiのWebコンソール画面から、対象となるWindows 10(ゲストOS)の「設定の編集」を開きます。 [CPU] の項目を展開し、[ハードウェア仮想化(ハードウェア アシストによる仮想化をゲストOSに公開)] にチェックを入れて保存します。

5. Ubuntuの初期設定(完了)
上記のエラー回避設定が完了し、再度Ubuntuを起動すると、無事に初期化処理が進みます。 最後に、UNIX用の「ユーザー名(username)」と「パスワード(password)」を設定すれば準備完了です!

これで、Windows上で手軽にLinux環境を動かせるようになりました。
まとめ・雑感
今回、ESXi上の仮想マシンとして構築したWindows 10の中にさらにWSL2を入れる(ネスト仮想化)ということで、途中の起動エラーに少し手間取りましたが、ESXi側の設定を見直すことで無事に稼働させることができました。
同じように仮想環境下でWSL2を構築しようとしてハマっている方の参考になれば幸いです!