微软确认新的 Windows 11/Windows 10 问题破坏了 Linux 双启动

Microsoft 承认存在影响 Windows 10 和 Windows 11 PC 的严重问题。该问题影响 Windows 10 和 Windows 11 版本,包括最新的 23H2 操作系统版本。安装 8 月更新后,如果您在设备中启用了 Windows 和 Linux 的双启动设置,则可能会遇到启动 Linux 的问题。

Microsoft 解释说,由于此问题,您的 PC 可能无法启动 Linux 并显示以下错误消息。

“验证 shim SBAT 数据失败:违反安全策略。出现严重错误:SBAT 自检失败:违反安全策略。”

微软在解释此问题的原因时提到将安全启动高级目标 (SBAT) 设置应用于运行 Windows 的设备以阻止旧的启动管理器。

2024 年 8 月的 Windows 安全更新将安全启动高级目标 (SBAT) 设置应用于运行 Windows 的设备,以阻止旧的、易受攻击的启动管理器。此 SBAT 更新不会应用于检测到双启动的设备。在某些设备上,双启动检测未检测到某些自定义的双启动方法,并在不应应用时应用了 SBAT 值。

为了缓解此问题,Microsoft 建议在启用了 Linux 双启动的 PC 上使用下面提到的解决方法。 Microsoft 也在调查该问题,并打算在获得更多信息后提供更新。

解决方法:

场景 1:应用 2024 年 8 月 Windows 更新之前

如果您双启动 Linux 和 Windows,并且尚未通过重新启动完成 2024 年 8 月 Windows 更新的安装,您将能够使用以下选择退出注册表项。此注册表可防止 SBAT 更新作为 2024 年 8 月 Windows 更新和未来 Windows 更新的一部分应用,从而防止出现此问题。稍后,如果您想安装未来的 SBAT 更新,您将能够删除该注册表项。

重要信息:本文档包含有关如何修改注册表的信息。请确保在修改注册表之前对其进行备份。确保您知道出现问题时如何恢复注册表。有关如何备份、还原和修改注册表的详细信息,请参阅如何在 Windows 中备份和还原注册表。

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\SBAT /v OptOut /d 1 /t REG_DWORD

场景 2:应用 2024 年 8 月 Windows 更新后

如果您的 Linux 在安装 2024 年 8 月 13 日或更高版本更新后变得无法启动,您可以按照以下说明恢复 Linux 系统。

重要提示:错误地修改固件设置可能会导致您的设备无法正常启动。仔细遵循这些说明,只有在您对自己的能力有信心的情况下才能继续。

一个)禁用安全启动:

  • 启动进入设备的固件设置。
  • 禁用安全启动(步骤因制造商而异)。

b)删除 SBAT 更新:

  • 启动进入 Linux。
  • 打开终端并运行以下命令:
sudo mokutil --set-sbat-policy delete
  • 如果出现提示,请输入您的 root 密码。
  • 再次启动进入 Linux。

c)验证 SBAT 撤销:

  • 在终端中,运行以下命令:
mokutil --list-sbat-revocations
  • 确保列表中没有显示任何撤销。

d)重新启用安全启动:

  • 重新启动进入固件设置。
  • 重新启用安全启动。

e)检查安全启动状态:

  • 启动进入 Linux。运行以下命令:
 mokutil --sb-state
  • 输出应为“SecureBoot 已启用”。如果没有,请重试步骤 4。

f)防止 Windows 中未来的 SBAT 更新:

  • 启动进入 Windows。
  • 以管理员身份打开命令提示符并运行:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\SBAT /v OptOut /d 1 /t REG_DWORD

此时,您应该能够像以前一样启动到 Linux 或 Windows。现在是安装任何待处理的 Linux 更新以确保系统安全的好时机。

后续步骤:我们正在与 Linux 合作伙伴一起调查该问题,并将在获得更多信息后提供更新。