vs code server for wsl closed unexpectedly

本文讲述了作者在升级Windows10和使用VMware安装Ubuntu后,遇到VSCode无法远程操作的问题。通过一系列步骤,包括重置网络、检查并启用Hyper-V、更新Linux发行版和配置WSL插件,作者最终解决了问题并能通过VSCode与WSL2进行有效开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

我的Windows 版本: 10.0.19045.4291 (如果你是Win11或者你要使用WSL2请谨慎)

之前是可以用的,但安装Vmware(并安装了Ubuntu进行了一番实验后,就出现如标题所述问题)

问题:

好久没有使用vscode远程操作了,今天打开vscode后突然就报错如下:

根据网上朋友遇到的情况,我在powershell中分别试过以下命令: 

netsh winsock reset

wsl.exe --shutdown 

bcdedit /set hypervisorlaunchtype auto 

 最后我发现在Powershell中输入wsl -l -v显示state均为Stopped,而且版本均为2;

我想我大概知道原因了,这与日前我的Vmware “安装之路” 有关; 

最后解决我的问题的方法如下(我重装了UBuntu):

0.注销名为 "Ubuntu" 的 WSL 实例

wsl --unregister Ubuntu

【注】:此时再wsl -l -v的话,那个名为Ubuntu的实例就没有了,只剩下我的Ubuntu-20.04这是虚拟机用的实例; 

1.查看电脑hyper -v选项:

“控制面板”-“程序和功能”-左上角的“启用或关闭Windows功能”-勾选“Hyper -v”和“适用于Linux的Windows子系统”;

如果你没有找到Hyper -v这个选项(有可能是你之前安装VMware给删除了(我就是这样),也有可能Win11家庭版就没有这个选项),总之你只需要重新安装即可,具体请看链接

2.我最后尝试在Microsoft Store里重新下载Linux发行版(Ubuntu):

点击“打开”后你可能会遇到这样的问题(如果没有遇到,请跳过):

 即出现了0x80370102错误,请看链接

解决后,它会安装成功,然后你code . 进入vscode;

看起来是成功了:

准备写点hello world:

首先记得在vscode中安装WSL插件(上图);

 

再创建一个文件夹,以及test.cpp文件(上图);

在test.cpp里写点代码:

打开终端(快捷键是ctrl+`)【注】 ` 这个键是数字1左边那个键];

准备使用g++编译该文件,发现g++没有安装,故sudo apt install g++;

看来是需要更新下载源:

sudo apt-get update

再安装g++:

sudo apt install g++

再编译运行:

远程连接服务器:

如果你需要远程连接服务器(我之前一直使用xshell连接的,但是vim实在是不方便,所以准备切回vscode),请接着看:

安装下图插件:

按键盘F1后,点击下图:

如上图,输入登录用户名@公网IP(主机号);

举个例子ssh zhangsan@8.130.13.46

回车后,点击第一行(这是添加你的用户以及对应主机到本地配置文件,一般都是第一行,具体看你你用户名称),然后你的vscode右下角会出现:

证明主机已经被添加:

点击“打开配置”可以看到你的本地配置文件,然后如下图,更改方框中WSL为远程(隧道/SSH),然后选择在当前窗口连接或者新窗口连接(如下图右下角方框),选择Linux(如果是的话),然后输入密码连接即可,直到连接成功(💻符号会变为绿色);

你也可以点击右边的“连接”,选择Linux(如果是的话),然后输入密码连接即可;

然后进入文件夹:

创建.cpp文件,写下SSH远程机器的第一行代码hello ssh!

也许你在安装的时候会遇到如下图问题,点击 “允许” 即可,这与vscode和远程机器中库的版本有关,具体请看 链接

当然,途中我ssh连接时参考了这篇文章

你如果还想连接第二台主机时,你就按F1,然后ssh即可(同上);

另外为了更好地支持C++11,你还可以在设置中修改:

你还可以使用GDB来调试代码:

安装扩展:

(删掉默认配置,然后添加配置:GDB启动)

(略加修改);

(如果出现上图,就是你的可执行文件output的路径不对);

<全文完>

 参考链接:

链接

链接

如何使用vscode+wsl+vscode server来开发Linux程序(B站)

### 关于 WSL 中 HCS_E_SERVICE_NOT_AVAILABLE 错误的原因及解决方案 #### 错误原因 该错误通常表明系统缺少运行 WSL 所需的关键组件。具体来说,此错误可能是由以下几个原因之一引起的: 1. **虚拟化功能未启用** 如果计算机的 BIOS 或 UEFI 设置中禁用了硬件辅助虚拟化技术,则可能导致 Hyper-V 和其他依赖虚拟化的服务不可用[^3]。 2. **Hyper-V 功能未安装或被禁用** WSL 2 需要 Hyper-V 支持才能正常工作。如果 Hyper-V 未在操作系统上启用或者已被卸载,则会出现此类错误。 3. **WSL 及其相关组件未正确配置** 当尝试初始化 WSL 实例时,如果没有正确注册或加载必要的服务(例如 Virtual Machine Platform),也可能触发 `HCS_E_SERVICE_NOT_AVAILABLE` 错误[^2]。 --- #### 解决方案 以下是针对上述问题的具体解决措施: ##### 启用硬件虚拟化支持 进入计算机的 BIOS 或 UEFI 设置界面,找到并开启 Intel VT-x 或 AMD-V 等虚拟化选项。保存更改后重启设备以使设置生效。 ##### 安装 Hyper-V 组件 通过 PowerShell 使用管理员权限执行以下命令来激活 Hyper-V 和 Virtual Machine Platform: ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` 完成这些操作之后重新启动电脑。 ##### 更新 WSL 版本至最新状态 确保当前使用的 WSL 是最新的版本之一。可以通过下面这条指令来进行更新: ```powershell wsl --update ``` 另外,在某些情况下还需要单独下载适用于 Linux 的内核更新包,并按照官方文档指示完成安装过程[^4]。 ##### 检查是否满足最低系统需求 确认所使用的 Windows 操作系统的构建号至少达到特定阈值以上(对于 WSL 2 来说通常是 Build Number >= 18917)。可以借助 winver 工具查看具体的版本信息。 --- ### 示例验证流程 假设已经完成了所有前置条件调整,现在测试连接 VS CodeWSL 是否恢复正常: ```bash # 在PowerShell下输入以下命令切换到目标发行版 wsl ~ -d Ubuntu # 接着键入code命令调起集成开发环境 code . ``` 如果一切顺利的话,应该不会再遇到类似于“vscode server for wsl closed unexpectedly”的提示消息了。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值