WSL2環境が立ち上がらなくなる事象発生
Windows 10 version 1909にした辺りから、wsl2で構築したUbuntu環境が素直に立ち上がらなくなりました。

これに対する対処方法をすぐ忘れてしまうのですが、管理者権限を付けたPowershellから
PS1> wsl.exe --shutdown
PS1> netsh winsock reset
を実行するととりあえず立ち上がってくるようになります。Winsock2のバグらしいのですが、Windows Updateが入るとその都度問題が発生してしまうようで、たまのこととは言え面倒です。
ようやく解決(as of 2021/08/30)
このまま放っておいても、Windows 10 21H1までOSバージョンが上がってきても同じ不具合が発生します。これの根本的解決策はgithubにあがっています。解決策の内容にレジストリが出てきて面倒なのですが、要するに
- WSLはWinsock DLLをプロセスに取り込もうとしたところでエラー(例外)を発生させてしまう
- 最も簡単な解決方法はWSLについてはWSCSetApplicationCategory WinAPIを使用するようにすることである
- そうすると、内部的にHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalogエントリをレジストリに作る
この関数を呼び出してWSL2のネットワークスタックを変更してしまう、というプログラムを用意すれば良いと言うことなんですね。このプログラムはテンポラリで用意してくれている(www.proxifier.com/tmp/Test20200228/NoLsp.exe)ので、使うのに抵抗がなければ、管理者権限にしたPowerShellにて
NoLsp.exe c:\windows\system32\wsl.exe
を実行すればOK、ということになります。
