UEFI 全称统一的可扩展固定接口”(Unified Extensible Firmware Interface)所谓UEFI实际上就是Intel 当年提出的EFI。相比古老陈旧的BIOS系统,UEFI 拥有诸多优势,这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上,从而使开机程序化繁为简,节省时间。

BIOS作为电脑开机的最基本引导软体,使用如今已有25年的历史了。而在此刻PC的架构将迎来彻底的革新,BIOS的时代即将彻底终结下一代电脑启动时间仅需数秒BIOS程序以16位汇编代码、寄存器参数调用方式、静态链接以及1MB以下内存固定编址的形式存在了十几年,虽然各大BIOS厂商近年来努力得对其进行改进,加入了许多新元素到产品中,如ACPIUSB支持等,但BIOS的根本性质没有得到任何改变,16位的运行工作环境是其最为致命的缺点。BIOS发展到现在,用来存放BIOS程序的芯片最大不过2Mb,换成实际字节就是256KB,面对这个数值,即使你想为BIOS编写一些新的功能,BIOS芯片中也不会有足够的空间让你写入。并且对于现代PC来说,BIOS需要很长的时间进行预热检测。这也是BIOS这十几年来一直停滞不前的原因之一。

BIOS的最新替代品,UEFI将会电脑市场中占有主导位置。

UEFI的发展史

EFI的出现第一次被正式提出,是在2000年的Intel春季IDFIntel Developer Forum)上,由Inetl提出的标准,经过几次修订,现在已经到了EFI 1.10版,而2.0版正由UEFI这个组织制定中(EFI也现称为UEFI)。从某个角度来讲,Intel在当时推出EFI主要为将来电脑固件能兼容于各种不同架构平台布局;例如EFI可运用在ItaniumPentium甚至XScale平台上。最初,共同发展EFI的业者包括IntelAMI和台湾业者Insyde,后来由于EFI确实具有足够的前瞻性,产业间成立了UEFI(Unified EFI)论坛,共同开发适用于各平台的PC固件标准。基本上,UEFI是基于原有的EFI 1.10为基础,正在进行UEFI 2.0的制定工作。

212217638.jpg

对比采用传统BIOS引导启动方式,UEFI BIOS减少了BIOS自检的步骤,节省了大量的时间,从而加快平台的启动。

MBR GPT

Legacy BIOS模式使用的是MBR来记录分区,而UEFI BIOS模式使用的GPT来记录分区。

MBR:主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(001)。

MBR 的限制:

MBR 分区表中最多 4 个主分区或者 3 个主分区+1 个扩展分区:从主引导记录的结构可以知道,它仅仅包含一个 64 个字节的硬盘分区表。由于每个分区信息需要 16 个字节,所以对于采用 MBR 型分区结构的硬盘,最多只能识别 4 个主要分区(Primary partition)。

MBR 分区方案无法支持超过 2TB 容量的磁盘。因为这一方案用 4 个字节存储分区的总扇区数,最大能表示 2 32 次方的扇区个数,按每扇区 512 字节计算,每个分区最大不能超过 2TB 。磁盘容量超过 2TB 以后,分区的起始位置也就无法表示了。

GPT:全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。相对于 PC 常用的较旧的主引导记录 (MBR) 分区方案,GPT 提供了更加灵活的磁盘分区机制。

GPT 使用 GUID 分区表 (GPT) 磁盘分区系统。GPT 磁盘提供了以下好处:

最多允许 128 个分区;主引导记录 (MBR) 磁盘可以支持 4 个主分区和扩展分区内的 124 个附加分区。

允许大于 2 TB 的卷容量,而 2 TB MBR 磁盘的极限。

由于分区表提供了复制和循环冗余校检 (CRC) 保护,所以更加可靠。

能在所有基于 x64 平台上用作存储卷,包括运行 Windows XP Professional x64 Edition 的平台。从 Windows Server 2003 SP1 开始,GPT 磁盘也可用作基于 x86 Windows 平台上的存储卷。

可用作基于 x64 Windows 7Windows Vista Windows Server 2008 版本上的引导卷。从 Windows Server 2003 SP1 开始,GPT 磁盘也可用作基于 Itanium 的系统上的引导卷。

目前UEFI启动模式支持长64位系统,32位系统不被支持。在UEFI BIOS中,为了兼容以前的操作系统,还提供了Legacy BIOS模式,以G480 BIOS为例:

