UEFI与LegacyBIOS两种启动模式详解(1)、UEFI启动模式与legacy启动模式legacy启动模式:就是这么多年来PC一直在使用的启动方式(从MBR中加载启动程序),UEFIBIOS作为一种新的BIOS自然也应该兼容这种老的启动方式;UEFI启动模式:UEFIBIOS下新的启动技术。如果你的PC在UEFI启动模式下预装了Win8,你会发现有两个很小的隐藏分区。一个叫ESP(EFI系统分区),另一个MSR(Microsoft保留分区,通常为128MB)。MSR是windows要求的。ESP对UEFI启动模式很重要,UEFI的引导程序是以后缀名为.efi的文件存放在ESP分区中的,ESP分区采用fat32文件系统。此外,可能还存在一个小分区叫WinRETools,这个是win8的恢复分区,体积也很小。所以千万不要把这三个分区删了。因此第一个关键问题就是确定自己的启动模式,方法是进入BIOS,然后你会发现有一项叫bootmode,选中UEFIboot就是UEFI启动模式,选中Legacyboot就是Legacy启动模式。(2)、UEFI启动模式只支持64位的系统,所以预装的win8是64位的,Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统,也需要64位的。(3)、UEFIBIOS和LegacyBIOS我们都知道可以在传统的bios中调整设备的启动优先级,UEFIBIOS在UEFI启动模式下不但可以调整设备的优先级,还可以调整设备中引导程序的优先级,安装完ubuntu之后,你再进BIOS就会发现多了一个可选择的启动项叫ubuntu。此外,UEFIBIOS也引入了一些新的技术,例如Fastboot和secureboot,当然后面一项完全是用来坑爹的。(4)、UEFI启动模式下如何从u盘或移动硬盘引导只要u盘或移动硬盘上有一个fat32的分区,分区的根目录下有个文件夹叫EFI,UEFI就会自动去查找相应的启动文件(.efi)如果你刚制作了ubuntu(kylin)-13.04-64位的启动u盘,可以打开它,你会发现分区的文件系统是fat32,确实有一个EFI文件夹,进去看看就是各种.efi引导文件(这里再次强调64位,32位下你是找不到这个文件夹的)。因此现在想制作可启动的u盘或移动硬盘就简单了,只需要复制粘贴就行了。LegacyBIOSBoot是如何启动或引导的当系统首次引导时,或系统被重置时,处理器会执行一个位于已知位置处的代码。这个位置在基本输入/输出系统(BIOS)中。CPU会调用这个重置向量来启动一个位于闪存/ROM中的已知地址处的程序。通常,它执行一个启动自测(POST)来检查机器。最后,它从引导驱动器上的主引导记录(MBR)加载第一个扇区。引导程序就位于MBR第一个扇区里面。此时引导程序就被装入RAM并执行。这个引导加载程序在大小上小于512字节(一个扇区)。BIOS自检完成之后,将MBR的代码读入内存,管理权交给MBR,MBR再读取DPT,从DPT(DiskPartitionTable,硬盘分区表占据MBR扇区的64个字节(偏移01BEH--偏移01FDH))找出硬盘的所有分区哪一个是激活的主分区。到这里为止,所有系统都是一样的。下面就有区别了。DPT读完找到主分区之后然后找到这个主分区的PBR(PartitionBootRecord分区引导记录),PBR位于激活主分区的第一个扇区。安装不同操作系统的时候PBR是会被改变的,XP的PBR写死的代码是去找NTLDR。而Vista和7的PBR里写进的就是去找Bootmgr。这个时候显示器上还没有显示引导管理器的界面。Bootmgr被找到之后管理权就交到了Bootmgr。BootManager首先从BCD中读取BootManager菜单的语言版本信息,然后再调用BOOTMGR与相应语言的BOOTMGR.EXE.MUI组成相应语言的启动菜单,之后才会在显示器上显示引导管理器,也就是选择多操作系统的那个文字界面。最后,当你选择了相应的操作系统,这里是Win7或8(如果选择XP,会转入XP的启动流程,找到XP的NTLDR然后启动),Bootmgr就去寻找系统分区(系统分区和主分区的概念不是一样的哦)Windows/System32下的Winload.exe加载操作系统内核。EFIBoot介绍EFI的全称是可扩展固件接口(ExtensibleFirmwareInterface),它是Intel公司为全新类型的固件体系结构、接口和服务提出的建议性标准。该标准有两个主要用途:向操作系统的引导程序和某些在计算机初始化时运行的应用程序提供一套标准的运行环境;为操作系统提供一套与固件通讯的交互协议。简单说,EFI是BIOS的替代者。它为操作系统和固件提供了更加强大、安全、方便的交互途径。EFI规范定义的接口,包括数据表包含平台的信息,可在OSLoader和OS的启动和运行时服务。EFI固件提供了几种技术优势:引导能力支持大容量磁盘(超过2TIB);更快的启动;独立CPU的体系结构;CPU的独立的驱动程序;灵活的预操作系统环境,包括网络功能;模块化设计;EFI启动还需要一个特殊的分区表,该分区表指向一个特殊的文件。通常情况下该文件位于\EFI路径,EFI启动涉及到一个写入到firmware中的bootloader,EFI并不把启动程序放置在MBR中,firmware知道如何读取分区表以及FAT的文件格式。EFI系统分区是用FAT格式格式化的特定分区,其中包含bootloader,该bootloader是EFI可执行程序,可被EFIbootmanager载入和运行。Bootloader被设置为一个可以通过固件访问的文件。Bootloader允许用户选择并加载操作系统。所有的bootmanager都包含一个EFI变量,该变量被用来定义固件配置参数。MBR与GPTMBR:主引导记录(MasterBootRecord,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息,是数据信息的重要入口。如果它受到破坏,硬盘上的基本数据结构信息将会丢失,需要用繁琐的方式试探性的重建数据结构信息后才可能重新访问原先的数据。主引导扇区内的信息是通过分区程序写入的,它是低级格式化的产物,和操作系统没有任何关系(操作系统是创建在高级格式化的硬盘分区之上,是和一定的文件系统相联系的)。对于硬盘而言,一个扇区可能的字节数为128×2n(n=0,1,2,3)。大多情况下,取n=2,即一个扇区(sector)的大小为512字节。MBR的限制:在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区:从主引导记录的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘,最多只能识别4个主要分区(Primarypartition)。MBR分区方案无法支持超过2TB容量的磁盘。因为这一方案用4个字节存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2TB。磁盘容量超过2TB以后,分区的起始位置也就无法表示了。GPT:全局唯一标识分区表(GUIDPartitionTable,缩写:GPT)是一个实体硬盘的分区结构。GUID分区表(GPT)是作为ExtensibleFirmwareInterface(EFI)计划的一部分引入的。相对于PC常用的较旧的主引导记录(MBR)分区方案,GPT提供了更加灵活的磁盘分区机制。GPT使用GUID分区表(GPT)磁盘分区系统。GPT磁盘提供了以下好处:最多允许128个分区;主引导记录(MBR)磁盘可以支持4个主分区和扩展分区内的124个附加分区。允许大于2TB的卷容量,而2TB是MBR磁盘的极限。由于分区表提供了复制和循环冗余校检(CRC)保护,所以更加可靠。能在所有基于x64平台上用作存储卷,包括运行WindowsXPProfessionalx64Edition的平台。从WindowsServer2003SP1开始,GPT磁盘也可用作基于x86的Windows平台上的存储卷。可用作基于x64的Windows7、WindowsVista和WindowsServer2008版本上的引导卷。从WindowsServer2003SP1开始,GPT磁盘也可用作基于Itanium的系统上的引导卷。注意:Windows仅支持从包含UnifiedExtensibleFirmwareInterface(UEFI)引导固件的系统上的GPT磁盘引导。注:哪些系统支持UEFI启动?为什么当前我们不能支持32bit的win8UEFI启动?目前我们的BIOS的Build生成是x64模式的,因此32位的Win8UEFI是不被支持的。总结:UEFI是新式的BIOS,legacy是传统BIOS。你在UEFI模式下安装的系统,只能用UEFI模式引导;同理,如果你是在Legacy模式下安装的系统,也只能在legacy模式下进系统。UEFI只支持64为系统且磁盘分区必须为GPT模式,传统BIOS使用INT13中断读取磁盘,每次只能读64KB,非常低效,而UEFI每次可以读1MB,载入更快。此外,Win8,更是进一步优化了UEFI支持,号称可以实现瞬时开机。