Biny

关于UEFI启动+GPT分区 的一些经验

Biny 2014-08-03 12:05:07    232924 次浏览
  前言:

  随着时代和科技的发展,电脑越来越普及,似乎人人都可以张嘴就说“我懂电脑”,但是总有一些看起来完全不懂但实际上非常基础的东西让“懂”与“不懂”清晰地划清界限。比如UEFI+GPT就是其中之一。那些之前认为自己已经精通电脑的人,遇到这个东西,忽然发现自己连以前自以为驾轻就熟的分区、装系统都不会了。
  尽管UEFI以及GPT从诞生迄今已经十余年了,但是对于绝大多数人来讲它们是完全陌生的,甚至根本就不知道还有这种东西。
  但是由于Windows8操作系统的面世,预装Windows8的电脑开始统一采用UEFI+GPT,很多人被迫接触到,感觉就像突然从天上掉下来的东西一样,无所适从,一筹莫展——“这到底是个什么东西呢?”
  一旦出现系统问题,唯一能做的解决办法除了品牌机自带的系统还原,最大能力不过就是把UEFI关闭,把硬盘从GPT再转成MBR,从而彻底毁掉UEFI+GPT的优势,重新回到陈旧落后的BIOS+MBR的系统安装和运行方式上来。而每台电脑的具体情况又不尽相同,有时候即使想用BIOS+MBR也不是肯定能成功的——“我该怎么办啊?”
  正文:
  之前很长一段时间对UEFI+GPT没有头绪,有种无处下手的感觉,虽然UEFI+GPT安装系统一直没遇到什么障碍,但是即使查阅了相当数量的资料,在认识上对于UEFI+GPT也没有一个完整的概念,总觉得这是一个很难理解的东西,不得要领。不像最初接触BIOS+MBR的时候那么容易入门直至熟练操作。
  先说关于什么是UEFI和GPT,在此就不做详解了,感兴趣的都了解,不感兴趣的说了也没什么用处。只说一点最基本的,MBR分区结构只能支持到2.2T的硬盘,超过2.2T就必须采用GPT分区,而就Windows而言,采用了GPT的硬盘,要想安装并启动Windows操作系统,只能选择高于XP的64位操作系统,并且采用UEFI方式安装、引导,否则无法启动,而包括XP在内及其之前的32位操作系统完全不支持GPT,别说安装、引导系统,直接无法识别。3T硬盘时代并不遥远,要想正常使用你的电脑,这就是采用UEFI+GPT的必要性。
  而最关键之处在于,照目前的形势来看,由于预装Windows8电脑的推动,UEFI+GPT已经是大势所趋,与是否2.2T以上硬盘也已经没什么直接关系,也许就在不久之后的某一天开始所有的电脑全部使用UEFI单一启动,不会再兼容传统BIOS。
  再说一下关于BIOS+MBR,从接触电脑十几年来,一直都是用的这种组合,直至今日,不敢说对此有多么了解,最起码在日常操作中基本无障碍了。比如:Windows各个版本甚至再+Linux+Mac的混合安装、引导驾轻就熟,任意顺序安装,任意创建、修复引导,多硬盘混合引导,分区表损坏、主引导记录损坏的修复、重建等等,都不存在任何问题。
  而从一接触UEFI+GPT,总是感觉这个东西无法理解。甚至一筹莫展,哪怕是引导损坏这样之前在BIOS+MBR里不叫事的事情,面对UEFI+GPT都束手无策,查了很多资料,除了重装系统,在国内网络范围内,全网竟然找不到任何一篇具体解决问题的文章。现在回想,很长一段时间内都无法理解这些问题,很多莫名其妙的所谓专业文章的误导在其中作了重要贡献。
  后来索性抛开所有的那些乱七八糟的观点、定义,按照自己的想法去摸索,经过近十天,几十遍重装系统,反复的假设、实验,总算是对UEFI+GPT有了一个总体的概念和较为清晰的认识,最关键的在于能够随意进行UEFI+GPT的安装和引导修复了,这是最重要的,个人观点一直都是,必须从实际出发,即使了解的再多,什么问题也解决不了,纸上谈兵,一切等于零。可以毫不夸张的说,至少目前为止,本文是全网络唯一一篇对UEFI+GPT进行实用性介绍和以及解决实际问题的文章。
  个人体会,实际上只要对BIOS+MBR有一定的了解和操作能力,完全可以继续用BIOS+MBR的思路去考虑UEFI+GPT的问题,这样的话很多事情都会迎刃而解,因为两者之间在实际应用和操作上没有本质区别,而不是像某些专业文章所渲染那么高深莫测,并且尽其能事的竭力描述两者之间的重大区别,使UEFI+GPT理解起来更加困难,在一定程度上来讲,这就是一种因循误导。(当然也不排除某些写此类文章的人其实自己对这个东西也一知半解或者根本就不明白,除了千篇一律的抄袭、转载,最多也只能翻来覆去的照搬官方术语,堆砌定义和理论,完全谈不上有自己的观点或者看法,更没有什么具体的解决方案。)
  
