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
实用方面:
- 我将备份 WSL 的所有 docker 文件,大部分都是 .tar.gz
- 启用WSL请求的功能,重启计算机
- 然后尝试运行 WSL
- 如果没有帮助 - 重新安装 WSL 应该有助于将 docker 备份移回
为什么?
- 虚拟机平台 Windows 功能可能已自行关闭,因此需要将其重新打开
- 如果是 WSL 版本 1(不是 WSL2 - 单独的 VM),那么除了安装相同的操作系统包和配置(/etc 文件夹)之外,没有太多需要更改的地方
- 以上内容不符合 WSL2,因为我不确定您是否拥有 WSL1 或 WSL2
- 最后一件事——如果是 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 出厂设置,因此如果您有任何自定义配置,请记住这一点。
资料来源: