在 UEFI 系统中,grub 引导加载程序位于 EFI 分区上,因此也需要存在且未加密 /boot。
我有一个双启动 Linux / Windows 硬盘,其中 Windows 使用 veracrypt 加密,Linux 使用内置 dm-crypt 加密。Veracrypt 的引导加载程序以及未加密的 Windows 引导加载程序是否也位于 EFI 上?
我想将整个 EFI 分区和 /boot 分区从硬盘移到 USB 设备。我可以用一个简单的“dd”命令来做到这一点,然后删除驱动器上的 efi 和 boot 分区吗?如果我将其移动到 USB,Windows 会抱怨吗?Windows 中还有一个恢复分区,但我认为我不应该担心这一点。执行此操作在安全方面能得到什么?
答案1
我不熟悉 Veracrypt,但我认为其核心启动相关功能必须存储在未加密的地方。逻辑上,存储位置应该是 ESP,但也可能是其他地方,例如专用分区,甚至是 NTFS 分区的某个未加密部分。
简单地将 ESP 复制到另一台设备是行不通的。问题在于,在 EFI 下,NVRAM 中存在指向引导加载程序的指针,因此如果您移动引导加载程序,该 NVRAM 条目将变为无效,系统将无法启动。您需要更新 NVRAM 条目,创建一个全新的 NVRAM 条目,或者依靠主引导加载程序的后备文件名 ( ) 来启动系统。您可以使用 Linux、WindowsEFI/BOOT/bootx64.efi
等工具更新或创建新的引导条目,efibootmgr
bcdedit
简易UEFI在 Windows 中、bcfg
在 EFI shell 中,或者在一些EFI 实现。
有关 EFI 基础知识的更多信息,我建议您从以下内容开始:
- Adam Williamson 的博客文章介绍了 EFI 的工作原理—— 本页描述了 EFI 模式启动背后的理论。
- Superuser.com 上关于 BIOS 和 EFI 启动之间的区别的问答—— 这提供了前面内容的基础,但更加简洁。
- 我的 Linux EFI 引导加载程序页面——本页介绍了 Linux 系统的 EFI 引导加载程序选择,包括有关如何创建 NVRAM 引导条目的信息。
这些页面都没有直接解决您的加密问题,但它们都应在某种程度上帮助您了解 EFI 启动过程的工作原理。这样的理解将帮助您处理高级配置,例如您正在尝试创建的配置。