玩命狂奔的间隙,莫忘记抬头看看前路的星光

0%

Windows无法启动wsl的解决办法

最近准备写一个软件,需要支持Windows平台。从Mac系统切换到Windows 10来进行开发工作,一开始就遇到了问题。打算安装一个nvm对NodeJS进行版本管理,根据nvm的安装说明来。发现需要安装wsl,于是就开始遇到问题了。
打开系统菜单,输入wsl三个字母,自然的跳出了一个黄色的图标下面写着WSL。很开心这么顺利,windows已经开箱安装好了这个功能。点击wsl图标,一个大大的黑色命令行窗口一闪而过,然后什么都没有了。

经过一番摸索,终于解决了这个问题,具体解决方法如下:

  • 先试试有没有wsl

    1
    2
    PS C:\Windows\system32> wsl --install
    无法解析服务器的名称或地址

    果然是还没有安装,这里吐槽一下,既然没有安装为啥要在系统菜单里有这个图标来让人误会?

  • 试试是否可以启用相关的服务

    1
    Start-Service LxssManager

    结果是当然找不到:

1
2
3
4
5
6
Start-Service : 找不到任何服务名称为“LxssManager”的服务。
所在位置 行:1 字符: 1
+ Start-Service LxssManager
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (LxssManager:String) [Start-Service], ServiceCommandException
+ FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.StartServiceCommand
  • 检查WSL是否启用:在 PowerShell 中运行以下命令来检查 WSL 功能是否已启用:
    1
    Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

查看返回结果,显示未启用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PS C:\Windows\system32> Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform


FeatureName : VirtualMachinePlatform
DisplayName : 虚拟机平台
Description : 为虚拟机启用平台支持
RestartRequired : Possible
State : Disabled
CustomProperties :




PS C:\Windows\system32>
  • 启用虚拟机平台功能:
    在 PowerShell 中以管理员身份运行以下命令:

    1
    Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All

    这个命令将启用虚拟机平台功能,-All 参数将安装所有相关的依赖项。

  • 重启计算机:
    启用功能后,需要重启计算机以使更改生效。

  • 安装 WSL:
    一旦虚拟机平台功能启用,您可以继续安装 WSL。在 PowerShell 中以管理员身份运行以下命令:

    1
    wsl --install

    这个命令将安装 WSL 并自动下载和安装最新的 Linux 发行版。

  • 特别注意,这里可能会卡在进度显示这里,或者有可能是无法下载到Linux发行版,解决的方法:

    • 方法1,挂一个梯子可以解决,作为一个国内的开发者应该人手必备一个;
    • 方法2:自己从windows 应用商店或者自己去下载安装包,下载地址:https://aka.ms/wslstore