关于UEFI的优越特性,比如可操作性、安全性、兼容性、可扩展性之类的问题,在此不再多说,这是开发人员的事情,和我没有关系。仅仅总结几点两者在系统安装及引导方式方面一些异同,帮助同样有此困惑的人理解这个东西:
  【重要提示:
  本文旨在“授之以渔”,力求融会贯通,知其然更知其所以然。因此本文既不包含网络上“技术文章八股文”式的定义、理论的堆砌和释义,更不是“小白必备”的傻瓜式手把手操作教程,如果对以上两种千篇一律的所谓“技术文章”有偏执的爱好,请务必及时停止浏览,另寻其好。】
  不同点:
  1.BIOS+MBR安装系统要求硬盘只要存在非隐藏、活动的主分区就可以了;而UEFI+GPT要求硬盘上除了存在ESP分区,还必须存在至少一个主分区
  2.BIOS+MBR一旦系统安装好之后,如果系统引导文件在单独的分区,此分区可以在操作系统中可见,也可以设置此分区为隐藏,系统都可以正常启动;而UEFI+GPT系统引导文件所在的ESP分区在操作系统中为不可见
  3.BIOS+MBR启动要求的活动的主分区不是唯一固定的,可以任意设定某一分区为活动的主分区,然后MBR就可以通过分区表指引操作系统从此分区启动,也就是说,可以在任意分区(主分区无论是否活动或者扩展分区)安装操作系统,只要存在任意的活动主分区,就可以从此分区启动操作系统;而UEFI+GPT只能把系统引导文件放置在ESP分区
  4.BIOS+MBR的系统引导文件可以和系统文件在同一分区的根目录,也可以不与系统文件同一分区,只要系统引导文件所在分区为活动的主分区即可启动操作系统;而UEFI+GPT只能把系统引导文件放置在ESP分区,且操作系统必须在另外的主分区,也就是说,UEFI+GPT强制要求系统启动文件与系统文件必须分离,不在同一分区。
  相同点:
  
1.BIOS+MBR和UEFI+GPT的系统引导文件都可以放置在单独的分区,这一点在上面的第4点里已经说的很清楚
  2.BIOS+MBR的系统引导文件所在的活动主分区位置不是固定的,可以随意设置任意分区满足此条件,UEFI+GPT的ESP的位置也是可以随意设置的,在硬盘起始位置、中间位置、末尾,都可以,只要分区属性和其中的引导文件正确,就可以引导启动操作系统(参考文中附图)
  3.BIOS+MBR的系统引导文件所在的分区和UEFI+GPT的ESP分区都可以分配任意大小,而不是ESP必须100M
  4.BIOS+MBR安装系统所需的非隐藏、活动主分区和UEFI+GPT的系统的ESP分区,都可以同时设置多个,但是即使有多个相同属性的分区,系统安装时安装程序都是自动写入第一个,启动时也都是从第一个启动(参考文中附图)
  补充:
  1.使用BIOS+MBR和UEFI+GPT安装的系统文件是一模一样的,唯一的区别只是引导方式的不同,因此使用GHOST手动备份的系统,MBR和GPT可以任意交叉还原,只要做好引导修复就没有任何问题
  2.GHOST始终是系统备份还原神器,只要熟练掌握GHOST手动操作,至少目前为止Windows系统的范围之内,无论什么版本,无论MBR还是GPT,都可以随意备份还原。
  3.MBR与GPT分区互转的话,与“删除所有分区”以及“全盘格式化”没有任何必然联系,你格式化一万遍硬盘也还是原来的分区结构,只有通过转换操作才可以到另一种,而这个转换操作与“删除所有分区”以及“全盘格式化”没什么关系。
  着重强调一点:
  以上所有经验均基于UEFI+GPT的组合,而实际上,UEFI启动(Windows操作系统)的话,并不强制要求硬盘必须为GPT分区,而是只要硬盘上存在EFI启动文件且位于FAT(16/32)分区就可以了(UEFI无法从NTFS分区启动)。因此如果是小于2.2T的硬盘,不必非得转换成GPT也可以引导系统启动。也就是说,UEFI+MBR也是可行的,而GPT硬盘的话,则必须使用UEFI引导,BIOS无法原生引导GPT硬盘上的操作系统(Windows)。
  关于这一点,如果感觉不能理解的话,可以通过以下具体应用来参考。
  注:
  综观网上那些关于UEFI的所谓技术类文章,除了毫无实用价值和实际意义,而且都不同程度的存在各种各样的因循误导,继而被以讹传讹,最终成为一些人坚信不疑的“定律”。这样的误导主要表现为两点:
  1.就是刚刚说的,“UEFI启动系统必须是GPT分区”,这个已经说得很明白了,并且有实例解析,无需再讨论
  2.另外一个就是不知道从什么时候什么人开始谣传的“UEFI的优势就是启动速度快”或者“UEFI启动比传统BIOS启动速度快”。无论UEFI还是GPT,与电脑启动速度没有任何必然联系。或者说,只要硬件环境相同、系统一样,无论UEFI+GPT安装还是BIOS+MBR安装系统,启动速度没有区别
  GPT
  
