WSL 正在运行,但已停止,我无法启用虚拟化

WSL 正在运行,但已停止,我无法启用虚拟化

Docker 和 WSL 在我的计算机上运行了很多年。昨晚发生了短暂的断电,今天早上当我尝试激活 WSL 时,我收到了错误:

$ wsl
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/wsl2-install

在 BIOS 中,Intel VT-D 选项被禁用,我无法启用它,因为我无法选择该行(它以黑色显示,选择器只是跳过它并转到下一行)。

在此处输入图片描述

据我所知我的 CPU(Intel Core i3-2100)确实支持虚拟化:

在此处输入图片描述

但英特尔® 处理器识别实用程序显示它不能:

在此处输入图片描述

这是 CPU-z 数据:

在此处输入图片描述

有没有什么办法可以解决这个问题?

答案1

实用方面:

  1. 我将备份 WSL 的所有 docker 文件,大部分都是 .tar.gz
  2. 启用WSL请求的功能,重启计算机
  3. 然后尝试运行 WSL
  4. 如果没有帮助 - 重新安装 WSL 应该有助于将 docker 备份移回

为什么?

  1. 虚拟机平台 Windows 功能可能已自行关闭,因此需要将其重新打开
  2. 如果是 WSL 版本 1(不是 WSL2 - 单独的 VM),那么除了安装相同的操作系统包和配置(/etc 文件夹)之外,没有太多需要更改的地方
  3. 以上内容不符合 WSL2,因为我不确定您是否拥有 WSL1 或 WSL2
  4. 最后一件事——如果是 WSL2——你的虚拟磁盘映像可能已损坏,你应该对其进行 fsck,如果这没有帮助——重新安装整个 WSL2

答案2

Docker 和 WSL 在我的计算机上运行了很多年。昨晚发生了短暂的断电,今天早上当我尝试激活 WSL 时,我收到了错误:

在 BIOS 中,Intel VT-D 选项被禁用,我无法启用它,因为我无法选择该行(它以黑色显示,选择器只是跳过它并转到下一行)。

英特尔® 定向 I/O 虚拟化技术 (VT-d) 是一项独立于英特尔® 虚拟化技术 (VT-x) 的功能,需要启用 VT-X 才能运行 WSL,而 WSL 不需要 VT-d。您的 CPU 不需要不是实际上支持 VT-d,这就是您无法启用它的原因。

至于硬件虚拟化现在不适用于 WSL 且在英特尔实用程序中显示为已禁用的原因,这可能与您安装的已在使用它的软件有关。

有没有什么办法可以解决这个问题?

您应该尝试的第一件事是禁用然后启用英特尔虚拟化技术 (VT-x)。如果这不起作用,我会尝试确定除 WSL 之外的哪些软件正在使用 VT-X,因为一次只有一个软件可以使用它。如果启用和禁用不能解决问题,您应该做的第二件事是卸载 Docker 和 WSL,然后从 Windows 应用商店重新安装 WSL。

答案3

我看到网上有好几份报告称,通过移除并重新安装 CMOS 电池可以解决此问题。这应该可以清除 BIOS 配置中的任何损坏,并有望重新解决此问题。

请记住,这将恢复您的 BIOS 出厂设置,因此如果您有任何自定义配置,请记住这一点。

资料来源:

https://h30434.www3.hp.com/t5/Business-PCs-Workstations-and-Point-of-Sale-Systems/VT-X-and-VT-P-options-greyed-out-unselectable-in-BIOS-on/td-p/6719338

https://forums.tomshardware.com/threads/intel-virtualization-tech-ami-bios-option-become-greyed-out.1691204/

答案4

对我来说幸运的是,这个问题并不严重,所以我不需要重新安装任何东西。出于某种原因,Hyper-V 功能在没有任何通知的情况下被禁用了。

重新启用后,一切恢复正常。

在此处输入图片描述

相关内容