🖍️

VSCode Remote-WSLでファイルが表示されない/リセット手順まとめ

に公開

事象と発生環境

VSCode上での表示エラーの発生と、解消までに試したことをまとめました。
ここで紹介している方法は筆者の環境で試した内容です。
全ての環境でうまくいくとは限りません。
作業は自己責任でお願いします。


事象:VSCodeでプロジェクトディレクトリを開いたら、複数のファイルが表示されない

プロジェクト名の下に表示されているフォルダ名やファイル名がいつもより少ない
環境:Windows11Pro+WSL2+Ubuntu+VSCode(詳細は下記の通り)

  • Windows: Windows 11 (ビルド 26100.4946)
  • WSL: 2.5.7.0(カーネル 6.6.87.1-1)
  • WSLg: 1.0.66
  • ディストリビューション: Ubuntu 24.04.2 LTS (Codename: noble)
  • VSCode:1.103.2

各バージョンの確認方法
  • Windows
    スタートメニュー→設定→システム→Windowsの仕様
  • WSL
    PowerShellで下記を実行
    wsl --version
    
  • ディストリビューション
    WSL 内(Ubuntuのシェル/VScodeターミナルで可)で下記を実行
    lsb_release -a
    
  • VSCode
    1. GUI で確認
      VSCodeメニューから [ヘルプ] → [バージョン情報] をクリック
    2. コマンドで確認
      VScodeターミナルで下記実行
      code --version
      
各バージョン確認した意図
  1. Windows
    例:Windows 11 (ビルド 26100.4946)
    意味: どの Windows を使っているか。
    ビルド番号 は Windows の「細かい更新版」を区別する番号。
    トラブルや不具合はビルドごとに変わることがあるので、書いておくと他の人が再現しやすい。

  2. WSL(Windows Subsystem for Linux)
    例: WSL バージョン: 2.5.7.0
    意味: Windows 上で Linux を動かす仕組みのバージョン。
    WSL には 1 と 2 があり、2 は実際に Linux カーネルを動かす仕組み。
    今回は「WSL2」を使っている。

  3. カーネル バージョン
    例: 6.6.87.1-1
    意味: Linux の「心臓部(OS のコア部分)」のバージョン。
    普段は意識しなくてもよいが、低レベルな不具合や Docker 利用時に重要。

  4. WSLg
    例: 1.0.66
    意味: Linux から Windows に GUI アプリ(画面付きアプリ)を表示するための仕組み。
    例えば WSL で「Firefox」や「VSCode」を直接動かすときに使われる。
    VSCode の拡張機能が動かないerrorにも関係する可能性あり。

  5. ディストリビューション(Linux の種類)
    例: Ubuntu 24.04.2 LTS (Codename: noble)
    意味: Linux には色々な種類があり、そのひとつが Ubuntu。
    「24.04」はリリース時期(2024年4月版)。
    「LTS」は長期サポート版。
    「Codename: noble」は開発コード名。


ファイルの存在を確かめる

VSCodeターミナルで下記コマンド実行

pwd # カレントディレクトリが正しいか確認
ls -la # 隠しファイルも含めて確認するためオプション「-la」も

結果:ファイルは消えていないと確認できた。原因は他にある

フォルダーを開きなおす

  • 開いているプロジェクトのフォルダーを閉じる
  1. VSCode のメニューから [ファイル] → [フォルダーを閉じる] をクリック
  2. VSCode のメニューから [ファイル] → [フォルダーを開く] をクリック→開きたいプロジェクトのフォルダーを選択しクリック


    結果:解消されず
    ※親フォルダーから開くと、該当のプロジェクトフォルダ内のすべてのファイルが存在していることは確認できた。しかし、この方法だと他プロジェクトのフォルダーもまとめて表示されてしまい、誤操作のリスクが高い

Remote-WSL を一度再起動

  1. VScode上でコマンドパレット(Ctrl+Shift+P)押下
  2. 「>WSL:WSL への接続」を入力または選択しEnter押下


    結果:解消せず

コマンドで直接フォルダーを開く

  1. フォルダーを閉じて、プロジェクトディレクトリに移動
    または位置確認
    pwd # プロジェクトディレクトリにいるか位置確認
    cd  # プロジェクトディレクトリにいなければ、移動
    
  2. code . を実行
    code .  # プロジェクトディレクトリにてコマンド実行
    


    結果:実行後、下記内容を含むエラーが表示
     Unable to connect to VS Code server: Error in request.
     Error: connect ENOENT /run/user/1000/vscode-ipc-xxxxx.sock
    
  • エラーの内容
  • VSCode (Windows 側) ⇔ Remote-WSL (Ubuntu 側) の通信ソケットが消えている/壊れている状態。
  • 何かしらの原因で、Remote-WSL サーバーが落ちた、キャッシュが壊れた、セッションが残っている等の状態になっている模様。

Remote-WSL サーバーをリセットする

  1. Remote-WSL サーバーをリセット
    Ubuntu ターミナルで下記実行
    rm -rf ~/.vscode-server
    
  2. WSL を再起動
    Windows PowerShellで下記実行
    wsl --shutdown
    
  3. VSCodeでUbuntu に再接続
    VSCode上でコマンドパレット(Ctrl+Shift+P)押下
    「>WSL: 新しいウィンドウでWSLに接続する」を入力または選択しEnter押下
  4. プロジェクトを開きなおす
    VSCodeのメニューから「ファイル」→「フォルダーを開く」を選択し
    該当のプロジェクトを開く


    結果:解消!!

原因と対処法

原因:Remote-WSL サーバーが落ちた、キャッシュが壊れたことによる可能性
対処法:WSL サーバーをリセットし、再接続しなおす

Discussion