WSL-Debian 无法启动?还在使用 WSL-Debian 吗?

WSL-Debian 无法启动?还在使用 WSL-Debian 吗?

通过应用程序(添加/删除程序),我删除了 WSL。我刚刚在列表中找到了 Windows Subsystem Linux,然后单击了“卸载”。

当我进入 cmd 并输入“ bash”时,它会将我带入 Debian。

出于某种原因。这会阻止我访问我的 Debian WSL 安装吗?

我使用wsl --install --distribution Debian并最终得到一个无法启动的 Debian 版本。如果我输入wslcmd,它就会直接返回到 cmd:

提示:用户输入了 WSL;提示;用户再次输入了 WSL;提示...

如果我输入Debian,也是同样的事情。

但是如果我输入bash,我就会被踢进 Debian 安装,在那里我无法更改我的 root 密码并且我忘记了我的 root 密码。

如果有人知道如何重置 root 密码,请告诉我。当然,wsl ~ -u root -e chsh它会提示我输入密码,但我不知道密码,所以这没用。

另请注意:我无法弄清楚如何卸载输入时被踢入的 wsl wsl ~ -e chsh。也许我可以重新安装它,因为我至少可以输入它。

答案1

那里发生了不少事情 ;-)。

通过应用程序(添加/删除程序),我删除了 WSL。我刚刚在列表中找到了 Windows Subsystem Linux,然后单击了“卸载”。

当我进入 cmd 并输入“bash”时,它会将我带入 Debian。

这是一个有点奇怪的情况,至少在 Windows 10 上是这样。发生这种情况是因为实际上WSL 的安装:

  • 第一个是所谓的“内置”版 WSL。直到最近,这还是唯一的 WSL。它随 Windows 一起提供,并在打开或关闭 Windows 功能设置。在 Windows 10 下(但不是 Windows 11),它实际上是作为其他版本的依赖项而必需的……

  • 哪一个是申请材料版本的 WSL。这是现在安装 WSL 的主要方式,当您从添加或删除程序设置,是被删除的内容。但是,删除后,旧版本仍然存在(并接管)。

两者都不其中之一是 Debian WSL 发行版本身。这是一个单独的安装。还困惑吗?;-)

因此,您确实应该从 Microsoft Store 重新安装 WSL,以确保您拥有最新版本。

我使用 wsl --install --distribution Debian,结果得到的 Debian 版本无法启动。如果我在 cmd 中输入 wsl,它会直接返回到 cmd:

如果我输入Debian,也是同样的事情。

但如果我输入bash,我就会被踢进 Debian 安装

这很奇怪 -wsl应该bash做同样的事情,只是wsl命令提供了更多选项。但是,该bash命令在 WSL 中已被弃用,所以我不能肯定地说这里发生了什么。

Awsl -l -v可能会显示安装了多个发行版,但即使这样也不能准确解释您所看到的内容。

如果您确实想要卸载发行版,正如@Ramhound 在评论中提到的那样,您可以使用:

wsl --unregister <distro>

我无法更改我的 root 密码,并且忘记了我的 root 密码。

如果有人知道如何重置 root 密码,请告诉我。当然,wsl ~ -u root -e chsh它会提示我输入密码,但我不知道密码,所以这没用。

听起来您正在寻找passwd命令而不是chsh。前者更改密码,后者更改用户的默认shell。

话虽如此,如今,大多数 Linux 发行版都无需初始密码root。应添加您的初始非 root 用户sudoers(同样是默认设置,即使不使用 WSL 也是如此)。这是 WSL 发行版安装程序为您完成的操作。拥有 root 密码被认为是一种不安全的做法,因为它使 root 能够无需承担责任或记录即可登录。

如果你需要重置你的用户密码(这样您就可以sudo),您可以通过 PowerShell 轻松完成此操作:

wsl -l -v # Confirm distribution name
wsl ~ -u root -d <distro> -e passwd <username>

如果您不知道默认用户名,它通常是 UID 1000,因此您可以使用以下命令找到它(再次从 PowerShell 中找到):

wsl id -un 1000

如果需要的话,再次添加-d <distro>

当然,wsl ~ -u root -e chsh会给我一个密码提示,但是我不知道密码,所以这没用。

不过,我会说这很奇怪。 chsh因为 root 用户不会在 WSL 下的 Debian 安装中要求输入密码。即使我(病态地)设置了 root 密码,情况也是如此。

相关内容