我有 ThinkPad P1 Gen 3 笔记本电脑,希望它能够双启动 Linux 和 Windows 10。为此,我想使用支持 Linux 和 Windows 的启动管理器;目前我正在使用 rEFInd。我还想启用安全启动并使用 BitLocker 加密我的 Windows 驱动器。
问题是我无法使用 BitLocker 加密我的驱动器。当我使用 rEFInd BitLocker 启动 Windows 时,它不起作用。我发现它被禁用了,因为 PCR7 绑定是不可能的 - 在系统信息中它说:
PCR7 配置:无法绑定
设备加密支持:自动设备加密失败原因:不支持PCR7绑定;检测到不允许的 DMA 总线/设备
所有这些似乎都以某种方式与可信平台模块 (TPM) 相关,但我仍在阅读有关这个主题的更多信息,这对我来说是新的。
另一方面,当我直接从 UEFI 条目启动 Windows 时,省略 rEFInd,PCR7 绑定是可能的,并且 BitLocker 工作正常。
我测试了其他支持 Linux 的引导管理器,例如 systemd-boot,问题是一样的。所以这个问题不是 rEFInd 独有的,而是任何不是由 UEFI 直接运行的 Windows 启动管理器的启动管理器。
为什么从其他启动管理器启动 Windows 时无法绑定 PCR7?我该如何解决?
为什么从其他启动管理器启动 Windows 时无法绑定 PCR7?
PCR7 是记录所有安全启动参数的寄存器——PK/KEK/db 的完整内容,以及用于验证每个启动应用程序的特定证书(即 rEFInd、Bootmgfw、Winload.efi)。
BitLocker 似乎有一个刻意的限制,即只有在其值表明整个启动链是专门使用 Microsoft 的“Windows Production PCA”证书签名时,它才会绑定到 PCR7。如果在此过程中的某些内容(例如 rEFInd 或其他第三方引导加载程序)使用不同的证书进行签名,即使您的 UEFI 配置信任该其他证书,它也会拒绝。
这很可能是为了在双引导环境中隔离操作系统,例如防止某人通过 Shim 简单地重新启动到任意不安全的 Linux 并以这种方式访问您的 Windows 文件。
(注意:BitLocker 的 PCR7 用法不会阻止您在 PK、KEK 或 db 中安装自定义证书 – 可以为 Linux 目的设置自定义密钥的安全启动,只要这些自定义 db 条目不参与Windows 启动过程。)
当然,如果 Secure Boot 关闭并且 rEFInd 根本没有签名,那么 PCR7 一开始就没有有用的信息,无法使用。
我该如何解决?
如果您使用的是“设备加密”功能(Windows 10 家庭版/专业版),则无法避免这种情况——这个精简版的 BitLocker 始终需要使用安全启动和 TPM PCR7。
如果您使用的是完整版本的 BitLocker(仅限 Windows 10 Pro),所有这些都不会阻止 BitLocker 通常使用 TPM——它仍然可以使用绑定到 PCR0/2/4/11 (PCR4) 的替代方法是包含引导文件的确切哈希值的寄存器)。问题是 PCR0/2/4 的使用稍微更脆弱,并且往往会导致更频繁地出现 Recovery Key 提示。例如,每次更新 Shim 或 rEFInd 时,PCR4 值都会更改,您将需要恢复密钥。
最后,TPM的使用是不实际的强制性为BitLocker。如果它导致太多问题,则有一个组策略设置和一个manage-bde
命令,可让您改用基于密码的基本保护程序。(同样,这仅适用于 Windows Pro 中的完整 BitLocker。)
(注意:如果在 PCR7 绑定激活的情况下启用 BitLocker,然后通过 rEFInd 重新启动,以便 PCR7 现在无法使用,系统将提示您输入恢复密钥,BitLocker 将自动重新绑定 PCR0/2/4/11。反之亦然相反,从 UEFI 菜单直接重新启动到 Windows 将导致 BitLocker 在输入恢复密钥后尝试重新绑定 PCR7。)
我的建议:始终使用固件提供的 UEFI 启动菜单来选择您的操作系统。如果它丑陋或不方便,则使用“BootNext”功能通过efibootmgr --boot-next
或bcdedit.exe /bootsequence
直接启动到请求的操作系统。(例如,这甚至允许您将“Linux”作为 Windows 桌面快捷方式。)
我认为 BitLocker 不仅限于加密整个磁盘。
BitLocker 在“软件加密”模式下从不加密整个磁盘——它加密 Windows分区,就像使用 LUKS 加密他们的 Linux 分区一样。
所有其他分区不受影响。特别是,由于 UEFI 固件通常没有内置的 BitLocker 支持,“EFI 系统分区”必须保持未加密。
是否可以使用两个 UEFI 分区?
是的,但是 1) 你不需要,2) 它不会真正帮助你。使用两个分区和将 Windows 和 Linux 引导文件放在同一个分区之间没有区别——只有文件本身才是重要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句