WSLの0x80370102エラー (on Windows10 on Parallels on MacOS)


はじめに

普段macOSを使っているのですが,ふとしたときにLinuxやWindowsを使用したくなります.(なりますよね?)
それぞれ物理マシンはあるのですが,立ち上げるのが面倒だったりするので,僕は仮想環境(Parallels)を利用して各OSで遊んでます.
(Parallelsはシェアウェアですが,macOS上で仮想環境を使用するならば最もお金を払うべきソフトウェアの一つだと思います.思いますよね?)

今回の記事は,Windows10 HomeをParallels上にクリーンインストールし,WSL2で遊ぼうと思っていたときにおきたエラーに関する忘備録です.
(実は初投稿)

忙しい人向け

Parallels上で動くWindowsでWSLを動かそうとして,0x80370102エラー(仮想化機能大丈夫?)が出た場合Paralellsの各仮想マシンの[設定]-[ハードウェア]-[CPU及びメモリ]-[詳細設定]から,「ネストされた仮想化」を有効化してください.

環境

項目 詳細
ホストマシン MacBook Pro 15-inch, 2018
ホストOS macOS Big Sure 11.1
仮想化ソフト Parallels Desktop 16 for Mac 16.1.2 (49151)
仮想OS Windows 10 Home 20H2 (19042.685)

発生したこと

何も考えずにWindows10をインストールし,公式インストールガイドを参考にWSL2をインストールしようとしました.
WSL2自体のインストールまではうまくいきましたが,いざMicrosoftStoreからUbuntu 20.04 LTSをインストールし起動しようとしたところ,以下のようなエラー

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 ??????????????????????????????????????

Press any key to continue...

が発生しました.

原因

前述公式ガイドのインストールのトラブルシューティングによると,)

  • インストールがエラー 0x80070003 またはエラー 0x80370102 で失敗した
    • コンピューターの BIOS 内部で仮想化が有効になっていることを確認してください。 これを行う方法の手順は、コンピューターによって異なりますが、最も可能性が高いのは CPU 関連のオプションの下です。

だそうです.

「でもガイドどおりやって仮想化有効にしたしなぁ...タスクマネージャ見たら「仮想化:はい」ってなってるしなぁ...」っとムチムチで無知な僕は考えました.
(僕はこの項目で「仮想化が有効になっていることを確認してください」しか目に入りませんでした.安直!!)

実は,このとき僕の仮想Windows10君は仮想化がOnになってなかったのです!!
つまり,仮想OS上での仮想化機能(ネストされた仮想化機能)を有効化する必要があったのです.

解決策

GitHub.comのWSLのIssueで同じエラーが起きている人がいたので(これはVirtualBoxでしたが),同じように解決します.
OSを一旦シャットダウンしたあと,Parallelsの各仮想マシンの設定(マーク)から,

  • ハードウェア
    • CPUおよびメモリ
      • 詳細設定
        • Hypervisor: 「Apple」 → 「Parallels」
        • ネストされた仮想化を有効にする: チェックを付ける✅

のように設定し,画像のようにします.

その後OSを起動し,再度WSLのUbuntuを立ち上げると,無事起動できるようになりました!!

参考

Windows 10 用 Windows Subsystem for Linux のインストール ガイド
Error 0x80370102 when running WSL2 in a Win10 VirtualBox VM (macOS Host) #5430