八亿电脑网
游戏盒子
当前位置: 首页 > 八亿电脑 > 安装系统 >

UEFI安装Win8/Win7系统多种情况分析

时间:2014-04-13 09:10来源:Win8e 作者:Win8e 点击:
游戏盒子

Thinkpad L440这款I5独显4G500G预装WIN8中文版64位的商务本公司要求立马换成WIN7 32位,本来以为64位Win8系统更好,但是针对我们公司的一些客户端软件大都是32位的现状,考虑到工作需要,就换成了32位的WIN8.1专业版

Legacy BIOS+MBR和UEFI+GPT

期间经历了很多学习与坎坷,新笔记本让我重装过无数次,更改过无数遍BIOS,甚至于让Thinkpad技术客服都对我表现出了无奈,目前我的电脑安装的是WIN 8.1 32位专业版,期间用过WIN 8.1 64位专业版,WIN7 64位旗舰版,尝试过安装双系统,各种组合搭配的双系统,基本都已不适合或者失败告终

基于这三四天的自我研究,整理了以下内容,说的已经非常详细了,对于新入手电脑并对系统有任何问题的朋友尽可参照我这篇经验贴。

关于MBR、GPT、ESP、MSR、EFI、UEFI和WIN8中SECURE BOOT的基础知识:(也可查看此文章

1.MBR分区表:Master Boot Record,即硬盘主引导记录分区表,只支持容量在 2.1TB 以下的硬盘,超过2.1TB的硬盘只能管理2.1TB,最多只支持4个主分区或三个主分区和一个扩展分区,扩展分区下可以有多个逻辑分区。

2. GPT分区表:GPT,全局唯一标识分区表(GUID Partition Table),与MBR最大4个分区表项的限制相比,GPT对分区数量没有限制,但Windows最大仅支持128个GPT分区,GPT可管理硬盘大小达到了18EB。只有基于UEFI平台的主板才支持GPT分区引导启动。

MBR和GPT是磁盘分区架构,而下面的ESP和MSR是分区名称,用GPT分区架构就会产生ESP分区,像联想系列的电脑可能还有产生lenovo_recovery一类的分区,这lenovo_recovery分区是预装系统的联想电脑的恢复分区,它一般都是隐藏的,通过磁盘管理或者相应的磁盘工具如diskgenius就可以看到它,如果格式化了就找不到预装系统了,只能去联想服务站啦。

3. ESP分区:EFI system partition,该分区用于采用了EFI BIOS的电脑系统,用来启动操作系统。分区内存放引导管理程序、驱动程序、系统维护工具等。如果电脑采用了EFI系统,或当前磁盘用于在EFI平台上启动操作系统,则应建议ESP分区。

4. MSR分区:即微软保留分区,是GPT磁盘上用于保留空间以备用的分区,例如在将磁盘转换为动态磁盘时需要使用这些分区空间。

5. SECURE BOOT功能:Windows 8中增加了一个新的安全功能,Secure Boot内置于UEFI BIOS中,用来对抗感染MBR、BIOS的恶意软件, Windows 8 缺省将使用Secure Boot,在启动过程中,任何要加载的模块必须签名(强制的),UEFI固件会进行验证,没有签名或者无法验证的,将不会加载。

6.EFI:可扩展固件接口英文名Extensible Firmware Interface 的缩写,是英特尔推出的一种在未来的类PC的电脑系统中替代BIOS的升级方案。

7.UEFI:新型UEFI,全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。UEFI是由EFI1.10为基础发展起来的,它的所有者已不再是Intel,而是一个称作Unified EFI Form的国际组织。可扩展固件接口(Extensible Firmware Interface,EFI)是 Intel 为 PC 固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看做是有近20多年历史的 BIOS 的继任者。UEFI是什么?

以下是WIN8 64位 32位和WIN7 64位 32位分别对于Legacy BIOS+MBR和UEFI+GPT两种启动及分区架构下的安装可行性分析以及操作指南:

PS:关于Legacy BIOS+GPT和UEFI+MBR这两种特例:GPT分区构架必须用UEFI,传统BIOS不可以启动操作系统,而对于UEFI和MBR这种方式很麻烦,工作忙没时间,也没有细细分析尝试。

再说说UEFI+GPT,这种方式是苹果电脑的引导及硬盘分区架构,是相对比较新的技术了,苹果一直用的这种方式,关于这种方式的优点网上的相关资料数不胜数,这里不一一罗列,诚然,虽然现在主流依然是Legacy BIOS+MBR,但UEFI+GPT肯定是未来的发展方向。

WIN8 64位:可以用Legacy BIOS+MBR,UEFI+GPT启动。即支持MBR和GPT的磁盘架构。安装方法基本和win7 64位(WIN7 64位安装方法下面有详细介绍)的一致,可以完全照win7的样子走。只是在第四步启动win8的efi引导文件上略有区别,WIN7 64位安装方法中说了win7官方镜像中是没有efi引导的关键文件bootmgfw.efi文件,win8中是有这个文件(但名字叫做bootx64.efi)的。

win8官方镜像文件解压到FAT32文件系统的U盘后,根目录下有EFI文件夹,里面有BOOT文件夹,此文件夹里的Bootx64.efi文件就是win8系统的EFI引导文件,可以在efi shell中运行它,就可以安装系统了。正常情况下(就是主板内置了efi shell的话)Win8安装到了第二步选择了驱动器后,重启后直接就出现了win8的启动动画了,后面的和常规安装一样

WIN8 32位:支持Legacy BIOS+MBR,也可以支持UEFI+GPT,但是!32bit的win8支持从UEFI启动,但是前提是UEFI必须是32bit的才可以,现在绝大部分的机器都是64bit的UEFI。所以,可以说32位的WIN8基本不可以用UEFI启动。

WIN7 64位:支持Legacy BIOS+MBR,UEFI+GPT,即跟WIN8 64位一样,但是在用UEFI安装中,在选择磁盘时候会有黄色感叹号提示,但是不用管它(WIN7对UEFI的兼容不如WIN8好,毕竟是针对于WIN8做的):

安装教程:

安装前准备:

1、下载好微软官方win7 64位镜像文件;

2、下载好EFI SHELL x64(此文件解压后得到shell.efi文件和apps文件夹)以及bootmgfw.efi文件,一般得下载,以防万一,原因后面解释;

3、 准备个大于等于4G(至少要能放下win7 64位镜像解压出来的全部文件)的U盘,并且格式化为FAT32文件系统。

4、 查看自己机型的主板BIOS厂家版本,确定是否支持UEFI,以及UEFI的相关设置文档资料(只要知道如何打开UEFI新型BIOS,并且会设置EFI shell启动方式,以及win8所支持的security Boot功能如何关闭就行)。本次选择优先USB(U盘)启动。

5、先将下载好的win7 x64官方镜像文件解压到U盘根目录下,同时把下载好的EFI SHELL x64解压到此U盘的根目录下,同时,下载好的bootmgfw.efi文件也放在U盘根目录下。如下图示

其中,黄色荧光圈出的两个apps和shell.efi是从下载好的eif shell x64中解压出来;鼠标选中的bootmgfw.efi适和efi一同下载好的那个文件。

注意:

1、U盘要格式化为FAT32文件系统是因为EFI只支持从FAT32文件系统的USB磁盘引导,不支持现在主流的NTFS文件系统

2、需要下载图中标示的文件(apps文件夹、shell.efi和bootmgfw.efi文件)是因为微软官方的镜像文件中都缺少必要的EFI引导文件,要在UEFI新型BIOS下安装必须得具备上述文件,否则系统无法识别引导安装。注意啦!bootmgfw.efi放到efi/boot下安装,boot文件夹官方镜像没有,可以建一个新的,然后放进去,必须要将bootmgfw.efi文件改为bootx64.efi,文件名必须要改啊!否则启动不起来的!放在U盘根目录下的话,可能行,但是因为我没有试过,所以不敢保证,名字是必须改的!

UEFI BIOS下安装系统有如下几个关键点:

1、打开UEFI BIOS模式(确定主板支持UEFI后再操作)

2、设置主板,让主板启动UEFI新型BIOS。这个因主板不同而不同,下面简单说下我机器的BIOS的设置。同时将打开UEFI模式,可以是Both,也可以是UEFI Only,Both就是包括了UEFI和Legacy BIOS两种。

关闭安全启动(security boot)功能,此功能只支持win8(原因微软只提供了win8的公密钥给主板厂商,win7的没有,开启后BIOS通不过系统验证,进不了系统)。

3、 打开UEFI后重启,当UEFI固件初始化的时候,按F10选择UEFI固件引导设备(比如EFI DVD/CD Drive, EFI USB Drive, or EFI Network Drive)。
注意1:某些主板上可能需要手动指定到引导文件所在位置(比如,选择Boot from file,然后在你的引导设备中浏览引导文件,例如在(\EFI\Boot\BootX64.efi)这个位置)。

注意2:如果你的机器主板打开UEFI模式重启后,没有出现选择UEFI固件引导设备(boot from an EFI drive),那么你需要手动指定让BIOS启动到EFI SHELL,方法就是在主板设置时,选择launch EFI shell from filesystem device,重启后按提示进入efi shell所在目录加载它就行。

注意3:目前绝大多数UEFI主板都内建了EFI shell,如果没有也可以通过U盘等工具加载EFI shell (上文中提到U盘中拷贝efi shell x64就是为了防止主板没有内置EFI shell)。

注意4:efi shell操作不是UEFI下安装系统必须的步骤,所以不要纠结不会efi shell命令,如果要用到的话,只需要会简单的几个简单命令即可!

然后就可以进入到安装界面了,至于进入efi shell然后那些操作,我没用过,所以,以下是参考方法:

启动EFI shell后得到如下界面(以下部分用虚拟机下的界面做示例)

成功启动efi shell后

屏幕上出现命令提示符界面,顶端会显示EFI shell version x.xx[x.x],此处显示EFI shell的版本信息

下面会显示有Device
mapping table,此处开始显示目前连接到机器的存储驱动设备,比如硬盘,光驱,USB存储设备等。

Fs0和blk0等表示各驱动器中不同分区的编号,fs意思为FAT文件系统,上图中的Fs0表示的是我的U盘(格式化为FAT32文件系统的,因为EFI不能识别NTFS文件系统)。

最下面的是shell命令提示符,在光标闪烁出可以输入efi shell命令,回车后执行。

对于efi shell的操作如下:就是找到windows在EFI下安装的引导程序并运行

在shell>提示符后面输入fs0:回车,

进入fs0磁盘此时提示符变成Fs0:\>

接着在Fs0:\>,输入命令ls回车,

得到类似dos命令dir运行后的好几行字符,由于当时没注意截图。

如上图其中蓝色的表示文件夹,绿色的表示可执行文件,在Fs0:\>后输入该文件名称及扩展名,回车就可以执行。

对于有多个FAT32分区的,比如有Fs0,Fs1,Fs2…..等,可以用上面的命令

Fsx:回车分别进入这些分区,再用ls命令显示其中的文件及文件夹,以此找到安装镜像所在的磁盘分区。

在efi shell下运行win7系统的efi启动引导文件

比如,此文件bootmgfw.efi在Fs0的根目录下,可以在执行如下命令:

Shell>Fs0:回车

Fs0:\>bootm***.efi回车

由于官方的win7镜像中没有efi安装启动引导文件,这个文件可以通过到一台安装好64位win7的电脑,打开C盘,在C:\Windows\Boot\EFI\bootmgfw.efi位置找到这个bootmgfw.efi文件拷贝到准备好的安装U盘里即可,此文件可以放在安装U盘的任何目录,只要你能用CD命名找到其所在的文件夹即可,一般的建议直接放在U盘根目录下,方便寻找。

这个文件网上的分享很多,也可以很容易下载。(这里建议将其重命名成bootx64.efi,并且,放在安装U盘的\EFI\Boot\BootX64.efi位置如果U盘根目录下没有EFI文件夹就新建一个,再在其内部新建一个boot文件夹将改名后的bootmgfw.efi放在里面!原因是为了保持和win8一致,免得安装win8时又找不到该efi启动引导文件——这一点我之前提到过啦!)

同时,因为在UEFI下WIN7 64位兼容不如WIN8,所以,会出现以下图片问题
不用管,可以继续装就行,关于这个问题我亲自打电话给thinkpad官方,他们说可能是因为WIN764位并不会那么好的兼容,只是个提醒而已,只是可能,事实证明装上了也没关系的八亿电脑网。

此时就分两种情况:

一种是整个磁盘没有事初始化分配分区和文件系统的,此中情况下,如果对分区什么的不了解,可以选中要安装系统的磁盘直接下一步,windows安装程序会自动建立相关分区,并且安装好系统。

另一种是已有分区的并且是MBR分区的,如果直接选择下一步会出现windows无法安装在MBR磁盘上,此时就需要用使用diskpart磁盘管理工具进行分区转换,如果要安装的这个硬盘比较大的话,也需要手动进行分区。安装前注意备份保存此磁盘上的所有用户文件。(分区一般都不用手动分区,在安装界面就可以分区了,只要是算好容量,比如想分120G,就输入122880MB就可以了)

具体操作如下:在选择磁盘的的界面时按下shift+F10键,得到如下所示

输入diskpart回车,进入diskpart命令提示符界面,输入以下命令:
List disk回车

显示该计算机上的所有磁盘,假设要安装的磁盘为磁盘0

Select disk 0 回车

选中磁盘0,注意0和disk之间有空格

Clean 回车

清除选中磁盘,此命令会删除该磁盘上所有数据包括分区表和磁盘上的各个卷。

Convert gpt回车

此命令是将MBR分区转换成GPT磁盘分区

以下部分是创建EFI系统分区,也就是ESR分区方法,这里我建议到此结束,因为装在UEFI/GPT下的操作系统,会默认分出来这些分区,不用在这里操作,所以以下分区部分可以不用看哈

分区部分:
Create partition efi size=256回车

创建efi系统分区,大小为256M

Assign letter=s回车

分配给此efi分区盘符为S

Format quick fs=FAT32 回车

快速格式化此efi分区,文件系统为FAT32

Create partition msr size=128回车

创建大小为128M的微软保留分区

Create partition primary size=50000回车

创建主分区,大小为50000M

Assign letter=c回车

分配给此分区盘符为C

Format quick fs=NTFS回车

快速格式化此分区,文件系统为NTFS

如果还有剩余可以继续使用Create partition primary size=xxx分区,也可以不用管,等到系统安装好后再用磁盘管理将剩下的未分配的磁盘再分区。

Exit回车

退出diskpart或者直接关闭命令提示符窗口,在安装程序选择安装位置的哪里点击下面的刷新,就可以看到已经分好的区,选择C盘(就是大小为50000M) 的那个先前分好的主分区,下一步就行。后面的就不说了,和往常安装一样。

WIN732位:支持Legacy BIOS+MBR,不支持UEFI+GPT,虽然Win7 可以读写GTP磁盘,但不能在GPT模式的磁盘上安装32位的Win7,仅能安装64位Win7(在UEFI主板上)。而且,已经预装Win8且使用了GPT模式的磁盘上也不能安装64位的Win7,因为这将破坏Win8e.com的引导分区。建议连接第二块硬盘初始化为MBR模式来安装Win7。

以下是关于UEFI boot 和 Legacy boot 区别Legacy BIOS Boot 是如何启动或引导的

当系统首次引导时,或系统被重置时,处理器会执行一个位于已知位置处的代码。这个位置在基本输入 / 输出系统(BIOS) 中。CPU 会调用这个重置向 量来启动一个位于闪存/ROM 中的已知地址处的程序。通常,它执行一个启动自测(POST)来检查机器。最后,它从引导驱动器上的主引导记录(MBR) 加载第一个扇区。

引导程序就位于 MBR 第一个扇区里面。此时引导程序就被装入 RAM 并执行。这个引导加载程序在大小上小 于 512 字节(一个扇区)。BIOS 自检完成之后,将 MBR 的代码读入内存,管理权交给 MBR , MBR 再读取 DPT , 从 DPT (Disk Partition Table,硬盘分区表占据 MBR 扇区的64个字节(偏移01BEH--偏移01FDH))找出硬盘的 所有分区哪一个是激活的主分区。到这里为止,所以系统都是一样的。下面就有区别了。 DPT读完找到主分区之后然后找到这个主分区 的 PBR (Partition Boot Record 分区引导记录),PBR位于激活主分区的第一个扇区。安装不同操作系统的时候 PBR 是会 被改变的, XP 的 PBR 写死的代码是去找 NTLDR 。而 Vista 和 7 的 PBR 里写进的就是去找 Bootmgr 。

这个时候显示器上还没有显示引导管理器的界面。 Bootmgr 被找到之后管理权就交到了 Bootmgr。 Boot Manager 首先 从 BCD 中读取 Boot Manager 菜单的语言版本信息,然后再调用 BOOTMGR 与相应语言的 BOOTMGR.EXE.MUI 组成 相应语言的启动菜单,之后才会在显示器上显示引导管理器,也就是选择多操作系统的那个文字界面。最后,当你选择了相应的操作系统,这里 是 Win7 或 Win8e.com (如果选择 XP, 会转入 XP 的启动流程,找到 XP 的NTLDR 然后启动), Bootmgr 就去寻找系统分区(系 统分区和主分区的概念不是一样的哦)Windows/System32 下的 Winload.exe 加载操作系统内核。

EFI Boot 介绍

EFI 的 全称是可扩展固件接口 (Extensible Firmware Interface),它是 Intel 公司为全新类型的固件体系结构、接口和服务 提出的建议性标准。该标准有两个主要用途:向操作系统的引导程序和某些在计算机初始化时运行的应用程序提供一套标准的运行环境;为操作系统提供一套与固件 通讯的交互协议。

简单说,EFI 是 BIOS 的替代者。它为操作系统和固件提供了更加强大、安全、方便的交互途径。EFI 规范定义的接口,包括数据表包含平台的信息,可在 OS Loader 和 OS 的启动和运行时服务。

EFI 固件提供了几种技术优势

1. 引导能力支持大容量磁盘(超过 2 TIB );

2. 更快的启动;

3. 独立 CPU 的体系结构;

4. CPU 的独立的驱动程序;

5. 灵活的预操作系统环境,包括网络功能;

6. 模块化设计;

EFI 启 动还需要一个特殊的分区表,该分区表指向一个特殊的文件。通常情况下该文件位于\EFI 路径,EFI 启动涉及到一个写入到 firmware 中 的 boot loader, EFI 并不把启动程序放置在 MBR 中,firmware 知道如何读取分区表以及 FAT 的文件格式。EFI 系 统分区是用 FAT 格式格式化的特定分区,其中包含 boot loader, 该 boot loader 是 EFI 可执行程序,可 被 EFI boot manager 载入和运行。

Boot loader 被设置为一个可以通过固件访问的文件。Boot loader 允许用户选择并加载操作系统。所有的 boot manager 都包含一个 EFI 变量,该变量被用来定义固件配置参数。

MBR 与 GPT

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

主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息,是数据信息的重要入口。如果它受到破坏,硬盘上的基本数据结构信息将会丢失,需要用 繁琐的方式试探性的重建数据结构信息后才可能重新访问原先的数据。主引导扇区内的信息是通过分区程序写入的,它是低级格式化的产物,和操作系统没有任何关 系(操作系统是创建在高级格式化的硬盘分区之上,是和一定的文件系统相联系的)。

对于硬盘而言,一个扇区可能的字节数为 128×2n (n=0,1,2,3)。大多情况下,取 n=2,即一个扇区(sector)的大小为 512 字节。

MBR 的限制:

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

2. 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 7、Windows Vista 和 Windows Server 2008 版本上的引导卷。从 Windows Server 2003 SP1 开始,GPT 磁盘也可用作基于 Itanium 的系统上的引导卷。

注意:Windows 仅支持从包含 Unified Extensible Firmware Interface (UEFI) 引导固件的系统上的 GPT 磁盘引导。

GOP 与 VBIOS 的区别

VBIOS 是 计算机图形卡或集成图形控制器的 BIOS,类似系统 BIOS 提供了一组软件所使用的程序函数来访问系统硬件一样,VBIOS 也是提供了一组视频相 关的程序使用的函数访问视频硬件。通常由显卡厂商提供一个二进制 Bin 文件给 ODM 厂商,将其包在系统 BIOS 中。

而 GOP (Graphic Output Protocol) driver 是 EFI 架构下取代传统 VBIOS 黑箱的 EFI driver,它被设计成在操作系统启动之前支持基本需求的图形输出功能。

VBT: Video bios table。 VBT 是一个特别制作的客制化过得特殊 binary 数据块。靠 BMP utility 来编辑。VBT 同样如同 legacy vbios 一 样记录了 detail timing、GPIO Pins、Clock 等显示方面的参数信息。

两者的不同点:Pre-OS boot 时期,EFI 是通过标准的 GOP protocol 来实现显示 output。而 lagacy vbios需要通过 INT10 interrupter 来实现。

哪些系统支持 UEFI 启动?为什么当前我们不能支持 32bit 的 win8 UEFI 启动?

目前我们的 BIOS 的 Build 生成是 x64 模式的,因此 32 位的 Win8 UEFI 是不被支持的。

本篇文章标签: 系统 Win8.1 UEFI
发表评论