硬盘驱动器是否需要GUID分区表(GPT)才能以UEFI模式启动?


11

EFI引导是否特定于硬件?我有一个带有UEFI Bios的台式机主板,但是我只能以“ UEFI”模式从USB驱动器启动。DVD驱动器和HDD(RAID 0阵列)均仅在旧模式下引导。HDD是否需要具有GPT分区表才能在UEFI模式下启动?

Answers:


11

根据规范,基于(U)EFI的系统只能从GPT样式的磁盘引导。传统的BIOS可以从MBR样式的磁盘引导,并且在某些情况下(取决于制造商),它们也可以从GPT引导。但是,根据UEFI规范,磁盘应具有GPT分区表。

此MSDN文章对此进行了很好的描述:

支持UEFI的系统要求引导分区必须位于GPT磁盘上。其他硬盘可以是MBR或GPT。


那么如何在UEFI模式下从DVD引导?
joaocandre

1
@joaocandre EFI外壳本身与典型的可启动DVD兼容。CD / DVD不使用MBR / GPT样式分区方案,因此它们不受此更改的影响。EFI Shell将在磁盘上查找相关的固件映像,然后使用找到的固件映像继续进行引导。
突破

问题是,当我仅在BIOS中将启动模式设置为“ UEFI”时,无法从DVD驱动器启动。
joaocandre


1
实际上,至少某些EFI 可以从MBR磁盘引导。当然,我的某些基于EFI的计算机(但不是全部)可以从用MBR分区的USB闪存驱动器引导。不过,我不相信我已经对硬盘进行了测试。尽管其长度为2000页,但EFI规范中还是有很多遗漏之处,并且特定EFI用于确定启动模式的规则(BIOS /旧版与EFI)的差异也落入了这些裂缝中,这说明了特定DVD是否存在不一致之处。或硬盘以BIOS /旧版或EFI模式启动。
Rod Smith

0

UEFI确实会影响操作系统的启动方式。您需要在硬盘驱动器上为UEFI分配空间。我相信在大多数Linux操作系统中,这是自动完成的,或者您必须创建一个分区来托管UEFI。


2
UEFI本身是上传到主板本身的固件映像,与实际磁盘无关。
突破

但是它确实需要一个分区
Griffin

-1

EFI引导是否特定于硬件?

是。某些实施,尤其是较旧的实施或OEM锁定主板的实施,更有可能受到限制或出现故障。

HDD是否需要具有GPT分区表才能在UEFI模式下启动?

从技术上讲,没有,但是在您的情况下,“ 可能,此外,您还需要其他一些东西(特别是EFI文件和EFI变量) ”。这是一个很长的答案(也适用于将来遇到其他麻烦的人):

人们经常问的一个问题是“我可以从MBR磁盘启动UEFI吗?” 答案是“是的,但这非常棘手”。尽管在正确的环境中从技术上来说是可行的,但很多事情会阻止您这样做,例如,UEFI环境非常严格地遵循规范,或者Windows安装程序坚持要安装到正确的分区表类型。

首先,光学介质根本不是本文讨论的一部分。它通常使用ISO9660或UDF之类的系统,该系统完全位于MBR / GPT领域之外。

其次,可移动媒体的处理方式与固定磁盘的处理方式略有不同。大多数UEFI实施对可移动临时UEFI可启动磁盘的容忍度要比对固定磁盘的容忍度高得多。

话虽如此,以下是典型的 UEFI系统枚举可启动设备的方式:

  • 如果启用了UEFI引导:

    • 查看EFI变量以查看是否有任何已配置的启动项。

      大多数操作系统会在EFI变量系统中创建指向其引导文件的指针。这些变量存储在EFI NVRAM中。

      大多数操作系统还将采取额外的步骤来创建EFI系统分区,并将其启动文件存储在此处,而不是存储在主操作系统卷上。这样可以稍微提高灵活性,但是也可以解决典型UEFI系统的一个明显问题:本机仅支持FAT32分区。

    • 查找带有EFI文件的任何可移动驱动器,例如“ \ EFI \ BOOT \ BOOTX64.EFI”。请记住,大多数UEFI系统只能从FAT32中读取,因此,如果您的可移动驱动器是NTFS或其他,则可能找不到引导文件。

    • 枚举所有光盘驱动器,无论它们是否具有EFI引导代码。

  • 如果启用了BIOS或CSM引导:

    • 枚举所有固定磁盘,无论它们是否具有有效的MBR
    • 枚举所有可移动磁盘,无论它们是否具有有效的MBR
    • 枚举光驱,无论它们是否具有可引导光盘。

