EFI引导是否特定于硬件?我有一个带有UEFI Bios的台式机主板,但是我只能以“ UEFI”模式从USB驱动器启动。DVD驱动器和HDD(RAID 0阵列)均仅在旧模式下引导。HDD是否需要具有GPT分区表才能在UEFI模式下启动?
EFI引导是否特定于硬件?我有一个带有UEFI Bios的台式机主板,但是我只能以“ UEFI”模式从USB驱动器启动。DVD驱动器和HDD(RAID 0阵列)均仅在旧模式下引导。HDD是否需要具有GPT分区表才能在UEFI模式下启动?
Answers:
根据规范,基于(U)EFI的系统只能从GPT样式的磁盘引导。传统的BIOS可以从MBR样式的磁盘引导,并且在某些情况下(取决于制造商),它们也可以从GPT引导。但是,根据UEFI规范,磁盘应具有GPT分区表。
此MSDN文章对此进行了很好的描述:
支持UEFI的系统要求引导分区必须位于GPT磁盘上。其他硬盘可以是MBR或GPT。
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引导:
上面没有涵盖的其他一些内容,例如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选项似乎有些奇怪,尽管并非闻所未闻。