一台计算机可以有多少个 EFI 系统分区 (ESP)?

jww*_*jww 12 linux boot partitioning uefi windows-8

我正在尝试在安装了 Windows 8 的 UEFI 笔记本电脑上设置双/多引导。我想在启用安全启动的情况下进行操作。我可以在禁用 SecureBoot 的情况下安装/配置操作系统(但我不会在 CSM 模式下运行)。我可以取消 Windows 8,但最终笔记本电脑将需要安装 Windows 8 Pro (x64) 来支持我的 Windows Phone 开发设备。

我在Windows 和 GPT FAQ上通读了微软关于 UEFI 和分区的文档。我不清楚磁盘上可以存在多少个 EFI 系统分区 (ESP)。由于 UEFI 可以授权访问特定分区,我认为以下内容成立:

  • 微软的平台密钥 (PK) 在 UEFI 中加载
  • MS PK 允许访问 Microsoft 分区
  • MS 使用 4 个分区:ESP、MSR、数据、恢复
  • 选择引导选项时引导至 MS(由 UEFI 强制执行)

上面,ESP是UEFI System Partition;MSR 是 Microsoft System Reserved,用于额外的非预引导文件和 OEM 文件;数据用于加载器加载的惯用 OS 文件;和恢复只是增值操作系统的东西。

如果我将 Linux 操作系统的平台密钥添加到平台密钥 (PK) 数据库中,那么我相信我需要(至少):

  • 另一个用于引导/加载 Linux 操作系统的 ESP 分区
  • 用于习惯 Linux 操作系统文件的另一个数据分区

需要额外的 ESP,因为 UEFI 需要在特定引导选项的 PK 下签署引导/加载程序文件;并且 UEFI 在引导 Linux 操作系统时将不允许访问 Microsoft 的分区。

一台计算机可以有多少个 EFI 系统分区 (ESP)?多 ESP 正确吗?

Rod*_*ith 10

您误以为 PK 与 ESP 相关联;他们不是。安全启动加密功能要求对单个启动加载程序文件进行签名,但这些文件存储在普通 FAT 文件系统中,这些文件系统本身没有签名、加密或以其他方式进行加密。签名的引导加载程序文件可以从一个分区移动到另一个分区并继续正常工作,至少从安全引导的角度来看是这样。(当然,移动这样的文件可能会导致它失败,因为它已经与关键配置文件等分开了,但那是另一回事。)

为了更直接地回答这个问题,EFI 规范对计算机或硬盘上可能存在的 ESP 数量没有限制;如果您愿意,您可以拥有数十个,从 EFI 的角度来看,这很好。不幸的是,微软并没有那么灵活。Windows 正式支持每个磁盘只有一个ESP(可能是每台计算机;我对这个细节有点模糊)。我不了解 Windows 8,但如果在磁盘上看到多个 ESP,Windows 7 安装程序就会崩溃;安装将进行到一半,然后失败。(至少,这就是我在测试中所做的。)也就是说,如果您在之后创建第二个 ESP安装 Windows,Windows 将继续启动并正常运行,至少就我所见。(不过,我不能保证如果您使用某些特定功能,它不会行为不端。)

总的来说,在多引导环境中,我建议将自己限制在一个 ESP 上。我还建议把它做得相当大——550MiB 是我通常的建议,因为各种技术原因与罕见的错误和 FAT 大小有关。也就是说,如果您现有的安装带有较小的 ESP,那么坚持使用它可能没问题。无论哪种情况,Linux 和 Windows 都可以很好地共享一个 ESP。但是,我确实建议尽早并经常备份它——一定要在安装新操作系统之前备份它。由于 ESP 包含您的引导加载程序,因此意外删除它会使您的计算机无法启动。

  • 关于“对分区的访问由系统固件控制”的引用,您过度解释了。这不是指加密控制,而是指 EFI 提供驱动程序以允许 EFI 程序访问分区的事实。微软*确实*说它只支持一个 ESP。例如,[这里:](http://msdn.microsoft.com/en-us/windows/hardware/gg463525.aspx#X-2011041111922504)“问:一个磁盘上可以有两个ESP吗?答:这样不应创建配置并且在 Windows 中不受支持。” (3认同)