解决安装WSL导致桌面上出现无法删除的Linux图标问题

前几天通过Docker Desktop和Ollama在本地电脑部署体验了一下deepseek-r1,因为这俩都是默认装C盘(GUI界面不支持修改路径,但有方法可以改路径)导致C盘直接爆红,体验了一番后就卸载了。

另一个原因是:WSL和Vmware冲突导致vm虚拟机无法启动另一个原因是:WSL和Vmware冲突导致vm虚拟机无法启动

今天一打开电脑发现桌面上多了一个Linux图标,无法进行删除操作。网上查了说是在安装 Docker 或启用 WSL 功能后,系统可能会在桌面或“此电脑”中添加 Linux 图标。然后找deepseek、kimi问了一通也没给出可用的解决方案。最后是ChatGPT给出了一个修改注册表的方法,解决了。

看到的Linux图标看到的Linux图标

解决方法

(1)卸载已安装的 Linux 子系统

  1. 打开“设置”应用,点击“应用” > “应用和功能”。
  2. 在列表中找到已安装的 Linux 子系统(如 Ubuntu),点击右侧的三个点,选择“卸载”。
  3. 卸载完成后,重启计算机,查看桌面上的 Linux 图标是否已消失。

此步对我无效,我是装的Docker,并没有单独装Linux子系统。

(2)关闭适用于 Linux 的 Windows 子系统(WSL)功能

  • 在“设置”应用中,点击“应用” > “可选功能”。
  • 向下滚动,点击“更多 Windows 功能”。
  • 在列表中找到“适用于 Linux 的 Windows 子系统”,取消勾选。
  • 点击“确定”,系统可能会提示您重启计算机。
  • 重启后,检查桌面上的 Linux 图标是否已被删除。

此步对我无效,之前因为Docker Desktop影响了本地的Vmware,卸载后我已经关闭了这个功能了。

(3)删除残留的 WSL 数据

  1. 打开命令提示符(以管理员身份运行),输入以下命令查看已安装的 WSL 发行版:
1
wsl --list
  1. 如果列表中仍有 Linux 发行版,使用以下命令注销(卸载)它们:
1
wsl --unregister <发行版名称> # 例如 wsl --unregister Ubuntu
  1. 注销后,检查桌面上的 Linux 图标是否已消失。

此步对我无效,早把“适用于 Linux 的 Windows 子系统”关了,执行wsl会提示找不到命令的。

(4)删除 Docker 的残留文件

  1. 尽管您已卸载 Docker,但可能仍有残留文件占用空间。
  2. 导航到 C:\Users\您的用户名\AppData\Local\Docker,删除该文件夹。
  3. 然后,导航到 C:\ProgramData\Docker,删除该文件夹。
  4. 删除后,重启计算机,查看桌面上的 Linux 图标是否已删除。

这简直在瞎说,怎么可能会因为残留文件多出来一个图标…

(5)修改注册表以删除桌面上的 Linux 图标

  1. 按下 Win + R 键,输入 regedit,然后按回车键打开注册表编辑器。
  2. 导航到以下路径:
1
HKEY_CLASSES_ROOT\CLSID\{B2B4A4D1-2754-4140-A2EB-9A76D9D7CDC6}\ShellFolder
  1. 在右侧窗格中,找到名为“Attributes”的键,双击它,将数值由a080004d更改为b0940064
  2. 关闭注册表编辑器,重启计算机,检查桌面上的 Linux 图标是否已被删除。

okk,问题解决。桌面上和文件资源管理器的Linux图标都不见了

后记

我不知道为什么修改Attributes这一项的值就能解决问题,于是去网上搜索是否存在相应查找手册或是介绍文档,最终也没找到类似答案,但在微软官方社区的这篇帖子中,找到了同样的问题以及同样的解决方案:why there is linux in my file explorer bar

1
2
3
4
5
6
7
8
9
10
Windows Registry Editor Version 5.00

; Created by: Shawn Brink
; Created on: November 5, 2021
; Tutorial: https://www.elevenforum.com/t/add-or-remove-linux-in-navigation-pane-of-file-explorer-in-windows-11.2531/


[HKEY_CURRENT_USER\Software\Classes\CLSID\{B2B4A4D1-2754-4140-A2EB-9A76D9D7CDC6}]
@="Linux"
"System.IsPinnedToNameSpaceTree"=dword:00000000

与ChatGPT回复不同的是,社区提供的脚本是修改的System.IsPinnedToNameSpaceTree项,将值由00000001修改为00000000

后续验证时发现,修改System.IsPinnedToNameSpaceTree仅能解决文件资源管理器中的Linux图标显示,不能解决桌面Linux图标显示!


评论区