在Win10上完全卸载Linux的子系统?

Rop*_*Rop 44 bash windows-10 windows-subsystem-for-linux

我在 Win10 的 Linux/Bash 子系统上闲逛了一下。

但后来我决定暂时留在 Cygwin。所以我卸载了它 - 或者我认为我卸载了。

现在我已经安装了 Cygwin 并将其bin目录放在PATH.

在 中cmd.exe,当我输入 时bash,它会启动 Cygwin 的 Bash。

但是当我做Win+R并输入时bash,我仍然收到提示:

Windows Subsystem for Linux has no installed distributions.
…bla-bla-bla…
Run Code Online (Sandbox Code Playgroud)

我如何完全摆脱 Linux/Bash 子系统,以便它从PATH?

小智 56

如果您的操作系统已升级到 Fall Creators Update,您应该能够发出命令wslconfig

您当然可以先尝试使用命令卸载lxrun /uninstall /full

如果它仍然存在,您可以尝试取消注册发行版:

  • 我必须执行 `wslconfig /u Legacy` 来删除 Windows 附带的 Ubuntu。 (10认同)
  • lxrun 随着 1709 的发布而被弃用,并且 wslconfig 在它之前不存在,如果它被改进为特定的,这可能是一个不错的答案。顺便说一下,作者使用的是 1703(或更早版本)。 (4认同)

Rop*_*Rop 34

为了禁用 WSL,必须回到

控制面板 -> 程序-功能 -> 打开/关闭 Windows 功能并取消选择适用于 Linux 的 Windows 子系统,然后保存。

  • 请注意,这将删除所有 WSL 安装。如果您只想删除一个(例如因为您安装了 WSL 2 并且想要删除 WSL 1),请使用“wslconfig”,如下所述:https://superuser.com/a/1337814/605884。例如,要卸载 WSL 1 安装,请使用“wslconfig /u Legacy” (2认同)

Abr*_*ham 6

编辑 - 这仅适用于 Windows Server,不适用于客户端操作系统。

与 Rop 建议的类似,但您也可以使用 Powershell 完全删除适用于 Linux 的 Windows 子系统,其优点是不必在控制面板中查找它。请注意,您必须以管理员身份运行它。

Remove-WindowsFeature Microsoft-Windows-Subsystem-Linux
Run Code Online (Sandbox Code Playgroud)

列出所有可用的功能,针对 Linux 进行过滤:

Get-WindowsFeature | Where-Object Name -like '*linux*' | Select-Object Name
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,OP要求Win10;Remove-WindowsFeature 不适用于客户端操作系统 `PS C:\Windows\system32> Remove-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux Remove-WindowsFeature :指定 cmdlet 的目标不能是基于 Windows 客户端的操作系统。` (3认同)