WSL2で「プロセスはコード 4294967295 で終了しました」エラーへの対応

Windows Insiderにていつも通りWSL2を起動しようとしたらエラーが...

プロセスはコード 4294967295 で終了しました

やったこと

docs.microsoft.com

上記ページの「最新の WSL2 Linux カーネル更新プログラム パッケージをダウンロード」から最新版のプログラムをダウンロードしてインストール。
しかし、解決しなかった。

PowerShellにて、wsl -l -vを実行すると下記のような結果に。

  NAME      STATE           VERSION
* Ubuntu    Stopped         1

どうやらWSL2がインストールできていないようだ。

続いて、Windows Updateを確認してみる。(本当はこっちは先にやるべき...)
なんと更新があった。

現在のWindowsのバージョンが、ビルド20180。 アップデート後は、ビルド20185。 → 効果なし

Windowsのバージョンが関係ないなら、Ubuntuのバージョンが1である事が原因だろうという事で下記のコマンドを実行。

$ wsl --set-default-version Ubuntu 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

$ wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         1

バージョンは以前1のまま変わらず...

続いて--set-versionでも試してみる。

$ wsl --set-version 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
仮想ディスク システムの制限により、要求された操作を完了できませんでした。仮想ハード ディスク ファイルの圧縮と暗号化が解除されている必要があります。また、仮想ハード ディスク ファイルをスパースに設定することはできません。

いくらか調べたところ、%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.*というフォルダの圧縮と暗号化を解除する必要がある模様。
エクスプローラーで該当のファイルを探し、右クリック > プロパティを開き、全般タブの詳細設定ボタンを押す。
「内容を圧縮してディスク領域を節約する」のチェックを外してOKを押す。
続いて出たダイアログで「変更をこのフォルダー、サブフォルダーおよびファイルに適用する」を選んでOK。(※数時間かかるので注意)

上記作業の後、もう一度--set-version

$ wsl --set-version 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。

$ wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

数分を要しましたが、どうやら上手くいったみたい。
これでUbuntuを起動。無事起動できた。やったね。

参考

qiita.com

qiita.com