😽
WSL2でVSCodeと疎通できなくなった話
WSL2とVSCodeで疎通ができない
いつものように
code .
でwsl2からVSCodeを開こうとしたところ
failed to connect to the remote extension host server (error: websocket close with status code 1006)
のエラーが出てきました。つい昨日Windowsのアップデートをしたので、そのせいかと思い最新のアップデートをアンインストールしてもうまくいかず...。
また、上記のエラーをググってもあまり対策が出てこず困っていました。
pingが通らない
色々調べてみると、そもそもWSL2が外部のネットワークにつながっていないことが判明しました。そもそもWSLのネットワークの設定がおかしかったようです。疑ってごめんね、VSCodeちゃん。
そこでWSL2でネットワークにつながらなく事象について調べてみたところ、これに関連するIssuesを発見しました。
ディスクの圧縮が原因!?
Issuesに書かれている内容で解決した方法が、WindowsのTempフォルダのディスクの圧縮の解除でした[1]。いやいや、うまくいかないやろ、と半信半疑で試したところ、なんとWSL2でpingも通るようになり、VSCodeとの疎通も復活しました!感謝、感謝。しかし、まさか最近行ったディスクの圧縮がWSLに影響するとは...。
操作としては、Windows側でTempフォルダのプロパティ > 属性の詳細設定 > 内容を圧縮してディスク領域を節約する
をオフにしました。
まとめ
WSLは比較的新しくWindowsに導入されたものだからなのか、ちょこちょこバグがあり、今回はたまたまクリティカルな地雷を踏んでしまったようです。それでもWindowsで簡便にLinuxを使えるメリットは非常に大きいので、不具合をうまく避けながらWSLを使っていこうと思います。
Discussion