Windows 上的 Bash/Windows Subsytem for Linux (WSL) 无法正确安装/挂起

Windows 上的 Bash/Windows Subsytem for Linux (WSL) 无法正确安装/挂起

我获得了 Windows 周年更新并尝试安装 Bash。我从命令提示符(非管理员模式)运行了 Bash,但在尝试提取文件时卡住了。我关闭了窗口并尝试以提升的权限执行相同操作(命令提示符以管理员身份运行)。

但是现在当我输入 bash 时,它卡在那里,没有启动或要求我安装 bash。我可以看到 bash 进程在后台消耗了 25% 的 CPU。

当我尝试卸载正在运行的 bash 时lxrun /uninstall /full,卸载失败:

C:\WINDOWS\system32>lxrun /uninstall /full
这将卸载 Windows 上的 Ubuntu。

这将删除 Ubuntu 环境以及任何修改、新应用程序和用户数据。

输入“y”继续:y

正在卸载...

错误:0x80080005

如何重置 Windows 10 的 Linux 子系统?

编辑:还尝试了提到的选项这里由微软提供。

另外,请查看这个问题。Bash 暂时不执行任何操作然后退出

答案1

我最初遇到了问题卸载安装失败并删除了 lxss 文件夹。在我成功清理安装后,我开始尝试重新安装,但之前的安装问题又出现了。安装过程卡住了正在提取文件系统...据报道这里

经过几天的反复尝试,我似乎找到了这种痛苦的原因。就我而言(以及许多其他人所报告的)这里)是杀毒软件在扫兴。禁用杀毒软件并重新启动似乎对我有用。听起来很傻,但杀毒软件是造成痛苦的主要原因,Error: 0x80080005

现在,对于仍然遇到此错误的人,如果您按顺序尝试执行以下操作,这应该会有所帮助:

  1. 永久禁用防病毒软件并重新启动(您可以在安装完成后启用它)
  2. 打开命令提示符或者Windows PowerShell作为行政
  3. 通过运行以下命令卸载 WSLlxrun /uninstall /full
  4. 现在停止 WSL 服务 -sc stop lxssmanager
  5. 删除应用数据文件夹 -rmdir /S %LOCALAPPDATA%\lxss确认文件夹已被删除。如果出现任何拒绝访问错误。
  6. 删除文件夹后,尝试通过运行再次安装 WSLlxrun /install /y
  7. 等待它从 Windows 应用商店下载并提取文件。(您可以检查%LOCALAPPDATA%\lxss\rootfs文件是否已被提取)。
  8. 希望你不应该Error: 0x80080005这次得到一个。
  9. 享受Windows 上的 Bash

编辑:错误的另一个原因被确定为漏洞当你有多个交换文件。这个问题将来会得到解决,但现在请删除其他交换文件,只保留一个交换文件。这样应该可以解决问题。

有兴趣的可以查看更多详情:

通过您的跟踪文件,我发现安装代码中存在一个计算交换文件大小的错误。此函数由 sysinfo 系统调用和生成 /proc/meminfo 的内容使用。当您的机器上有多个页面文件时,就会出现这个问题。这个错误可能会导致三种不同的结果:交换文件大小报告不正确我们的驱动程序将取消引用无效的内存地址并导致蓝屏机器在计算交换文件大小时将进入无限循环(这是您看到的循环)作为一种临时的解决方法,如果您删除除一个页面文件之外的所有页面文件,您应该能够使用 WSL。我现在正在编写一个修复程序。

参考:Windows 上的 Ubuntu 上的 Bash

相关内容