(win7 UEFI安装)顺便说说UEFI、GPT和Secure Boot

article/2025/9/14 10:45:54

预装Windows 8的机器换装其他系统,顺便说说UEFIGPTSecure Boot

ref:http://bbs.51cto.com/thread-1067829-1-1.html

    新出的,预装 Windows 8 的机器,基本都是 UEFI+GPT 模式的, Windows XP Windows Server 2003 是不支持这种模式引导启动的,安装 Windows XP Windows Server 2003 需要改为 Legacy+MBR 模式引导启动。
    而且,预装 Windows 8 、基于 UEFI+GPT 模式的机器,是开启了安全启动( Secure Boot )功能的。那么,想给预装 Windows 8 、基于 UEFI+GPT 模式的机器换系统,必须关闭安全启动且改为 Legacy+MBR 模式(安装 Windows 7 仅关闭安全启动即可)。
UEFI+GPT模式的新机器换装其他系统所要做的修改:
    这里要先说说 CSM CSM 全名 Compatibility Support Module 即兼容性支持模块,是 UEFI 的一个特殊模块,对于不支持 UEFI 的系统提供兼容性支持。目前 Windows 8 完全支持 UEFI 64 位的 Windows 7 不完全支持 UEFI ,因此 UEFI BIOS 下安装 Windows 7 必须开启 CSM 。多数电脑能自动或手动开启,少数电脑则强制关闭 CSM
    预装 Windows 8 的品牌机都采用 UEFI BIOS ,下面以预装 Windows 8 品牌机安装 Windows 7 时的 BIOS 设置问题具体说一下:
如果在 UEFI BIOS 环境下,必须保证: 1 、操作系统支持 UEFI 2 、操作系统支持“安全启动”,否则需关闭“安全启动”。因此安装 Windows 7 的话必须: 1 Windows 7 64 位(满足条件 1 ); 2 、在 UEFI BIOS 中禁用“安全启动”(满足条件 2 )。
    注: UEFI 环境下 X64 架构电脑只能装 64 位系统, X86 架构电脑只能装 32 位系统。因此预装 Windows 8 64 位的品牌机( X64 架构、默认 UEFI BIOS )想换成 32 位的 Windows ,只能切换到 Legacy BIOS 模式!
    因为 Windows 7 不完全支持 UEFI ,装 Windows 7 不能把 BIOS 设置为 UEFI ,并且必须禁用 Secure Boot
    设置 EFI BIOS BootMode[UEFI/Legacy] ,设置为 UEFI
                  Launch CSM[Enabled/Disabled] ,设置为 Disabled
                  LaunchCSM[UEFI/Legacy] ,设置为 UEFI
                   (上述设置一般保持默认即可)

    设置兼容模式: CSM Support[Yes/No] ,设置为 Yes
                  OSOptimized Defaults[Enabled/Disabled] ,设置为 Disabled
                  OSOptimized Defaults[Win8 64bit/Others] ,设置为  Others 
                   (上述设置一般和默认相反)
    禁用安全启动: Secure Boot[Enabled/Disabled] ,设置为 Disabled
                   (上述设置一般和默认相反)

    有些电脑强制为 UEFI
