我重启了电脑并安装了更新。现在我无法登录 WSL2 Ubuntu20.04 LTS 错误:
CORP+myUserName ~
$ wsl.exe
This user isn't allowed to sign in to this computer.
CORP+myUserName ~
$ wsl.exe -e bash --norc
This user isn't allowed to sign in to this computer.
CORP+myUserName ~
$ wsl.exe --user myUserName
This user isn't allowed to sign in to this computer.
如何让 WSL2 不再一直引发错误?
答案1
如果这是最近升级到 WSL2 的 WSL1 实例,则需要执行以下操作:
- 清除安全事件日志
事件查看器⇢Windows 日志⇢安全 - 打开注册表编辑器(
regedit
) - 搜索
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\CrashOnAuditFail
键并将其值设置为1
- 重启
从这里开始,WSL2 应该不会抱怨太多。
答案2
我没有给你一个明确的答案,但是有足够多的想法和事情可以尝试,以至于它们不适合在评论中发表:
从这个 Github 问题,至少在那种情况下,问题似乎与虚拟机平台(为运行 WSL2 而设计的 Hyper-V 子集)有关。
要查看是否可以隔离它,请尝试安装发行版作为 WSL1 并查看它是否启动:
首先,设置默认WSL 版本:
wsl --set-default-version 1
然后安装一个与您当前在 Microsoft Store 中安装的 Ubuntu 不同的 Ubuntu。例如,如果您当前安装了“Ubuntu”(无版本),则安装“Ubuntu 20.04”。反之亦然。
如果配置阶段(设置用户名/密码)执行,则 WSL1 正在运行。然后我们就知道问题出在 WSL2 上。
如果 WSL1 正在运行,请尝试禁用/重新启用 Windows 中的虚拟机平台功能。听起来所有权可能已经改变。也许是公司更新脚本?:
- 禁用“虚拟机平台”在下面“打开或关闭 Windows 功能”
- 重新启动 Windows
- 再次启用VMP
- 重启
我希望这能解决问题,但如果不行......
尝试对 Windows Subsystem for Linux 功能本身进行相同的操作,尤其是当 WSL1 不起作用时。
卸载(在应用程序和功能)“Windows Subsystem for Linux 更新”(内核包),重启,然后重新安装它
在 Windows 服务中,检查 *“Hyper-V 主机计算服务”——应将其设置为运行为“本地系统”(与大多数其他服务一样)。如果不是,那可能就是问题所在。
检查事件查看器是否有任何其他提示