zoukankan      html  css  js  c++  java
  • UEFI启动模式

    那么,什么是UEFI?下面谈谈个人片面的理解。

    1.祖宗——BIOS

    如果你不知道什么是BIOS,估计你还没有自己安装过系统。但是考虑到可能还是有一些人不清楚,我就费点口舌说一说,知道的童鞋可以直接看第二部分。

    开机,按F2,出来一个蓝屏幕,就是我要说的BIOS了(不是所有主板都是F2,这里针对大部分笔记本电脑)。BIOS其实是一个软件,但是又和我们常说的软件不太一样,因为它在主板上的一个芯片里,而不像其他大多数软件一样在硬盘里。当计算机的电源键被按下的时候,电流会首先流入BIOS所在的芯片,唤醒BIOS。之后BIOS的工作就是检查CPU、内存等硬件是否正常,一切妥当后,就找到硬盘里的MBR准备启动系统。BIOS的功能就说到这里。
    2.硬盘分区样式——MBR与GPT

    上面出来一个新词——MBR,它的意思是主引导记录(Main Boot Record),其实就是驱动器最前端的一段引导扇区。据此,BIOS知道这个驱动器能否被引导以及怎样引导。MBR错误后,系统不能引导,需要在PE下修复,重要性可见一斑。

    有人会说,这样不是挺好的吗?其实,MBR仅仅支持最大卷为2 TB,并且仅支持每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的磁盘分区样式。有的人买了一块大硬盘,或者想多分几个区,那么对不起,MBR不支持。

    于是,新的分区样式GPT呼之欲出。GPT磁盘分区样式支持最大卷为18 EB(这个单位很大了),并且每磁盘的分区数没有上限,只受到操作系统限制(IA-64版Windows限制最多有128个分区)。另外,GPT分区磁盘有备份分区表来提高分区数据结构的完整性。

    现在,MBR与GPT也可以实现无损互转,这里我推荐国产自由软件——傲梅分区助手,这是一个功能非常强大的分区软件,能实现很多对硬盘的无损操作。

    警告:对硬盘的一切涉及分区的操作,都有极大的风险!请提前做好重要数据的备份!

    3.新的引导方法——UEFI

    有了新的分区样式,显然老的BIOS靠不住了(人家只认MBR)。于是,1998年,Intel牵头,联合AMD、AMI、Apple、Dell、HP、IBM、Lenovo、Microsoft和Phoenix等业界主要厂商,开始制定新一代BIOS。这个项目叫做"统一的可扩展固定接口"(Unified Extensible Firmware Interface),简称UEFI。

    UEFI是一种详细描述全新类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上,从而使开机程序化繁为简,节省时间。从2012年9月以来,电脑运行的已经不是BIOS,而是UEFI BIOS。等它运行结束,再载入操作系统。而想用老式MBR引导方法,则需要将UEFI BIOS里面的启动方式改为“Legency”才可以。

    4.微软的小算盘——Secure Boot

    (以下内容属个人意见,参考自http://bbs.taobao.com/catalog/thread/154503-260136140.htm

    可以看出,UEFI是一个很先进的引导方法。但是1998年诞生的它,直到近几年才为人所知,为什么呢?其中很大原因就是微软的不积极。Windows是PC端的主流系统,如果它不使用UEFI,就没有硬件厂商会跟进。所以,普通消费者对这个新规格所知甚少。

    变化出现在2011年9月,微软突然宣布:Windows 8将启用UEFI。这本来是一件好事,但是,微软感兴趣的不是UEFI,而是UEFI的一个子规格Secure Boot。

    Secure Boot的目的,是防止恶意软件侵入。它的做法就是采用密钥。UEFI规定,主板出厂的时候,可以内置一些可靠的公钥。然后,任何想要在这块主板上加载的操作系统或者硬件驱动程序,都必须通过这些公钥的认证。也就是说,这些软件必须用对应的私钥签署过,否则主板拒绝加载。由于恶意软件不可能通过认证,因此就没有办法感染Boot。

    这个设想是好的。但是,UEFI没规定哪些公钥是可靠的,也没规定谁负责颁发这些公钥,都留给硬件厂商自己决定。现在,微软就是要求,主板厂商内置Windows 8的公钥。

    因此,消费者购买一台预装Windows 8的台式机或笔记本,想要在上面再安装其他操作系统(包括以前版本的Windows)是不可能的,除非关闭Secure Boot,或者其他操作系统能够通过Windows 8公钥的认证。这样,对于Linux 这种开源的无签名的系统就会直接阻止。但是,如果选择关闭Secure Root,那么预装的Windows 8将无法使用,需要重新安装。因此,如果要在打开Secure Boot的主板上安装Linux系统,这个系统就必须通过Windows 8的认证。


    目前,微软公司把Win8的数字签名外包给了Verisign。操作系统厂商想要通过认证,就必须花99美元,向Verisign买一张数字证书,嵌入自家的操作系统。

    Linux购买Windows 8的数字证书,是眼下唯一可行的相对容易的解决方法。但是,这种做法不可接受。首先,系统的公钥被微软控制,后果难以预料。如果微软决定更换和废除这个公钥,Linux就要被迫跟进;其次,Linux的启动管理器Grub是GPL许可证,该许可证(第三版)明文禁止软件使用密钥配合硬件阻止一部分用户的使用,因此要改用非GPL许可证的启动管理器;再次,只有几个较大的Linux发行版才有能力购买数字证书,较小的发行版和用户自己定制的版本最终还是需要有自己的公钥。

    2012年将近结束的时候,自由软件基金会(FSF)发出呼吁,要求人们继续支持反Secure Boot垄断,希望签名者能达到5万人。

    这里只说了PC端,其实Secure Boot对移动设备的影响,比PC还要严重。这也是为什Windows Phone不能安装其他系统的一个重要原因。

    5.UEFI BIOS安装系统须知

    如果安装UEFI系统,首先确定计算机硬盘分区为GPT格式!还有,仅“安装版”可以用来安装UEFI系统(也就是说Ghost之类暂时还比较麻烦,UEFI除了系统分区外还需要ESP分区、恢复分区两个小分区,而现有GHOST版本的是没办法同时提供这两个小分区的)。最后,注意把引导介质设置为UEFI启动。

    如果安装老MBR引导系统,首先确定计算机硬盘分区为MBR格式!这个很重要,千万不要在格式化C盘之后发现人家是GPT!之后,在UEFI BIOS改启动方法为“Legency”,按照熟悉的安装方法,Ghost或者安装程序,就可以开始安装了!

    最后,Windows 7对UEFI的支持不是很好,虽然网上有许多方法,但本人建议不要在UEFI下安装。

    积极乐观,好好coding
  • 相关阅读:
    AtCoder Beginner Contest 167
    AtCoder Beginner Contest 166
    AtCoder Beginner Contest 165
    AtCoder Beginner Contest 164
    AtCoder Beginner Contest 163
    AtCoder Beginner Contest 162
    AtCoder Beginner Contest 161
    AtCoder Beginner Contest 160
    AtCoder Beginner Contest 159
    自定义Mybatis自动生成代码规则
  • 原文地址:https://www.cnblogs.com/xiaodi914/p/4961613.html
Copyright © 2011-2022 走看看