WSL 既已安装,又未安装

WSL 既已安装,又未安装

我经历了手动启用 WSL 2. 任何时候都没有错误安装过程。我使用的是10.0.19045 Build 19045WSL 2 支持的 Windows 版本。按照这些说明操作后,Ubuntu 和 Debian 运行良好。运行wsl.exewsl -l -v;但是,失败,并且没有运行,而是提供了以下错误消息:

Windows Subsystem for Linux has no installed distributions.
Distributions can be installed by visiting the Microsoft Store:
https://aka.ms/wslstore

我按照说明从商店安装了 Ubuntu。我可以运行我安装的大多数程序。安装 Docker 后,我尝试从 Ubuntu 运行它,结果收到一条错误消息,提示我升级到 WSL 2:

The command 'docker' could not be found in this WSL 1 distro.
We recommend to convert this distro to WSL 2 and activate
the WSL integration in Docker Desktop settings.

For details about using Docker Desktop with WSL 2, visit:

https://docs.docker.com/go/wsl2/

我是否错过了某个步骤,或者这是一个需要修复的错误?

在功能方面,我启用了“虚拟机平台”(Hyper-V 的一个子集)和“适用于 Linux 的 Windows 子系统”。我禁用了 Hyper-v,因为这会导致 Windows 上的 Docker 在安装后失败。

另请注意,wsl.exe 似乎对安装的内容感到困惑:

PS C:\WINDOWS\system32> wsl --install -d Ubuntu
Ubuntu is already installed.
Launching Ubuntu...

建议 Ubuntu 可用于 WSL,但我又无法wsl.exe正常运行,也无法升级任何发行版,因为There is no distribution with the supplied name.

答案1

好吧,当你有疑问的时候,请阅读手册。在故障排除中关联

错误:适用于 Linux 的 Windows 子系统没有安装发行版。...检查您是否正在运行单独的用户帐户。

以提升的权限(在管理员模式下)运行您的主用户帐户不应该导致此错误,但您应该确保您没有意外运行 Windows 自带的内置管理员帐户。

使用我的普通帐户(而不是原始文档中指示我们使用的管理员帐户来安装 WSL 2)后,我能够看到 WSL 命令成功运行。Ubuntu 中的 Docker 仍然无法运行,并且仍然出现相同的错误。

要转换现有发行版,请以普通用户(非管理员)身份运行以下命令:> wsl --set-version <distribution> 2。通过运行以下命令查找发行版名称和 WSL 版本:> wsl -l -v

答案2

我也遇到了这个问题,解决方案是打开 Windows 实用程序“添加或删除程序”,找到我的 Linux 发行版(在本例中为 Ubuntu-20.04),然后单击“卸载”按钮。然后我可以使用 重新安装 powershell CLI 中的发行版wsl --install Ubuntu-20.04。您可以通过转到C://Users/<your user>/AppData/Local/Packages/并检查发行版的文件夹(在我的情况下是CanonicalGroupLimited.Ubuntu20.04LTS_...)是否消失来确认它是否确实被删除。如果您还想在擦除发行版之前备份数据,则位于 下C://Users/<your user>/AppData/Local/Packages/<your distro>/LocalState/ext4.vhdx;在重新安装之前将其复制到其他地方,然后在完成后将其复制回来。

相关内容