Bash on Windows/Windows Subsytem for Linux (WSL) 安装不正确/挂起

Viv*_*yan 11 bash windows-10 windows-subsystem-for-linux windows-10-v1607

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

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

当我尝试卸载 bash running 时lxrun /uninstall /full,它无法卸载:

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

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

输入“y”继续:y

正在卸载...

错误:0x80080005

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

编辑:还尝试了 Microsoft此处提到的选项。

另外,看看这个问题。Bash 暂时什么都不做然后退出

Viv*_*yan 5

我最初在卸载失败的安装和删除 lxss 文件夹时遇到问题。成功清理安装后,我开始尝试重新安装,但出现了较早的安装问题。该过程卡住了提取文件系统...如报告here

经过几天的反复试验,我似乎找到了这种痛苦的原因。在我的情况下(正如这里的许多其他人所报告的那样),防病毒软件是破坏性的。禁用防病毒软件并重新启动似乎对我有用。听起来很傻,杀毒软件是造成痛苦的主要原因,Error: 0x80080005

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

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

编辑:当您有多个交换文件时,错误的另一个原因被确定为错误。这将在未来修复,但现在,删除其他交换文件并仅保留一个交换文件。这应该解决它。

感兴趣的人可以了解更多详情:

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

参考:Bash on Ubuntu on Windows