则必须将 BIOS 设置为 Legacy 模式才能安装 Windows 7 ,当然这种情况下需要把硬盘重新分区并改为 MBR 分区方案
    设置 EFI BIOS BootMode[UEFI/Legacy] ,设置为  Legacy 
                  LaunchCSM[Enabled/Disabled] ,设置为  Enabled 
                  LaunchCSM[UEFI/Legacy] ,设置为  Legacy 
                   (上述设置一般和默认相反)
    设置兼容模式: CSM Support[Yes/No] ,设置为 Yes
                  OSOptimized Defaults[Enabled/Disabled] ,设置为 Disabled
                  OSOptimized Defaults[Win8 64bit/Others] ,设置为  Others 
                   (上述设置一般和默认相反或无需设置)

    禁用安全启动: Secure Boot[Enabled/Disabled] ,设置为 Disabled
                   (上述设置一般和默认相反或无需设置

    ——具体情况应具体分析,有的电脑将BIOS Mode[UEFI Only/Legacy Support]设置为 Legacy Support ,而把Boot Priority设置为UEFI First也表示“UEFI模式下开启了CSM”。我只安装过几台华硕、联想和ThinkPad,在其他预装Windows 8的电脑上成功安装了其他系统的朋友,欢迎共享你的BIOS设置,若你有其他的见解或发现上述设置中的Bug,欢迎相互交流。
GPT”和“MBR”相互转换:
    微软规定:必须“UEFI+GPT”或“Legacy+MBR!虽然在实验测试环境中“UEFI+MBR”仍可正常启动系统,但在生产环境中还是推荐以微软规定的方式进行安装,避免带来麻烦!微软做此限制必然不是平白无故的!
    使用我们常用的DiskGenius即可进行转换:


UEFI下安装Windows系统
    强烈建议使用 Windows 原版光盘安装系统,原版系统镜像包含有 UEFI 引导所必须的文件,而使用其他安装方式,需要手动提取原版光盘镜像相关文件。
    安装方式:
    1 、直接用微软原版光盘引导安装,这个不用多说,是最简单的办法,和平常的“ Legacy+MBR ”模式下的安装方式一样,安装程序会自动识别“ UEFI+GPT ”模式并调用相关引导所必须的文件,在界面及安装选项上没啥区别,在硬盘分区时,系统也会自动做出相应的分区。
    2 、用高版本的 UltraISO 将原版光盘镜像写入 U 盘安装,目前新版的 UltraISO 能够识别原版光盘镜像中 UEFI 引导所必须的文件并能将其写入 U 盘。
    3 、手动提取原版光盘镜像中 UEFI 引导所必须的文件到 U 盘安装,具体步骤:
    ( 1 )将 U 盘格式化成 FAT32 格式;
    ( 2 )在 U 盘建立文件夹 \boot ,拷入系统镜像相对应的 boot.sdi 文件;
    ( 3 )在 U 盘建立文件夹 \efi\microsoft\boot ,拷入系统镜像相对应的 bcd 文件,在 U 盘建立文件夹 \efi\boot ,拷入系统镜像相对应的 bootx64.efi   文件;
    ( 4 )在 U 盘建立文件夹 \sources ,拷入系统镜像相对应的 boot.wim install.wim  文件;
    ( 5 )启动机子,选择( UEFI U 盘启动,就进入系统安装进程……
简单说说UEFIGPTSecure Boot
UEFI:
    传统 BIOS 的全称是 BasicInput Output System ,译为“基本输入输出系统”,是电脑主板 ROM 芯片上的一段代码。按下电源后,计算机会进行加电自检(检测硬件是否正常)、初始化硬件(使硬件按照 PC 的架构工作)、启动 OS Loader 加载操作系统(由 BIOS 读取 MBR 上的 Loader )、向系统及软件提供服务、硬件中断处理(硬件出现错误指令 -> 中断一下 -> BIOS 提供正确执行结果)。
    这里澄清一下 BIOS CMOS 的概念,上文说到 BIOS 是一段“代码”,当属软件范畴;而 CMOS Complementary Metal Oxide Semiconductor )译为“互补金属氧化物半导体”,是主板上的一块 RAM 芯片,当属硬件范畴, CMOS 中存放系统参数。通常有“ BIOS 设置、 CMOS 设置”等不确切的说法,准确的说法应是:通过 BIOS 设置程序对 CMOS 参数进行设置。
    新一代的电脑主板采用 UEFI BIOS EFI Extensible Firmware Interfaces ,译为可扩展固件接口)的概念最早由 Intel 提出。
    UEFI 全名“统一的可扩展固件接口”,相对于“ Legacy BIOS ”(传统 BIOS  )有着更多的优势: 模块化设计   、图形化的界面、更强的兼容性和拓展性。
    Legacy BIOS 会读取磁盘的主引导记录“ MBR ”,进而读取“启动文件”最后加载 Windows 系统。而 UEFI BIOS 会自动读取“ FAT 格式的特定分区(通常是 ESP 分区)”下的可执行程序( efi 格式), efi 文件会查找 Windows BCD 启动菜单进而进入系统。
    在 UEFI BIOS 下,我们可以手工选择 FAT 分区下的“ efi 文件”然后进行相关的操作(类似于 DOS 工具箱),当然也可以手工选择 Windows 系统启动所需要的 efi 文件,从而进入系统。
    注: EFI 在使用时通常与 UEFI 是同义词。 EFI 指可扩展固件接口,也即 UEFI  的前身。
