# 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
,你将看到如下窗口:
检查BIOS Mode,它会显示为UEFI或Legacy。请注意,这是针对Windows 8/10的,如果你使用的是Windows 7或更旧的版本,可能是在Legacy模式下运行。
# 在Linux上
# 方法 1
在大多数情况下Linux发行版,可以运行
ls /sys/firmware/efi
如果文件夹存在,那么你正在UEFI模式下运行 (截图来源: Scooby-Chan#7971)
# 方法 2
你也可以下载并运行efibootmgr
(可在在大多数情况下发行版下载),你可以:
- 获取引导条目变量
- 你的系统正在运行UEFI
- 或者得到一条不支持EFI变量的错误消息
- 你的系统运行在Legacy模式下
# macOS在所有这些中
macOS需要一些特殊处理,因为苹果公司想要(纵容他们的操作系统),因此需要一套规则来让它安装到任何驱动器上:
- GPT格式的磁盘
- EFI分区至少200MB
考虑到这两个要求,理论上你可以让它们实现,然后就可以了。如果您理解了这些需求中的操作,并且可以自己完成,那么您就可以开始了,如果没有,请留在这里获取有关如何正确解决此问题的更多提示和技巧。
接下来的部分:
例:
- 未安装操作系统:
- 数据库在同一个磁盘上
- 数据库在不同的磁盘上
- 已经安装的操作系统或驱动器中现有的数据
- 支持原生UEFI的系统:将你的旧引导操作系统转换为UEFI
- Linux
- Windows
- 系统只有Legacy启动选项:
- DUET
- 支持原生UEFI的系统:将你的旧引导操作系统转换为UEFI
祝你好运,并备份你的数据。