VSCode の統合ターミナルで WSL が使えなくなった

VSCode の統合ターミナルで WSL のシェルを開こうとしたところ、マウントがどうのこうの、詳しくは dmesg をだの、というメッセージが一瞬だけ表示されて異常終了する事態に陥った。

何やコレと思って調べてみたところ、WSL の既定のディストリビューションが Ubuntu でないとこうなるようだ。

PS> wslconfig /l
Linux 用 Windows サブシステム ディストリビューション:
docker-desktop-data (既定)
docker-desktop
Ubuntu

あれま、なぜか Docker 用の変なのが既定になっとる。というワケで以下で直す。

PS> wslconfig /s ubuntu

PS> wslconfig /l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
docker-desktop-data
docker-desktop

VSCode での統合ターミナルの設定は次の1行だけで良い。shellArgs の指定は要らない。なんなら Ctrl + Shift + P でコマンドパレットを表示して「ターミナル: 既定のシェルの選択 (Terminal: Select Default Shell)」で指定しても同じ設定が settings.json に追記される。

{
  "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\wsl.exe"
}

コレで直った。