GPT
    GPT 全名 Globally Unique Identifier Partition Table Format GUID 分区表),是源于 EFI (可扩展固件接口)使用的磁盘分区架构。
    MBR 磁盘最多允许存在 4 个主分区,并且支持磁盘最大容量为 2TB ;而 GPT 磁盘最多可允许存在 128 个主分区(在 Windows 系统中),支持磁盘的最大容量为 18EB 1EB=1024PB=1024*1024TB ,即: 1048576TB )。每个 GPT 磁盘都存在 Protective MBR ,用来防止不能识别 GPT 分区的磁盘管理工具的破坏。
    对于 Windows 系统来说, GPT 分区方案中有两个特殊的分区: MSR 分区、 ESP 分区,前面提到的 Protective MBR ,在 Windows 系统中即为 MSR 分区,是必须存在的一个分区; ESP 分区(非必须存在),是采用 UEFI BIOS 电脑的系统中,存放启动文件的分区(当然,还有其他文件)。
    GPT “优缺点”并存。优点:支持更大的硬盘、更多的分区、单个分区大小更大、每个分区存在 GUID 、分区表自带备份等。当然, GUID 分区表也存在着不足:
部分Windows桌面操作系统对GPT的支持

 
    硬件的发展速度总是令人吃惊的。几个 TB 的硬盘、 EFI BIOS 的电脑将会普及, GUID 分区方案终将成为主流。
Secure Boot
    Secure Boot “安全启动”, 前面提到, 预装 Windows 8 、基于 UEFI+GPT 模式的机器,是开启了安全启动( Secure Boot )功能的。其实“安全启动”并不是 Windows 8 的一项功能,为什么会将 Windows 8 和“安全启动”联系到一起呢?因为预装 Windows8 的品牌电脑都采用 UEFI BIOS ,大都含有“安全启动”!那什么是“安全启动”呢?
    “安全启动”是一项 UEFI 协议,在启动操作系统之前只允许加载“已签名并获得认证”的代码或程序。两个数据库“签名数据库”和“吊销的签名数据库”中列出了 UEFI 程序,类似于“白名单”和“黑名单”!系统商(如:微软)可通过“密钥加密密码数据库”中的签署密钥来更新“白名单”和“黑名单”。
    微软通过数据库中的签名程序签署了 Windows8 系统的“ OS Loader ”。 OEM 厂商将上述三个数据库存储到主板的“ NV-RAM ”中,从而达到使用“安全启动”来启动 Windows 8 。这也是为什么预装 Windows 8 的品牌机默认情况下无法安装其他系统的缘故,需要在“ UEFI BIOS ”中禁用“安全启动”。
    Legacy BIOS 环境下,操作系统启动前可加载任意的“ OS Loader ”:
 
    UEFI BIOS 环境下,操作系统启动前只能加载得到认证的“ OS Loader ”:
 
Windows
UEFI环境下是如何启动的:
    UEFI 启动 Windows 必须有一个 FAT 分区(通常叫做 EFI  系统分区),这个分区中存在引导 Windows 的文件。开机后自动查找 FAT 分区下的“ efi\Microsoft\boot\bootmgfw.efi ”文件,然后查找同一分区下的“ efi\Microsoft\Boot\BCD ”,然后加载“系统盘 :\windows\system32\winload.efi ”,这样就进入了 Windows
    bootmgfw.efi 文件我们也可以在 EFI SHELL 下手动运行。此外,在 EFI SHELL 下手动运行 FAT 分区的“ efi\boot\bootia32.efi ”或“ efi\boot\bootx64.efi ”也可以进入 Windows 。在 UEFI BIOS 中我们还可以将 efi 文件设置为启动项、默认启动项。  
    上述的 bootia32.efi bootx64.efi 分别为 32 位、 64 位的 UEFI 引导 Windows 所需要的文件。二者一一对应,因此在 64 位的 UEFI 环境下是无法安装 32 位系统的。
    上面介绍 UEFI 启动 Windows 的一个条件是: FAT 分区存在相关文件。并没有说需要 GPT 磁盘,通常将“ UEFI+GPT ”联系起来的一个重要的原因是,“ UEFI+MBR ”环境下安装 Windows 会有提示:基于 EFI 的系统只能安装到 GPT 磁盘上(微软的限制)!
    现在很多主板都是可以将“ UEFI BIOS ”和“ Legacy BIOS ”相互切换的,因此“ UEFI+MBR ”模式的解决思路一:先切换到 Legacy BIOS ,安装系统完毕后再切换到 UEFI BIOS ,自己新建一个 FAT 分区并复制相关文件到此分区(也可用 bcdboot 命令行工具)。解决思路二:进入 PE (支持 UEFI ),将 Windows 安装到硬盘,然后自己新建一个  FAT 分区并复制相关文件到此分区(也可用 bcdboot 命令行工具)。
    ——上面的叙述只是为了更进一步了解 UEFI 启动 Windows 的原理,微软作此限制肯定有原因,因此不建议在实体机操作。
