Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

问题背景和描述

背景: Windows 11 下通过wsl安装了一个Ubuntu 24.04的Windows子系统。Windows用来日常使用开发,子系统Ubuntu用来开发和调试Linux程序。
操作: 因为磁盘不够用,加装了一个SSD的磁盘。加装前只有一块256的SSD,系统分为了C、D两个盘。加装后,删除原D盘,并将C盘扩展到256G;并将加装的SSD设置为新的D盘。
现象: 在wsl的Ubuntu下启动VSCode时,进程卡死和报错,弹窗提示:The window terminated unexpectedly(reason: 'crashed ', code: -36861)

原因分享

根据错误提示,通常与 WSL 通信中断、系统文件损坏、索引服务冲突或资源占用过高等问题相关。结合该报错的常见触发原因和修复路径,我为你梳理出以下分步骤解决方案,按优先级排列操作:

解决方法

🔧 一、重建索引服务(最常见修复手段)

索引服务冲突是导致 VSCode 在 WSL 中崩溃的常见原因,尤其当系统或 WSL 文件出现索引错误时:

  1. 打开控制面板
    • Win + R → 输入 control → 进入“控制面板”。
  2. 进入索引选项
    • 切换到“大图标”视图 → 点击“索引选项”。
  3. 重建索引
    • 点击“高级” → 在“索引设置”标签下 → 点击“重建” → 确认操作。
  4. 重启系统后测试 VSCode 是否恢复

🛠️ 二、修复系统文件与 WSL 运行环境

系统文件损坏或 WSL 子系统异常可能中断通信:

  1. 运行 SFC 和 DISM 命令

    • 以管理员身份启动命令提示符或 PowerShell:

      1
      2
      sfc /scannow        # 扫描并修复系统文件
      DISM /Online /Cleanup-Image /RestoreHealth # 修复系统映像
    • 完成后重启系统。

    • 测试 VSCode 是否恢复。

  2. 重置 WSL

    • 以管理员身份打开 PowerShell,执行以下质量
    1
    2
    3
    4
    5
    # 注意:执行以下操作后,Ubuntu系统的数据将丢失,请谨慎操作!
    wsl --shutdown # 关闭所有 WSL 实例
    wsl --list --verbose # 检查分发版状态
    wsl --unregister <发行版名称> # 如 Ubuntu-22.04
    wsl --install -d <发行版名称> # 重新安装
    • 测试 VSCode 是否恢复。

🔄 三、更新关键组件与 VSCode 版本

组件版本过旧或存在兼容性问题易导致崩溃:

  1. 更新 WSL 内核

    • 在 PowerShell 中执行:

      1
      wsl --update
  2. 升级 VSCode 及 Remote - WSL 扩展

    • 确保 VSCode 为最新版本(检查更新)。
    • 在扩展商店中更新 “Remote - WSL” 扩展。
  3. 检查显卡驱动

    • 访问显卡官网(如 NVIDIA/AMD/Intel)下载并安装适用于 Win11 的最新驱动。

🧹 四、清理 VSCode 服务端残留进程

残留进程可能干扰新会话启动:

  1. 在 VSCode 中按 Ctrl + Shift + P
  2. 输入并选择 Kill VS Code Server on Host
  3. 选择对应的 WSL 发行版(如 Ubuntu-20.04)。
  4. 重新连接 WSL,触发自动重装服务端。

⚙️ 五、调整索引范围与资源占用

索引过载或资源冲突可能引发崩溃:

  1. 减少索引位置
    • 进入“设置” → “隐私和安全性” → “搜索 Windows” → “高级索引选项” → “修改” → 取消勾选非必要位置(如大型代码库或虚拟机文件)。
  2. 关闭后台高负载进程
    • 在 WSL 终端中结束占用高的进程:

      1
      2
      top                 # 查看资源占用
      kill -9 <PID> # 结束异常进程(如 node、python)

⚠️ 六、检查硬件兼容性与系统稳定性

硬件问题或系统更新缺陷也可能导致崩溃:

  1. 运行内存诊断

    • 搜索“Windows 内存诊断” → 选择“立即重启并检查问题”。
  2. 检查硬盘健康度

    • 在 PowerShell 执行:

      1
      chkdsk /f /r        # 下次重启时扫描并修复磁盘
  3. 排查 Windows 系统更新

    • 进入“设置” → “Windows Update” → 查看更新历史 → 卸载近期安装的可疑更新。

🚨 备用方案:系统级修复或重置

若以上步骤无效,考虑更深度的系统修复:

  1. 使用系统还原点
    • 进入“高级启动”(开机时强制断电 3 次) → “疑难解答” → “高级选项” → “系统还原”。
  2. 重置 Windows 11
    • 设置 → 系统 → 恢复 → “重置此电脑”(可选保留文件)。
  3. 重装 VSCode 并清理配置
    • 卸载 VSCode → 手动删除残留配置文件夹(%USERPROFILE%\.vscode%USERPROFILE%\AppData\Roaming\Code) → 重新安装。

💎 推荐操作流程图

1
2
3
4
5
6
7
8
9
10
11
graph TD
A[VSCode 报错 -36861] --> B{重建索引}
B -->|成功| C[恢复使用]
B -->|失败| D{修复系统文件}
D -->|成功| C
D -->|失败| E{更新组件/WSL}
E -->|成功| C
E -->|失败| F[清理残留进程]
F -->|成功| C
F -->|失败| G[硬件/系统重置]
G --> C

建议你按顺序尝试前四步(索引重建、文件修复、组件更新、进程清理),多数情况下可解决问题。如仍无法恢复,再考虑系统级操作(硬件检查或重置)。每次操作后重启系统再验证 VSCode 连接状态,可更准确锁定问题环节。

推荐阅读
Ubuntu安装oh-my-zsh教程 Ubuntu安装oh-my-zsh教程 VSCode系列2 - 如何用VSCode搭建C++高效开发环境? VSCode系列2 - 如何用VSCode搭建C++高效开发环境? 嵌入式中`看门狗`的原理和用法 嵌入式中`看门狗`的原理和用法

评论