WSL2が立ち上がらなくなった件

びえびえ's Personal webpage  > パソコン・インターネット >  WSL2が立ち上がらなくなった件
0 Comments

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、ということになります。

OKそうですかね
ああ、ちゃんと立ち上がってきました…


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です