关于UEFI启动+GPT分区 的一些经验
  MBR
  
关于UEFI启动+GPT分区 的一些经验
  附:部分Windows桌面操作系统对GPT的支持
  数据读写系统启动
  WindowsXP32位不支持GPT不支持GPT
  WindowsXP64位支持GPT不支持GPT
  WindowsVista32位支持GPT不支持GPT
  WindowsVista64位支持GPT支持GPT(需UEFI)
  Windows732位支持GPT不支持GPT
  Windows764位支持GPT支持GPT(需UEFI)
  Windows832位支持GPT不支持GPT
  Windows864位支持GPT支持GPT(需UEFI)
  有了以上的经验总结,就可以轻松解决以下问题了:
  1.UEFI+GPT环境下以任意方式安装操作系统(单系统或者多系统)。这个不必详解了
  2.最主要的问题:UEFI+GPT引导修复操作(EFI引导文件损坏、ESP分区损坏或者丢失之后手动重建EFI引导等等)。这个在此也不做详解,这是这段时间反复研究、实践的最重要成果,因此姑且算是有所保留卖个关子吧,如果是结合以上几点经验总结,对UEFI+GPT有一定的了解之后,应该不难揣摩出办法
  3.如果主板不支持UEFI,使用折中的办法来解决大硬盘使用问题,这个问题以前我也已经多次提过。
  第一种办法就是使用多块硬盘,MBR+GPT组合,MBR硬盘作为启动引导盘。
  小于2.2T的硬盘采用MBR,大于2.2T的硬盘采用GPT,这样的话,解决方案就很灵活了,可以根据以上所列相同点的第1条和补充里面第2条,使用MBR硬盘建一个非隐藏活动主分区,放置系统引导文件,然后将系统安装在MBR硬盘或者GPT硬盘都可以,无论单系统还是多系统都无所谓,两块硬盘交叉安装操作系统也没有任何问题
  强调两点
  1.这样安装的话不限于64位操作系统及XP以上版本,理论上只要是能对GPT硬盘进行读写的系统版本就可以安装。实际测试,32位XP和2003sp1以及之前的版本,电脑事先安装GPT硬盘的情况下,即使系统安装在MBR硬盘,原版系统安装,没有问题,如果是Ghost系统,有可能出现卡死或者蓝屏等问题导致无法顺利安装;先在MBR硬盘安装好系统,然后再装GPT硬盘,无论原版还是Ghost系统都没有问题,只是GPT分区无法识别(解决方法很简单,就是使用2003sp2的disk.sys文件替换到以上系统,就可以完美识别GPT分区,此法简单易操作,且不涉及系统稳定问题,感兴趣的话可以自行搜索)。64位XP安装在MBR硬盘,引导、启动都没有问题,安装在GPT硬盘无法引导。其他系统无论32位还是64位,无论安装在MBR还是GPT,都可以正常引导启动;
  2.BIOS安装系统到GPT硬盘仅限于Ghost方式,Ghost解压完毕后手动修复引导即可。
  第二种办法是单块大于2.2T的硬盘+U盘或者光盘组合
  使用GPT分区结构对硬盘进行分区,是否创建ESP分区都无所谓,因为主板不支持UEFI,创建此分区也没什么用,全凭个人爱好了。然后只能使用Ghost方式解压安装操作系统到硬盘,无论单系统还是多系统,全部安装完毕后,准备一个U盘,大小无所谓,只要不小于十几M就行,使用分区软件设为活动主分区,插在电脑上。进PE(2003sp1以上版本),手动或者使用工具软件修复单系统或者多系统引导,将引导文件写入U盘。然后就可以使用此U盘启动所安装的单系统或者多系统了。此方法实际上就是用U盘代替了第一种方法中的小硬盘而已,没什么本质区别。(这个方法大概10年前我就在电脑论坛发过帖子,当时考虑的是用U盘做一个系统启动钥匙,因为系统引导文件在U盘上,电脑如果不插这个U盘是无法启动的。MBR硬盘系统:Windows864位+Windows732位+WindowsXP32位,GPT硬盘系统:Windows832位+Windows764位+WindowsVista32位,测试环境:杂牌945主板、32M老U盘,测试通过。)
  另外还可以再使用光盘来代替U盘,具体方法说起来更简单,用软件创建一个可启动光盘(创建方法自行查询,会做的不用讲,压根没接触过的,另开帖子专门讲也不一定看得懂),然后将上面U盘里的系统启动文件加进去刻录就可以了。然后使用此光盘启动电脑,效果和U盘是一样的。此方法仅仅作为一种可行性的介绍,不推荐使用,U盘比这个方便的多,没必要多此一举。
  备注:使用此方法,理论上来讲凡是可以对GPT进行读写的系统都适用,但实际上XP以上系统无论32位还是64位操作系统全部测试可行,但是2003sp1及XP64位这些可以读写GPT的系统也不行,这个不知道是由于NT5.X的ntldr引导机制还是其他的什么原因,有知道原因的朋友不吝赐教!
  注:
  1.除专门标明“Ghost系统”,本文所提及的系统安装均为微软原版Windows系统,不包含任何修改版本
  2.非UEFI主板安装原版系统到GPT磁盘,只能采取wim直接解压到分区或者先将系统Ghost化,然后解压安装的办法。
  3.本文所有结论全部为反复多次实际测试结果,不是设想、假设,更不是想象或者幻想以及想当然的以为
  4.本文内容已经多次修订和修改,这是个人的一点经验总结,难免有纰漏以及表达不准确之处,望有相关经验的朋友给予更多帮助
  附注:
  
  鉴于许多的网友浏览本文之后提出如下问题,因此酷站网软特集中在此做如下补充说明,不再过多赘述及一一答复:

  原本很早之前就写了一篇关于预装win8的电脑改其他系统以及安装多系统的文章,虽然经过多次修改,最后还是放在电脑里没有在任何地方发表出来。
  虽然那是亲自实践过多个品牌和型号的预装机器之后总结出来的经验,但是仍然发现在其他品牌和型号的电脑上根本无法通用。而我不可能也没条件遍试所有的机器,因此此篇文章就此搁浅。
  因此我在我的这篇文章里面没有涉及任何预装win8系统的电脑改系统的问题。
  这是我的一贯态度,我所写的都是我亲身实践、确实可行、不需讨论的,在我这里不可能出现“我觉得”“我认为”“应该是”这类想象或者幻想的东西。
  (在此还是要特别强调几点:
  1.这个意思并不是说“预装win8的电脑改其他系统以及安装多系统”是完全不可行的,只是目前为止还没找到通用的方法。也就是说可能在某个品牌和型号的电脑上按照某种方法安装非常顺利,但是同样的方法用在其他品牌和型号的电脑上可能完全不适用。
  2.不管是用何种方法,比如Ghost、PE、nt6 hdd installer、快捷安装器、直接setup、在vhd装、全盘转换成mbr、手动写引导等等方法,将其他系统装进硬盘,只要通过这块主板启动,就要面对安装失败的问题,因此制约因素在主板上,并不在于采用什么方式安装系统

内容加载中