实验、测试:打造UEFI虚拟机以及EFISHELL介绍
    含 UEFI BIOS 的电脑并不是所有网友都有,为了让大家都能体验 UEFI ,现在将 VMware 8.0 以上的版本)打造成“ UEFI 虚拟机”:新建虚拟机后,在虚拟机目录下找到后缀为 vmx 的文件,使用记事本打开后,添加一行文字:
firmware = "efi" 
    这样你就相当于具备了一台包含 UEFI BIOS 的电脑。
    下面介绍一下 EFISHELL :一般的电脑 UEFI BIOS 中会自带 EFI SHELL ,为了便于理解可以将 EFI SHELL DOS 相类比: EFI SHELL 其实就是在 UEFI 环境中的可执行程序( efi 格式)。
    虚拟机的 UEFI BIOS 虽然没有进入 EFISHELL 的选项,但是我们可以把 EFI SHELL 放到其他地方(如:优盘),然后在 UEFI 环境中运行 EFI SHELL 这个程序!
    准备条件:
    1 EFI SHELL Shell_2.3.0_X64.rar (需解压)  Shell_2.3.0_X64.rar (205.5 KB) 
    2 UEFI 环境下的应用程序: UEFI Apps.rar (需解压)  UEFI Apps.rar (735.9 KB) 
    3 、一个 FAT 格式的 U
    操作步骤:
    1 、新建虚拟机(例如: Windows 8 X64 ),然后将“优盘”添加到虚拟机中。
    2 、事先将解压好的“ Shell.efi ”放到 U 盘的根目录,运行虚拟机,按下“ ESC ”键进入虚拟机的“ UEFI BIOS ”。
 
    3 、点击“ Boot Maintenance Manager ”进入,如下图所示:
 
    4 、点击“ Boot from a file ”进入下图:
 
    5 、选择优盘后,选择根目录下的“ Shell.efi ”即可进入“ EFI SHELL ”。
 
 
    6 、上图即为“ EFI SHELL ”,类似于“ DOS 窗口”,当然也有它自己的命令:
       输入 fs1:  表示进入 fs1 磁盘
       输入 ls 表示显示该目录下的所有文件
       输入 cd App  表示进入 App 文件夹
       再次输入 ls 列出 App 目录下的所有文件
 
    运行某个程序,直接输入程序的名称即可。
    是不是和 DOS 中操作差不多? UEFI 更像是一个微型操作系统。

http://chatgpt.dhexx.cn/article/ufG9apQ6.shtml

相关文章

Windows--UEFI引导安装Win10

Windows–UEFI引导安装Win10 本文主要讲述如何使用普通U盘 UEFI引导 启动盘安装Windows系统 注意此方法只能安装于 GPT(GUID) 分区表的硬盘 查看硬盘分区表类型 装系统之前请务必查看自己所要安装操作系统的分区所在的硬盘分区表类型。 举个例子:某电脑现在有一…

Windows安装教程(Microsoft官方工具安装+PE安装教程,以及GPT分区、UEFI模式安装win7教程)

本文主要介绍两种Windows安装方法、以及如何在GPT分区、UEFI模式中安装win7 两种方法各有优缺点。 第一种方便,PE里面很多功能,你的电脑出了什么毛病基本上都能通过PE解决。而且能安装各个版本的windows。但是过程繁琐,而且动手能力强。不适…

UEFI+GPT引导实践篇 (UEFI引导安装64位Win7/Win8)

UEFIGPT引导实践篇(一):切换到UEFI启动,准备安装介质 http://www.iruanmi.com/get-ready-for-installing/ http://www.iruanmi.com/install-win7-or-win8-on-uefi-platform/ 如果只单纯比较UEFI引导和BIOS引导,那么毫…

服务器 uefi 安装win7系统,uefi安装win7_efi引导gpt安装win7教程

现在大多电脑都支持uefi的启动方式,当然uefi也可以安装win7,这不,前几天有一个小伙伴来问小编,uefi引导启动教程,这可难不倒我,接下来小编整合了一篇关于uefi安装win7,efi引导gpt安装win7教程的…

关于uefi启动的笔记本安装win7,win10,Ubuntu三系统

1、准备: 2个U盘,1台电脑。 2、注意事项: 1、由于安装系统需要进行格式化操作,安装之前需要做好备份工作 。 2、下载U盘启动工具,例如微PE等,进行启动盘的制作 3、准备好win7,win10&#xff0c…

计算机是uefi启动 不能装win7,UEFI模式安装Win7系统方法_Win7 Uefi下安装详细教程