上面没有涵盖的其他一些内容,例如Option ROM,PXE引导等。

现在对上述过程进行一些观察。对于初学者而言,无论启动模式如何,光盘驱动器总是会一直显示。这通常是因为BIOS和UEFI系统都不想在继续引导之前等待光盘旋转起来。它们也倾向于同时在两种模式下显示为可引导,因此,如果您有可以双向引导的光盘,则可以从BIOS的引导菜单中选择一个或另一个。

由于以编程方式确定驱动器(固定或可移动)是否包含有效的MBR引导代码有些困难,因此,如果系统具有可用的BIOS或CSM引导,则它倾向于仅允许从当前存在的任何磁盘进行引导。但是,这可能是问题的一部分的答案:尽管大多数系统应将USB记忆棒几乎像固定磁盘一样对待,但也许您的系统对待它的方式有所不同。例如,某些BIOS将完全对待USB设备例如固定磁盘,则可能需要在BIOS中调整“硬盘启动顺序”或某些此类控制。或者您的BIOS被锁定或损坏,并且没有意识到它可以在BIOS模式下启动。其他一些提示:尝试将驱动器插入USB 2.0而不是3.0端口,并在BIOS中启用USB兼容性选项。某些BIOS本身无法与第三方USB或ATA控制器后面的设备一起使用,例如在未将USB3集成到芯片组的计算机上。

随着EFI的出现,系统现在很容易确定应该使用哪些启动设备(通过查看包含启动项的EFI变量),以及确定特定驱动器是否实际上包含启动代码(通过查找是否存在启动代码)。 BOOTX64.EFI文件)。但是,这导致了一些有趣的警告。虽然正式一个EFI系统应该只在GPT磁盘中查找EFI文件,大多数情况下,它也会在其他地方查找。例如,您可以将Windows 7或更高版本的安装光盘复制到FAT32 USB记忆棒中,并且在EFI模式下可以正常启动。UEFI足够聪明,可以检查所有可移动磁盘中是否存在“ \ EFI \ BOOT \ BOOTx64.EFI”文件,即使NVRAM中没有相应的EFI变量也是如此。大多数UEFI系统也可以从MBR磁盘启动,只要有EFI变量以及有关去向和操作的详细信息即可。例如,现在我正在使用一台戴尔笔记本电脑,该笔记本电脑出厂时已通过安全启动以UEFI模式启动Windows 8.1,但该磁盘已分区为MBR。

可能还会发生其他有趣的事情:如果您安装了Windows或Ubuntu这样的具有EFI意识的操作系统,则它将在安装其Bootloader时创建适当的EFI变量。然后,如果卸下或擦拭驱动器,系统将具有EFI变量,并带有操作系统的名称,但由于无法找到变量引用的磁盘,因此无法引导至它们。另外,如果将功能齐全的EFI可启动磁盘从一台计算机移到另一台计算机,则它可能无法像MBR那样无缝地启动。如果NVRAM中不存在相应的变量,许多UEFI实施将甚至不允许您尝试以UEFI模式从固定磁盘启动。这就是为什么您的RAID阵列或其他固定硬盘驱动器可能没有作为UEFI条目出现在引导菜单中的原因,除非它们具有所有适当的结构,例如EFI变量。

但是,鉴于您遇到的确切问题,我将大多数问题归咎于BIOS损坏,而不是设置问题。值得注意的是,USB驱动器显示为UEFI设备而不是BIOS设备非常奇怪。您是否关闭了安全启动并启用了任何CSM或BIOS引导选项?另外,让您的光驱显示为BIOS选项而不是UEFI选项似乎有些奇怪,尽管并非闻所未闻。


1
UEFI 2.x规范正式要求同时支持GPT和MBR分区。第324页(9.3.6.1),还有第
72、113–115、539页
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.