编辑
2024-10-13
TechNotes
00

目录

报错信息
解决过程
个人分析(吐槽)
收集总结
Windows Subsystem for Linux (WSL) 的安装与卸载指南
1. 注销指定的 WSL 发行版
2. 禁用 WSL 功能
3. 重新启用 WSL 功能
4. WSL 卸载与安装的典型使用场景

报错信息

powershell
(base) PS C:\Users\30372> wsl WSL 正在完成升级... Could not write value to key \SOFTWARE\Classes\Directory\shell\WSL. Verify that you have sufficient access to that key, or contact your support personnel. 更新失败(退出代码: 1603)。 错误代码: Wsl/CallMsi/Install/ERROR_INSTALL_FAILURE

image.png

解决过程

个人分析(吐槽)

在网上查找资料, 动不动就是改注册表, 重新安装, 这些方法在我看来,修改注册表是有一定风险的, 而重新安装治标不治本, 都不太靠谱🤔。

使用Get-Service wuauserv命令检查 Windows Update 服务, 根据分享和经验判断无法自动更新, 并使用 wsl --update 命令手动都无法更新成功, 可能是wsl无法正常退出, 进程仍在启用, 导致无法更新成功.

  • 使用以下命令停止和启用wsl服务
powershell
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
  • 使用 DISM 工具禁用 Windows Subsystem for Linux (WSL) 功能
    • dism.exe: 这是 Windows 提供的用于服务和管理部署映像的工具。
    • /online: 表示在当前正在运行的操作系统环境下操作,而不是针对离线的 Windows 映像。
    • /disable-feature: 禁用指定的功能(在本例中为 WSL 功能)。
    • /featurename:Microsoft-Windows-Subsystem-Linux: 指定要禁用的功能名称是 "Microsoft-Windows-Subsystem-Linux",也就是 WSL。
    • /norestart: 禁用功能后不自动重启计算机,你可以在后续操作后手动重启。
  • 使用 DISM 工具重新启用 Windows Subsystem for Linux (WSL) 功能
    • /enable-feature: 启用指定的功能(在本例中为 WSL 功能)。
    • 其他参数与禁用时的参数一致,即在当前系统中操作并且不自动重启。

收集总结

Windows Subsystem for Linux (WSL) 的安装与卸载指南

在 Windows 上,WSL(Windows Subsystem for Linux)提供了一种无需使用虚拟机即可运行 Linux 发行版的方式。在开发运维中,WSL 大大简化了跨平台工作流程。然而,有时可能需要卸载 WSL 或重新安装以解决系统问题。本文将介绍如何通过命令行管理 WSL 的安装与卸载。

1. 注销指定的 WSL 发行版

在你需要清理某个不再使用的 Linux 发行版时,可以通过 wsl --unregister 命令来注销该发行版。

bash
wsl --unregister <distro_name>
  • <distro_name>:为你要删除的发行版名称(如 UbuntuDebian)。
  • 作用:这个命令会删除指定的 Linux 发行版及其所有数据,清理与该发行版相关的文件系统和设置。

注意:执行此操作会永久删除该发行版和其中的所有文件,无法恢复,因此建议事先备份重要数据。

2. 禁用 WSL 功能

如果你遇到更为复杂的问题,或者需要彻底禁用 WSL 功能,可以使用 Windows 自带的 DISM(部署映像服务和管理工具)来禁用 WSL 功能。

bash
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
  • /online:表示操作当前正在运行的 Windows 操作系统。
  • /disable-feature:禁用指定功能。
  • /featurename:Microsoft-Windows-Subsystem-Linux:指定要禁用的功能是 WSL。
  • /norestart:操作执行后不会自动重启系统。

执行此命令后,WSL 功能将被完全禁用,Windows 将不再支持运行 Linux 发行版。这对于彻底清理系统或修复问题非常有用。

3. 重新启用 WSL 功能

当你需要重新启用 WSL 时,可以使用 dism.exe 命令恢复该功能。

bash
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
  • /enable-feature:启用 WSL 功能。
  • 其余参数与禁用功能时相同。

通过此命令,你可以重新启用 WSL 功能,然后在 Windows Store 中下载并安装新的 Linux 发行版。

4. WSL 卸载与安装的典型使用场景

  • 清理未使用的发行版:当你长时间使用多个发行版后,可能想要清理一些不再使用的发行版来释放空间或整理环境。
  • 解决 WSL 出现的错误或异常:WSL 运行时可能会遇到一些问题,如升级失败、系统配置异常等,禁用并重新启用 WSL 通常可以修复这些问题。
  • 重新安装 WSL:有时候,为了测试或开发的需要,你可能需要从头开始安装 WSL 及其相关的发行版,这时完全禁用后再启用 WSL 是一种简单有效的方法。
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:GYC

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!