唐突にWSL2が[4294967295]をはくようになった
結論
さあ今すぐ、Windows Updateだ。
起きたこと
WSL 2 [プロセスはコード 4294967295 で終了しました]
朝起きてさて開発しようかとPCを起動し、「あれ? WSLターミナル落ちてるじゃん、起動しなおすか」から出てきた以上。 夜あれだけ元気に動いていたのに(´・ω・`)
ちなみに何度立ち上げてもだめ。普通にPowerShell側から呼び出しても、WSLという文字列だけ残して無反応。
再起動も試したが再現する。これじゃ仕事に差し支えるので調査を開始
調査
ここで使うのは、エラーコード。特徴あるコードだからすぐ見つかるだろうとググると即出る。
しかし内容を見ると、今年の2月3月あたりの話であって、今起きている問題とは関係ない気がする。
以下のコマンドが解決策として提示されていた。
I fixed same problem by "netsh winsock reset"
コマンド的にはWindowsが持っているSocket通信用ライブラリの、TCP/IP接続のリセットであることが分かったので、適当に叩いてもOKだろうととりあえず実行する。実行後、通知に促されるまま再起動。
しかしダメー
ヾ(:3ノシヾ)ノシ
再度調査に戻る。
WSL用のLinuxカーネルの提供方法が変わるらしい
そして見つけた以下の記事。
Microsoftは米国時間6月10日、「Windows 10 Insider Preview Build 19645」を「Windows Insider」プログラムの「Fast」リング向けに公開した。このビルドでは、「Windows Subsystem for Linux(WSL)2」用のLinuxカーネルがOSイメージから削除されている。
なるほど。タイミング的にこれが当たってしまったらしい。
イベントビューワーでWindows Updateのログを見てみる。
情報 2020/06/13 4:09:31 WindowsUpdateClient 41 Windows Update エージェント - EventData updateTitle Windows 10 Insider Preview 19645.1 (mn_release) updateGuid {3e1470ab-9107-460a-87ad-f801336beb4a} updateRevisionNumber 1
確かに当たってるな。
記事を見る限りだと、
カーネルを最新の状態に保つことを確実にするために、そのアップデートを他のドライバーのアップデートと同様に「Windows Update」経由にするという考え方に基づいている。
とある。つまりWindows Updateで落ちてくる可能性が高いことを示す。Windows Update開いて更新をチェックすると1つヒットしたものがあるらしい。適用して再起動。
よしきた( ゚д゚)
結局何を入れなければいけなかったのか
動作するようになったとき、何が反映されたかをチェックしておく。
情報 2020/06/13 14:43:58 WindowsUpdateClient 41 Windows Update エージェント - EventData updateTitle Windows Subsystem for Linux Update - 4.19.104 updateGuid {d995d77f-fc67-467b-bcbd-950ea217623d} updateRevisionNumber 200
確かにLinuxの何らかの変更が落ちてきていた。 お前だったのか。