# UEFI 系统

自UEFI以来,磁盘默认的分区映射格式是GPT (GUID分区表),它增加了对超过2TB的磁盘大小和超过4个分区的支持,这是MBR的限制,同时仍然对遗留系统的MBR保持向后兼容。如果你的电脑(预装的)安装了Windows 8(2012年及以后的版本),那么你的磁盘很可能是GPT分区的。

通常,安装了Windows 8的2012+电脑会有一个UEFI固件(一些oem也发布了Windows 7版本,所以请确保你的电脑也有UEFI),这是一个新传播的固件类型(从2000年开始开发),自从英特尔切换后就已经部署在苹果电脑上了(但他们自己大量修改的固件,称为EFI,而不是UEFI,因为缺乏通用性)。这个新固件有一些新功能,如安全引导,帮助更快的引导,硬件直通,图形界面与鼠标支持(以及更多)。要了解更多关于UEFI和安全启动的信息,请查看Osy86撰写的此处 (opens new window). 基本上,一个UEFI引导是这样的:

  • UEFI固件加载完成
  • 加载其集成的驱动程序和服务
  • 读取引导菜单条目并开始加载第一个引导条目
    • 如果失败,启动下一个
  • 加载引导装载程序
    • OS在此之后加载。

通常,所述的“引导加载程序”包含在磁盘中的某个地方,这个地方被称为EFI分区。你可以找到不同的东西,如ESP (EFI系统分区),System, EFI, BOOT等。该分区被FAT32格式化并标记为MBR中的EF00或GPT中的C12A7328-F81F-11D2-BA4B-00A0C93EC93B GUID。这个分区通常包含由UEFI固件在启动时加载的EFI应用程序(如操作系统引导加载程序)(请记住这一点,因为这对以后的恢复很重要)。

# Legacy/CSM 系统

与UEFI相反,Legacy系统更老,也更成熟(可以追溯到第一代IBM pc)。在相同的系统上,它们肯定比UEFI有更多的限制和更慢的速度,但与许多操作系统(甚至在极少数情况下是macOS)具有更好的兼容性。2012年以前的电脑通常都有这种类型的固件(有些例外,比如服务器和一些专业的笔记本电脑等等,它们也可能有UEFI,在那种模式下它们是不可靠的)。电脑通常会安装比Windows 8更旧的Windows版本,硬盘容量小于2TB。一些桌面用户此时也会在Legacy模式下安装操作系统,即使他们的主板支持较新的UEFI标准。这可能会在以后的多引导中产生问题。

这些系统依赖于加载引导装载程序的另一种方法。这个软件通常写在磁盘的第一个扇区(格式化为MBR),称为引导扇区,这个扇区通常有512或4096字节大,BIOS将读取代码,将其复制到内存中,然后执行它,这时一个操作系统或引导加载程序菜单(如GRUB2)将显示:

  • BIOS启动
  • 读取引导扇区
  • 将程序加载到内存中
  • 执行程序
  • 出现引导加载程序
    • 操作系统现在开始启动。

# 系统之间的主要区别

我们将把它们放在一个表中,以显示主要的区别:

UEFI Legacy
快速启动 ✅ (在大多数情况下) ❌ (只有一些做到了,没有一个标准)
引导加载程序通过引导菜单选择 ✅ (在大多数情况下) ❌ (只有一些做到了,没有一个标准)
安全启动 ✅ (在大多数情况下) ❌ (只有一些做到了,没有一个标准)
在不覆盖其他引导加载程序的情况下添加引导加载程序 ✅ (在大多数情况下) ❌ (只有一些做到了,没有一个标准)
支持2TB+启动盘 ✅ (依赖硬件) ❌ (需要GPT,它在一些遗留系统上支持,2006+)
传统硬件支持 ⚠️ (取决于哪个硬件,CSM开关应该是可能的) ✅ (取决于硬件)
更容易维护(管理引导加载程序和引导条目) ✅ (在大多数情况下) ❌ (只有一些做到了,没有一个标准)
OS 支持

除了传统硬件支持(现在很少了),UEFI是在新硬件上双引导时使用的固件(2012+)。但是对于传统用户,也有一种方法可以获得一些UEFI特性,但只能通过DUET(稍后将讨论)。

# 检测你正在使用的固件

# 没有操作系统

如果你的电脑:

  • 来自 Ivy Bridge 时代(~2012年)及之后
  • 有一个Windows 8贴纸

那么它可能有UEFI系统,也就是说,这并不意味着老一代的主板没有,然而随着Windows 8的发布,微软标准化了UEFI规范,以供oem获得认证(通常如果你选择品牌名称,如华硕,联想,惠普,戴尔…你可以开始了)。

如果比上面的版本更老,那么拥有合适的UEFI实现的机会就会减少,最好使用Legacy引导。

# 在Windows上

打开运行(Win + R),输入msinfo32,你将看到如下窗口:

MSINFO32 Window

检查BIOS Mode,它会显示为UEFILegacy。请注意,这是针对Windows 8/10的,如果你使用的是Windows 7或更旧的版本,可能是在Legacy模式下运行。

# 在Linux上

# 方法 1

在大多数情况下Linux发行版,可以运行

ls /sys/firmware/efi

img

如果文件夹存在,那么你正在UEFI模式下运行 (截图来源: Scooby-Chan#7971)

# 方法 2

你也可以下载并运行efibootmgr(可在在大多数情况下发行版下载),你可以:

  • 获取引导条目变量
    • 你的系统正在运行UEFI
  • 或者得到一条不支持EFI变量的错误消息
    • 你的系统运行在Legacy模式下

# macOS在所有这些中

macOS需要一些特殊处理,因为苹果公司想要(纵容他们的操作系统),因此需要一套规则来让它安装到任何驱动器上:

  • GPT格式的磁盘
  • EFI分区至少200MB

考虑到这两个要求,理论上你可以让它们实现,然后就可以了。如果您理解了这些需求中的操作,并且可以自己完成,那么您就可以开始了,如果没有,请留在这里获取有关如何正确解决此问题的更多提示和技巧。


接下来的部分:

例:

  • 未安装操作系统:
    • 数据库在同一个磁盘上
    • 数据库在不同的磁盘上
  • 已经安装的操作系统或驱动器中现有的数据
    • 支持原生UEFI的系统:将你的旧引导操作系统转换为UEFI
      • Linux
      • Windows
      • 系统只有Legacy启动选项:
        • DUET

祝你好运,并备份你的数据