無気力生活 (ノ ´ω`)ノ ~゜

脱力系エンジニア。てきとーに生きてます。

唐突にWSL2が[4294967295]をはくようになった

結論

さあ今すぐ、Windows Updateだ。

起きたこと

WSL 2
[プロセスはコード 4294967295 で終了しました]

朝起きてさて開発しようかとPCを起動し、「あれ? WSLターミナル落ちてるじゃん、起動しなおすか」から出てきた以上。 夜あれだけ元気に動いていたのに(´・ω・`)

ちなみに何度立ち上げてもだめ。普通にPowerShell側から呼び出しても、WSLという文字列だけ残して無反応。
再起動も試したが再現する。これじゃ仕事に差し支えるので調査を開始

調査

ここで使うのは、エラーコード。特徴あるコードだからすぐ見つかるだろうとググると即出る。

github.com

しかし内容を見ると、今年の2月3月あたりの話であって、今起きている問題とは関係ない気がする。
以下のコマンドが解決策として提示されていた。

I fixed same problem by "netsh winsock reset"

コマンド的にはWindowsが持っているSocket通信用ライブラリの、TCP/IP接続のリセットであることが分かったので、適当に叩いてもOKだろうととりあえず実行する。実行後、通知に促されるまま再起動。


しかしダメー
ヾ(:3ノシヾ)ノシ


再度調査に戻る。

WSL用のLinuxカーネルの提供方法が変わるらしい

そして見つけた以下の記事。

japan.zdnet.com

 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つヒットしたものがあるらしい。適用して再起動。

f:id:gdgd-shinoyu:20200613152044p:plain
生き返ったWSL

よしきた( ゚д゚)

結局何を入れなければいけなかったのか

動作するようになったとき、何が反映されたかをチェックしておく。

情報   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の何らかの変更が落ちてきていた。 お前だったのか。