移动 EFI 和 /boot 分区

移动 EFI 和 /boot 分区

在 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等工具更新或创建新的引导条目,efibootmgrbcdedit简易UEFI在 Windows 中、bcfg在 EFI shell 中,或者在一些EFI 实现。

有关 EFI 基础知识的更多信息,我建议您从以下内容开始:

这些页面都没有直接解决您的加密问题,但它们都应在某种程度上帮助您了解 EFI 启动过程的工作原理。这样的理解将帮助您处理高级配置,例如您正在尝试创建的配置。

相关内容