結論
ログに出力されるページのインストラクションに従いましょう。
https://code.visualstudio.com/docs/remote/troubleshooting#_wsl-tips
環境
- Windows 10
- VSCode 1.64.0
- WSL2
- Remote - WSL 0.64.2
- Ubuntu 20.04(WSLのディストリビューション)
事象
VSCodeから Remote WSLに接続しようとすると、以下のエラーが出た。
また、以下のログがターミナルに出力された。
[2022-02-06 01:46:55.753] Resolving wsl+docker-desktop-data, resolveAttempt: 1
[2022-02-06 01:46:55.855] Starting VS Code Server inside WSL (wsl2)
[2022-02-06 01:46:55.855] Extension version: 0.64.2
[2022-02-06 01:46:55.855] Windows build: 19042. Multi distro support: available. WSL path support: enabled
[2022-02-06 01:46:55.856] No shell environment set or found for current distro.
[2022-02-06 01:46:56.127] WSL daemon log file:
[2022-02-06 01:46:56.129] Probing if server is already installed: C:\WINDOWS\System32\wsl.exe -d docker-desktop-data -e sh -c "[ -d ~/.vscode-server/bin/5554b12acf27056905806867f251c859323ff7e9 ] && printf found || ([ -f /etc/alpine-release ] && printf alpine-; uname -m)"
[2022-02-06 01:46:56.389] Unable to detect if server is already installed: Error: Command failed: C:\WINDOWS\System32\wsl.exe -d docker-desktop-data -e sh -c "[ -d ~/.vscode-server/bin/5554b12acf27056905806867f251c859323ff7e9 ] && printf found || ([ -f /etc/alpine-release ] && printf alpine-; uname -m)"
[2022-02-06 01:46:56.389]
[2022-02-06 01:46:56.391] Launching C:\WINDOWS\System32\wsl.exe -d docker-desktop-data sh -c '"$VSCODE_WSL_EXT_LOCATION/scripts/wslServer.sh" 5554b12acf27056905806867f251c859323ff7e9 stable code-server .vscode-server --host=127.0.0.1 --port=0 --connection-token=2221483658-1344409197 --use-host-proxy --without-browser-env-var --disable-websocket-compression --accept-server-license-terms'
[2022-02-06 01:46:56.600] VS Code Server for WSL closed unexpectedly.
[2022-02-06 01:46:56.600] For help with startup problems, go to
[2022-02-06 01:46:56.600] https://code.visualstudio.com/docs/remote/troubleshooting#_wsl-tips
[2022-02-06 01:46:56.787] WSL Daemon exited with code 0
なお、このときWSLの起動はできていて、VSCodeのRemote WSLからの接続が通らない状態であった。
解決方法
ログに出ている、https://code.visualstudio.com/docs/remote/troubleshooting#_wsl-tips を参考にする。
1.WSL側のターミナルでwgetとca-certificatesを改めてインストールする
$ sudo apt-get update && sudo apt-get install wget ca-certificates
2.windows側のpowershellでWSLの設定を確認する
> wslconfig /l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-20.04
docker-desktop (既定)
docker-desktop-data
3.既定のディストリビューションをRemote WSLで接続したいものにする
> wslconfig /setdefault Ubuntu-20.04
この状態でvscodeを再起動して、Remote WSLを試みる。
補足
今回の事象は、既定のディストリビューションと起動しているディストリビューションが食い違っていたために起きていたと思われる。
ログの中にも、docker-desktop
ディストリビューションに付随する docker-desktop-data
でどうにかこうにかしようとした形跡がある。
参考
-
WSL の基本的なコマンド
記事中で紹介したリファレンス -
VSCodeでRemote WSLが立ち上がらなくなった
wsl --shutdown
後にwsl起動すればうまくいくこともある(今回はだめでした)