微软确认 Windows 11/Windows 10 出现新问题,导致 Linux 双启动中断

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

微软解释说,由于这个问题,您的电脑可能无法启动 Linux 并显示以下错误消息。

“验证垫片 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 enabled”。如果不是,请重试步骤 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 更新以确保系统安全的好时机。

后续步骤Next steps:我们正在与我们的 Linux 合作伙伴一起调查此问题,并将在有更多信息时提供更新。