计算机启动的第一个阶段就是初始化硬件,2000 年以前的计算机主板上均使用 BIOS,如今绝大多数计算机采用的是 EFI(Mac 用的就是 EFI)或 UEFI,BIOS 正在逐步被淘汰。基于 EFI、UEFI 的开机过程与传统的BIOS不尽相同。由下图可以看出UEFI引导比传统BIOS少了一个环节“BIOS自检”,正是这关键的一步大大减少了UEFI引导开机速度;UEFI从预启动环境直接加载操作系统,从而更节省开机时间。
什么是BIOS?
BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
什么是EFI和UEFI?
EFI是Extensible Firmware Interface(可扩展固件接口)的缩写,是由英特尔倡导推出的一种在类PC系统中替代BIOS的升级方案。与传统BIOS相比,EFI通过模块化、C语言的参数堆栈传递方式和动态链接的形式构建系统,较BIOS而言更易于实现,容错和纠错特性更强。
UEFI则是Unified Extensible Firmware Interface(统一可扩展固件接口),它是基于EFI 1.10标准为基础发展起来的,不过所有者并不是英特尔,而是一个名为Unified EFI Form的国际组织。UEFI是一种详细描述类型接口的标准,可以让PC从预启动的操作环境,加载到操作系统上。
自2000年12月12日正式发布EFI 1.02标准后,EFI一直是作为代替传统的BIOS的先进标准而存在,拥有权在英特尔手中,而在2007年开始,英特尔将EFI标准的改进与完善工作交给Unified EFI Form进行全权负责,随后登场的EFI标准则正式更名为UEFI,以示区别。
从UEFI启动的硬盘必须是GPT格式,必须是win 7/8/10 64系统,UEFI不支持32位系统。uefi和legacy(就是传统的意思)是两种不同的引导方式,uefi是新式的BIOS,legacy是传统BIOS。
UEFI启动的硬盘必须是GPT格式,那GPT又是什么呢?
在使用新磁盘之前,你必须对其进行分区。MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁盘上存储分区信息的两种不同方式。这些分区信息包含了分区从哪里开始的信息,这样操作系统才知道哪个扇区是属于哪个分区的,以及哪个分区是可以启动的。在磁盘上创建分区时,你必须在MBR和GPT之间做出选择。
什么是MBR?
MBR的意思是“主引导记录”,最早在1983年在IBM PC DOS 2.0中提出。
之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。所谓启动加载器,是一小段代码,用于加载驱动器上其他分区上更大的加载器。如果你安装了Windows,Windows启动加载器的初始信息就放在这个区域里——如果MBR的信息被覆盖导致Windows不能启动,你就需要使用Windows的MBR修复功能来使其恢复正常。如果你安装了Linux,则位于MBR里的通常会是GRUB加载器。
MBR支持最大2TB磁盘,它无法处理大于2TB容量的磁盘。MBR还只支持最多4个主分区——如果你想要更多分区,你需要创建所谓“扩展分区”,并在其中创建逻辑分区。
MBR已经成为磁盘分区和启动的工业标准。
什么是GPT?
GPT意为GUID分区表。(GUID意为全局唯一标识符)。这是一个正逐渐取代MBR的新标准。它和UEFI相辅相成——UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。之所以叫作“GUID分区表”,是因为你的驱动器上的每个分区都有一个全局唯一的标识符(globally unique identifier,GUID)——这是一个随机生成的字符串,可以保证为地球上的每一个GPT分区都分配完全唯一的标识符。
这个标准没有MBR的那些限制。磁盘驱动器容量可以大得多,大到操作系统和文件系统都没法支持。它同时还支持几乎无限个分区数量,限制只在于操作系统——Windows支持最多128个GPT分区,而且你还不需要创建扩展分区。
在MBR磁盘上,分区和启动信息是保存在一起的。如果这部分数据被覆盖或破坏,事情就麻烦了。相对的,GPT在整个磁盘上保存多个这部分信息的副本,因此它更为健壮,并可以恢复被破坏的这部分信息。GPT还为这些信息保存了循环冗余校验码(CRC)以保证其完整和正确——如果数据被破坏,GPT会发觉这些破坏,并从磁盘上的其他地方进行恢复。而MBR则对这些问题无能为力——只有在问题出现后,你才会发现计算机无法启动,或者磁盘分区都不翼而飞了。
我们推荐你使用GPT对磁盘进行分区。它更先进,更健壮,所有计算机系统都在向其转移。如果你需要保持对旧系统的兼容性——比如在使用传统BIOS的计算机上启动Windows,你需要使用MBR。
学习永远不算一蹴而就的,学习永远不算晚,就看你有没有这个决心和能力。
下次章节的学习中,我们就要使用到这些概念,请大家继续关注。