212436828.jpg

在此模式下,传统的MBR引导方式的系统,可以正常安装系统,在安装需要以GPT分区的系统时,就会提示无法安装。


212620171.jpg

此模式下,引导方式为UEFI,与上一种模式相反。

目前,大家使用的机器可能都比较老,可能没有UEFI模式,想要了解2种模式的不同之处,没有办法进行测试。不过我们可以使用VMware虚拟机进行测试,来弥补硬件的不足,从VMware 8.0开始,虚拟机已经开始支持UEFI了,只不过需要我们手动来改一下代码(注意:紧支持64为系统)。

VMware 8.09.0 10.0都测试过,没有问题,cpu的虚拟化功能要开启,否则不能建立64位系统,下面以9.0版本为例讲一下:

首先新建一个虚拟机创建一个新的虚拟机,很大家平时创建虚拟机的步骤是一样的。

然后,打开虚拟机测存储位置,找到,vmx文件。

212740994.jpg

然后再此文件中添加一行代码,firmware=”efi”到文件中,保存退出。(使用之前建好的64位系统也可以)

212805585.jpg


开机后进入BIOS,就会发现里边的内容和之前不一样了。(注意windows7系统可能会没有变化,修改的代码有时会被改回,firmware=”bios”,解决办法就是关闭虚拟机,重新修改.vmx文件,以管理员身份运行就不会有问题了)i_f50.gif

212916233.jpg


修改启动顺序时,就会发现都是启动项里都是EFI开头的,这个模式下,无需修改任何参数,就可以像真机一样使用U盘来安装操作系统,不用再在把u盘做成虚拟机的硬盘了,直接可以引导。大家会发现,我这界面里第一项是CentOS,这是因为已经安装好了操作系统,虚拟机会自动把EFI分区添加到启动项里,并识别硬盘中的操作系统。

213015934.jpg


挂上系统镜像,就可以安装系统了。在分区的时候按照以往的自定义形式分区,就会发现无法进行下一步,系统会提示你没有创建EFI分区(“You have not created a /boot/efi partition”)。

213043828.jpg


这时,重新分区,建立一个efi分区,大小200MB就可以了,再小一点也没关系,只要够放启动文件就OK了。213204789.jpg


如果是全新的硬盘直接下一步,就可以安装了,系统会自动白硬盘改成GPT形式,如果是使用过的硬盘,可能就会出现sda必须修改GPT标签(sda must have a GPT disk lable)213449338.jpg


这时候我们需要使用parted命令,来修改GPT标签,fdisk命令已经无能为力了。按“Ctrl+Alt+F2”进入命令行,输入parted,如果有多块硬盘,要用select来选择硬盘,默认是sda,然后输入mklabel gpt(改成传统的MBR模式输入mklabel msdos),然后输入yes,就执行了,quit退出,如果有有分区,先全部删除,在修改标签。之后用快捷键返回图形界面,先后退一下,在继续进行安装,否则系统还会提示要修改标签。之后就和大家平时安装的步骤一样了。

214045206.jpg


此外EFI该模式下,还提供了EFI shell,帮助大家用命令来排除问题。这个大家就自己研究吧。

213707675.jpg


安装windows系统时,也类似这样操作,windows下一般只要全部分区都删除掉,系统会自动创建EFi分区并修改标签,当然也有例外的时候,这就需要我们手动去处理了。

此时我们需要按SHIFT+F10键进入CMD模式,使用DISKPART磁盘工具,将MBR分表区转为GPT模式,select disk 0,选择0号磁盘,list disk,列出系统拥有的磁盘,list partition,列出磁盘上的分区,clean,清除磁盘,该命令会抹去磁盘上所有数据,convert gpt将磁盘从MBR转换为GPTConvert basic-将磁盘从动态转换为基本convert dynamic,将磁盘从基本转换为动态convert gpt将磁盘从MBR转换为GPTconvert mbr将磁盘从GPT转换为MBR

具体操作命令如下:

(注意,更改分区模式硬盘里的数据会全部丢失,请提前备份好数据再进行此操作)

214544363.jpg


操作完成,关闭此命令提示符窗口,继续按照正常的方法安装Windows系统即可。

以后使用UEFI模式引导的主板会越来越多,硬盘空间越来越大,像提供视频类服务的公司,服务器很需要大于2TB的分区,UEFI+GPT的大数据时代已经来临,大家都提前学习一下吧。j_0061.gif