相信使用过Win8/win10系统的朋友已经知道UEFI这种新型的启动模式了,启动快、支持更大的硬盘都是它的优点,而Win8和Win10都是原生支持UEFI模式的,那么Win7系统呢?能不能在UEFI模式下安装呢?当然这是可行的! 注意事项: 1、必须使用Win7 64位系统,32位不能支持UEFI; 2、系…

大神教你uefi启动安装win7操作方法

在社会主义现代化的当今时代,uefi启动安装win7早已经不是什么高手之间的秘密,uefi安装win7早已经褪下了神秘的光环。很多电脑新手都学会了uefi安装win7,大家看了一定好气哦。但是不要灰心,今天IT视窗小编就来教你uefi启动安装win7…

UEFI+GPT+USB3.0+SSD 安装win7(X64)

UEFIGPTUSB3.0SSD 安装win7(X64) PS:第四部分——对于安装过程中提示“找不到任何设备驱动程序”的解决方案。这种错误提示一般出现在使用USB3.0进行U盘安装win7的过程中。 一、预备基础知识: 1. UEFI全称“统一的可扩展固件…

主板设置UEFI模式下安装Windows 7操作系统解决方法

主板设置UEFI模式下安装Windows 7操作系统解决方法 2013-12-14 simplelam 文章来源 阅 215383 转 289 转藏到我的图书馆 微信 分享: 这方面的问题越来越普遍,所以给大家分享下此方法。   UEFI 模式下安装Windows 7操作系统(暂不涉及…

基于C语言的链表的创建

为了对链表有一些了解,这里以单链表进行对其了解 首先,通过图形来简单了解和感受一下链表的基本原理: 结点是包括数据域和指针域的。或许很多人会说为什么要头结点,可不可以不要?答案是可以的 个人建议最好用上&…

C语言中的链表

目录 一、链表概述 二、链表操作 1、动态创建链表 (1)malloc函数 (2)calloc函数 (3)free函数 2、链表的插入操作 3、链表的删除操作补充内容 三、链表完整代码实现 一、链表概述 链表是一种常见的…

C语言链表详解附实例

C语言链表详解附实例 什么是链表 链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。链表和数组比较,不用事先确定存储空间,而是根据需要开辟内存单元。 下图1是最简单的一种链表(单向链表)的结构 第 0 个结…

C语言链表(超详细)

前言:之前学习链表的时候总会遇到一些问题 也看了好多人的文章感觉有些不是太实用 然后后来也是自己摸索才大概写出来的. 在真正的开发中会把链表的增删改查写到函数里 但是删除有点麻烦 找了很多都是删除第几个 而不是删除某个值对应的节点 让我很难受 所以想写一些链表的…

一步一步教你从零开始写C语言链表

完整源码获取: 微信关注:嵌入式云IOT技术圈 发送"链表"即可获取。 为什么要学习链表? 链表主要有以下几大特性: 1、解决数组无法存储多种数据类型的问题。 2、解决数组中,元素个数无法改变的限制(C99的变长数组,C++也有变长数组可以实现)。 3、数组移动元…

C语言 | 链表概述

C语言链表概述 链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构,是根据需要开辟内存单元。 链表有一个“头指针”变量,它存放一个地址,该地址指向一个元素。 链表中每一个元素称为“结点”,每个结点都应包括两…

C语言链表详解(通俗易懂,超详细)

前言:想要很好的学好链表,我们首先要了解链表的优缺点(面试) 优点:1.插入 删除 不需移动其他元素, 只需改变指针;2:链表各个节点在内存中空间不要求连续!空间利用率高 缺点:1.访问数组元素效率低&#xf…

c语言链表详解(超详细)

链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除&…

【C语言】 链表 超详细解析

目录 一:静态存储和动态存储 二:存储类别 三:malloc函数 四: free函数 五:内存初始化函数memset 六:calloc函数 七:realloc函数 八:线性表 九:链式存储结构 …

C语言链表

C语言链表 链表的概念及结构概念结构 链表的分类单链表的实现(无头)双向链表的实现总结:链表和顺序表的区别 链表的概念及结构 概念 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的…

数据结构——C语言实现链表

目录 一. 链表的概念 二. 单链表的增删查改 1.单链表的定义 2.单链表的头插与头删 3.单链表的尾插与尾删 4.单链表的中间插入删除 5.单链表的查找 三. 带头循环双向链表的增删查改 1.带头循环双向链表的定义 2.带头循环双向链表的头插与头删 3.带头循环双向链表的尾…