实际文件和/或分区要求区分图像是否可以作为传统图像或 UEFI 启动?

实际文件和/或分区要求区分图像是否可以作为传统图像或 UEFI 启动?

我之前做过彻底的搜索,几年前 UEFI 还不存在的时候我确实了解过这个主题。但似乎当你不使用某些东西时,有时你会“忘记”它。似乎没有人清楚地说明实际的区别。

所以我有一个映像(USB 或磁盘映像,无所谓)。如果我安装或“打开”它来查看内容(甚至不用?使用工具?),我如何相对确定它支持传统启动、UEFI 还是两者兼而有之?无需尝试启动它(因为实际失败或成功都会揭示答案 - 此外,许多 UEFI 会指示它们是否检测到支持 UEFI 的介质)。

与常识相反,分区类型似乎不是决定因素(至少不是唯一的决定因素)。我怀疑某些文件需要放在某些地方?有人能指出哪个文件在哪里吗?

我有一组图像需要分类和清理。

答案1

对于 UEFI,有很多提示表明磁盘可启动,但没有它们并不一定意味着磁盘不是可启动。请记住,对于内部磁盘,此信息的一部分通常存储在主板的 NVRAM 中,并不一定与磁盘的内容一起传输。

  • 分区表:

    UEFI 规范允许所有类型的磁盘使用 GPT 和 MBR 分区表。可移动设备也可以不分区,完全由 EFI 兼容的文件系统组成。CD/DVD 使用与 BIOS 启动相同的 El Torito 结构。

  • 分割:

    启动文件存储在“EFI 系统分区”中,该分区具有为 MBR(0xEF)和 GPT(C12A7328-F81F-11D2-BA4B-00A0C93EC93B)分配的特定分区类型 ID。

    (请注意,某些工具显示分区类型 ID 不同,例如 gdisk 将 GPT GUID 缩短为 EF01,而 parted 将其显示为标志。)

    但是,如果固件根据存储在系统 NVRAM 中的特定分区 GUID 和文件路径(Boot#### 条目)进行引导,则分区类型 ID 不是必需的(如果我没有看错的话)。只有当固件没有信息并且需要自动检测要从哪个分区和文件进行引导时,才需要它。

    对于可移动媒体,也不需要分区类型 ID。

  • 埃尔托里托:

    CD 和 DVD 没有分区表,而是有一个引导目录具有多个条目,每个条目对应它们支持的每个平台。EFI 可引导光盘具有平台 ID 为 0xEF 的条目(它是多平台的,因为它包含与 EFI 系统分区相同的文件):

    $ dumpet -i en_windows_vista_enterprise_sp2_x64_dvd_342332.iso
    Section Header Entry:
         Header Indicator: 0x91 (Final Section Header Entry)
         PlatformId: 0xef (EFI)
    
  • 文件系统:

    UEFI 将 FAT(16/32) 定义为 EFI 系统分区必须支持的标准文件系统。

    虽然它不禁止固件支持其他文件系统(我相信 Mac 接受 HFS?有些 PC 接受 NTFS?),所以磁盘可以即使在任何地方都没有 FAT 文件系统,也可能实现 UEFI 引导。

  • 文件路径:

    EFI 可以配置为从指定分区启动任何可执行文件,但如果 NVRAM 条目不存在(或者全部失败),它将查找标准路径(不区分大小写),其中 ARCH代表 amd64。\EFI\Boot\BootARCH.efiX64

答案2

我只能对 CD/DVD 及其 ISO 映像发表评论。我从未尝试过使用 USB 映像,因此这个答案可能并不完整。

你需要一个像这样的工具ISO 破坏者.(Windows 应用程序)我猜免费功能在大多数情况下应该都可以使用。

  1. 在 ISO Buster 中打开 ISO 映像
  2. 在左窗格中单击“可启动磁盘”。右窗格将显示 .img 文件。如果您没有看到此“可启动磁盘”项,则 ISO 根本无法启动。
  3. 如果您只看到一个 .img,则它是单模式启动盘(但它可能是 Legacy 或 UEFI)。如果您看到两个 .img,则它是多启动。
  4. 现在右键单击 .img 并点击运行
  5. 将打开一个新窗口。如果您只看到 Session & Track 信息,则它是 Legacy Bootable
  6. 运行、分区 -> EFI 扇区时将显示 UEFI 可启动的 .img
  7. 如果您在其中找到两个 .img,并且一个仅显示轨道扇区而另一个显示 EFI 扇区,那么它既是 Legacy 又是 UEFI 可启动的。

注意 - 此方法无法验证 .img 文件的实际完整性。根据 .img 的结构,它可以指示它是 Legacy 还是 UEFI 可启动。我可以将一个假的 bootx64.efi 作为映像文件插入到 EFI/boot,然后 ISO buster 会指示它是一个可启动映像,但实际的 ISO 或 DVD 将无法启动,因为 bootx64.efi 中没有真正的可启动代码,Legacy 映像也是如此。

请参阅下面的截图。

Hiren Boot CD ISO(仅限旧版可启动)

在此处输入图片描述

在此处输入图片描述

Windows 7 64 - 传统版 + UEFI 可启动

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容