zoukankan      html  css  js  c++  java
  • UEFI启动视频详解:启动分析+N项操作实例

    efi bios 一篇介绍的比较详细的文章,

    from:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=299643&fromuid=396698

    本帖最后由 2011hiboy 于 2014-8-20 21:21 编辑

    =============================================================
    ※※※※最给力的视频解说※※※※


    2011hiboy全部共享资料:立刻去  提取码 0da0

    ==============================
    感谢那些回帖增加人气的朋友,已出视频详解.....
    ==============================================================


    这是本帖全部内容:
    Y:  视频解说
    A~F:1

    G~I:2

    Y:※※※※最给力的视频解说※※※※
    【视频】手动/自动修复UEFI引导视频教程+【完美版】挂载ESP分区的批处理
    A:什么是UEFI,其含义   
    B:UEFI模块包含的文件逐个分析及其引导流程+ESP分区的本质   
    C:判断自己的机器是X64(64 bit)构架还是IA32(32 bit)的构架(更专业的说法)+ 关于UEFI启动与系统匹配(系统选择)的概述
    D:给传统BIOS下的合盘添加UEFI模块支持+制作BIOS / UEFI(IA32+X64)三支持启动启ISO超详细解说&文件提供!!
    E:
    给Win8 x86;Win8 x64 的PE添加UEFI启动支持

    F:给VMware虚拟机开启UEFI,当没有物理硬件支持的情况下,不错的选择哦。
    G:UEFI+GPT系统安装方法+PE开机自动给ESP分区分配盘符
    H:MBR/GPT磁盘转换
    I:EFI SHELL 说明及下载(0413新增光盘版EFI Shell




    ==================================================================
    Y:※※※※最给力的视频解说※※※※
    【视频】手动/自动修复UEFI引导视频教程+【完美版】挂载ESP分区的批处理
    A:

    什么是UEFI,其含义 点击阅读



    B:

    UEFI模块包含的文件逐个分析及其引导流程


         ★ -----------------对于UEFI启动本身来说,这些文件是必需的
          ----------------- 对于传统BIOS引导光盘来说,这些文件是制作时必需的
          
    ----------------- 对于传统BIOS引导光盘来说,这些文件是引导时必需的
            -----------------对于UEFI引导光盘来说,这些文件是制作时必需的
            -----------------对于UEFI引导光盘来说,这些文件是引导时必需的
    UEFI_MSPE-------------在磁盘介质上,通过UEFI启动 Windows PE 系统,这些文件是必需的
    UEFI_MSHD
    -------------在磁盘介质上,通过UEFI启动 Windows 硬盘系统,这些文件是必需的


    ==================================================
    UEFI 全中文版支持模块 UEFI_Support.PMF D部分下载
    ==================================================
    UEFI_Support.PMF 用Diskgenius 4.20及以上恢复到磁盘时,这些文件意义和用途:

    (本说明用法:你需要查询某个文件的用处,直接找那个文件;或者你需要做什么,从上方认识标示,从本说明标示入手)

    根目录
    ├─boot --------------------------------启动文件目录   UEFI_MSPE +
    │  │  BCD --------------------------------传统BIOS启动所需BCD菜单文件  
    │  │  boot.sdi --------------------------------UEFI/BIOS启动都需要    UEFI_MSPE + +
    │  ├─fonts --------------------------------传统BIOS启动字体文件目录(不影响启动)  
    │  │      chs_boot.ttf
    │  │      wgl4_boot.ttf
    │  └─zh-cn --------------------------------传统BIOS启动中文显示用的目录(不影响启动)
    │          bootmgr.exe.mui
    ├─efi--------------------------------UEFI启动目录   +
    UEFI_MSPE + UEFI_MSHD  +
    │  ├─zh-cn --------------------------------UEFI启动中文显示用的目录(不影响启动)
    │  │      bootia32.efi.mui
    │  │      bootx64.efi.mui
    │  ├─boot--------------------------------UEFI启动文件目录   + UEFI_MSPE + UEFI_MSHD +
    │  │      bootia32.efi--------------------------------IA32构架的启动文件
       + UEFI_MSPE + UEFI_MSHD +
    │  │      bootx64.efi--------------------------------X64构架的启动文件   + UEFI_MSPE + UEFI_MSHD +
    │  └─microsoft-------------------------------UEFI启动目录   UEFI_MSPE + UEFI_MSHD +
    │           ├─fonts --------------------------------UEFI启动中文字体文件目录(不影响启动)  
    │           │      chs_boot.ttf
    │           │      wgl4_boot.ttf
    │           └─boot---------------------------------UEFI启动菜单目录
       UEFI_MSPE + UEFI_MSHD +
    │                   BCD-------------------------------UEFI启动菜单   UEFI_MSPE + UEFI_MSHD +

    │─MBR.bin ------------------------制作传统BIOS下的启动光盘上时的引导记录,负责引导Bootmgr,适合x64+x86   
    │─bootmgr -----------------------传统BIOS下的启动光盘的引导文件,适合x64+x86  

    │─UEFI_ALL.BIN-----------------制作UEFi启动光盘上时的引导记录(已处理),可以同时支持引导IA32+X64构架,直接读取efimicrosoftootcd  
    │─winpe_x86.wim --------------------------------适合IA32构架的winPE,目前仅有Win8 x86  UEFI_MSPE ++
    └─winpe_x64.wim --------------------------------适合X64构架的winPE,目前有Win7/8 x64   UEFI_MSPE+ +




    然后来说UEFI启动 计算机默认引导的简要流程(引导windows为例):

    ---->>电脑开机(假设已经设置了UEFI为打开)

    ---->>启动模块根据启动项顺序依次查找所有
    (FAT分区):efiootootia32.efi(IA32构架的启动文件)
    或者
    (FAT分区):efiootootx64.efi(X64构架的启动文件)

    ---->>加载efimicrosoftBCD 启动菜单文件

    ---->>按照BCD里面的内容进一步启动,整个过程和传统的BIOS相比,没有引导记录的参与,不错不错

    提示:
    以上的bootia32.efi,bootx64.efi 都是一个efi应用,不同的是使用在IA32或者X64构架(详见C部分)下。你可以选择任意一个efi应用文件,然后改名替代上面的文件。

    这里加载efimicrosoftBCD 启动菜单文件是因为当前的efi文件的内容是微软写的,efi内容下一步就指向efimicrosoftBCD

    我们当然可以创建一个abc.efi,然后改名,bootx64.efi 或者bootia32.efi,让UEFI开机的时候加载,
    这时候你可以让你自己写的abc.efi指向

    某个目录的某个CFG文件这都随你愿意,从而实现调用......


    为了证实这一点,我下载了EFI SHELL然后将Shell.efi改名为bootx64.efi,再在X64构架的物理计算机和虚拟机上,进行启动...
    得出的结论是正确的。这是我做好的EFI SHELL文件请到二楼I模块看说明及下载使用.。

    关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解..
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=303679&fromuid=396698


    ESP分区的本质


    ESP:
    EFI System Partition
    它是当我们首次为GPT磁盘分区时会提示建立的,对于UEFI启动来说,ESP分区不是必需的,但是一个FAT分区确是必须的


    ESP的本质是一个FAT分区,只不过分区程序在给GPT磁盘分区的时候提醒你建立ESP,并且你同意了,那么程序将建立一个指定大小的FAT分区,
    并且命名为"ESP",当然ESP分区是有一些参数的比如 分区ID 0xEF, GUID是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B } 固定 ,
    但是这些参数并不影响启动,更加类似于一个人的“身份证”然而我们UEFI启动可以不需要“身份证”所以从这里我们可以看出:
    ESP分区可以用任意位置的任意大小的任意FAT分区代替。


    有网友会问,如果存在多个磁盘,每个磁盘上存在多个FAT分区,怎么算:
    这么算:多个磁盘根据设定的磁盘启动顺序依次启动查找FAT分区
                 每个磁盘多个FAT分区,那么谁在前,谁有正确的引导资料就引导谁

    注:以上结论本人已经测试成功,非凭空臆想

    ESP分区不可见:它是一个特殊的FAT分区,当然能够被任何FAT分区代替,它的特殊性在于,
    每次关机重启后,ESP分区的状态
                            总会变成不可见,
    这不是设置隐藏属性,因为ESP没有任何隐藏属性
    ,更加类似于开机过程中系统将ESP的盘符删除了,
                            让人不能在计算机直接访问 (G部分有解决方案)



    注释:

    比如我的电脑是X64构架的(物理决定),我的UEFI启动文件只能是(FAT分区):efiootootx64.efi,

    而如果没有bootx64.efi文件存在的话,UEFI就启动失败,即使存在bootia32.efi,也没用因为那是IA32构架的电脑使用的

    X64构架的电脑使用不了,即使改名,也会因为下一步读取BCD进一步启动因为和winload.efi不匹配而失败。

    同理IA32构架的电脑只能使用bootia32.efi。

    其实换句话说,X64构架的电脑在UEFI模式下应该是无法使用Win8 x86的系统和PE的,IA32在UEFI模式下也同样无法使用Win7/8 x64的系统和PE

    只有在BIOS模式下X64.IA32才可以,任意使用Win7/8 x86/x64.


    联系起以后大内存以及X64的普及,那么以后的电脑基本都是X64的物理构架,IA32的构架将会很少,

    也只有早期的电脑存在IA32构架了吧,至少我的RC510是2011年买的是X64构架.....

    ==================================================
    UEFI 全中文版支持模块 UEFI_Support.PMF D部分下载
    ==================================================



    C:

    判断自己的机器是X64构架还是IA32的构架以及一些名词的解释


    之前是通过启动成功与否来判断的,比较表层,现在为大家做一个深层次的阐述。

    关于X86 X64 32bit 64bit:

    X64  X86 的解释:这两个名词都是针对 CPU (中央处理器)来说的,它们表示CPU的框架结构;
                                 X64是使用X64指令集的CPU,X86是使用X86指令集的CPU;当X86的发展遇到瓶颈的时候
                                 就有了X86-64指令集,Intel CPU 里面叫EM64T,AMD CPU里面叫AMD64;它是基于X86指令集的,是X86指令集的一种扩展,
                                 可以支持64bit的系统,也可以支持32bit的系统。

    64bit 32bit 的解释:bit表示位,64bit就是64位,32bit表示32位;用来表示操作系统;
                                   64bit的操作系统最大支持内存 128GB,32bit的操作系统最大支持内存 4GB

    纯X86的CPU只能运行32bit的系统,纯64位的CPU只能运行64bit的操作系统,


    关于CPU架构:

    IA-32:(X86-32):纯X86的CPU只能运行的32位系统,且只能运行32位
      X64 :  (X86-64):该CPU构架有X86指令集,也有其扩展集X86-64,故可以运行32/64bit 的系统和软件,也是目前大多数电脑,其CPU构架依然是X86构架。
    IA-64:  这个就是纯64位的CPU,只能运行64bit的操作系统,对32位软件一点不兼容,该类型计算机非常少见。
                  注意:是不兼容,事实上通过指令集的互相转换可以运行,但那不叫兼容,但是像我目前市面上的CPU既可以运行64bit也可以运行32bit,
                            且不需要进行指令的转换,原生支持的才叫兼容,大家搞清楚这点。

    下面上一幅我的计算机指令集的截图(AIDA64+CPUZ):






    那么可以通过上面的知识和这两幅截图我很清楚的判断出,我的机器CPU指令集是EM64T,属于Intel,是 X64 构架的计算机。
    你的CPU指令集里面只有有 X86 ;或者 没有 EM64T 也没有AMD64 ,那么你的计算机就是 IA32构架的
    只要你的CPU指令集里面有 X86-64 或者 EM64T 或者 AMD64 ,那么你的计算机就是 X64 构架的


    这里也有一些网络资料大家可以阅读,来验证我说的对错。
    http://www.liuyongkang.com/archives/487.html
    http://blog.sina.com.cn/s/blog_a9303fd901016t2r.html
    http://www.dxy.cn/bbs/thread/7692532#7692532
    http://www.33lc.com/article/3518.html
    http://wenku.baidu.com/view/c2c6c8fbf90f76c661371a1e.html

    关于UEFI启动与系统匹配(系统选择)的概述


    在CPU指令集支持的情况下(普遍支持),系统能否支持UEFI启动,主要看系统和UEFI的匹配情况,
    就是说在CPU指令集支持的情况下,32bit的UEFI可以运行支持uefi启动的x86系统;64bit的UEFI可以运行支持uefi启动的x64系统
    在CPU指令集不支持的情况下,莫谈UEFI启动。比如你在配备赛扬处理器的PC上实验UEFI 64bit的启动,那么不好意思,不行,处理器不支持...

    CPU指令集的不同也可以看做不同构架的CPU,如IA32,X64,IA64
    事实上:市面上的PC,CPU支持与UEFI是关联完毕的,就是出现UEFI启动的那CPU肯定支持,CPU不支持的那肯定没有UEFI启动。


    D:

    给传统BIOS下的合盘添加UEFI模块支持


    该UEFI支持模块论坛上有的,我的是自己提取自Win8安装盘的,大家也可以自行根据我第二部分的文件说明提取,该支持模块的文件格式是PMF格式,我为了方便使用做成这样

    BIOS/UEFI 全中文版支持模块 UEFI_Support.PMF

    使用说明:
    打开Diskgenius 4.3专业版 或者更高版本,选择分区,右击,从文件恢复分区--->选择PMF文件--->点击开始。恢复完毕后,分区格式啥的都已经设置完毕了,直接就可以支持UEFI启动了。

    注:
    模板里面的WIM文件是空的
    ,大家自行备齐吧(注意需要PE支持UEFI启动)楼主我没有着手DIY趁手的Win8PE。我暂时用的别人现成的。

                当你准备齐全所有的WIM文件后,你的U盘就可以进入UEFI PE启动了,此时你可以使用Diskgenius 4.3专业版打包整个分区到PMF以后备用,或者随便你。


    ===========================

    再谈讲UEFI启动支持模块增加到UD合盘

    这个也不难,一句话就是将上面已经做好的,可以支持UEFI启动的盘,使用Diskgenius 4.3专业版克隆到你的UD合盘任意一个分区,或者直接将PMF恢复到该分区也可以。


    看图文教程:
    现有分区:





    新建尾部分区
    右击现有分区,点击新建分区




    接下来我们继续...







    出现什么直接确定即可。

    最后变成这样:





    这样新建的分区就好了,我们开始克隆UEFI模块到UD维护盘

    先选择做好的UEFI支持的U盘,右击克隆



    弹出的选框我们点击刚刚分出的UD维护盘尾部分区









    确认后就可以在接下的界面直接点击开始,一路确定即可克隆完成。

    完成后的样子:




    至此,给你的BIOS模式下的UD启动盘新增UEFI支持模块完成!!

    制作BIOS / UEFI (IA32+X64)三支持启动ISO超详细解说&文件提供


    目前随着UEFI的普及,论坛上很多PE的作者纷纷发布BIOS/UEFI双启动ISO,我也有个极致PE,刚刚发布终结版,可惜了是Win7 X86的无法和UEFI搭边...

    废话少说,现在开始:
    要制作 BIOS/UEFI双启动ISO 你首先必须了解怎样制作ISO,普遍的我们使用微软的一款叫OSCDimg.exe的命令行工具,该工具非系统自带需要另外下载
    OSCDimg.exe
    的版本有很多,当然老版本的是无法制作BIOS/UEFI双启动ISO的我们要使用2.55版本的。直接到D模块尾部下载。



    说完制作工具,再说制作要点,制作BIOS/UEFI双启动ISO需要两部分的引导记录(重点):
    MBR引导记录:MBR.bin
    UEFI引导记录:UEFI_ALL.bin (X64+IA32构架通用)



    再仔细注意下面的OSCDIMG的批处理命令,这是制作BIOS/UEFI双启动ISO另外至关重要的一点,我一测试完毕(重点):
    @echo off


    ::要压制的目录,相当于光盘的根目录,表示当前目录下的Root_Dir目录
    set intdir=.Root_Dir

    ::设置光盘的引导文件MBR,表示当前目录下的MBR.bin文件
    set BbootFile=.MBR.bin

    ::设置光盘的引导文件UEFI,IA32+X64构架通用引导文件UEFI_ALL.bin
    set UbootFile=.UEFI_x64.bin

    ::输出的文件名,表示输出到当前目录下的BootISO.iso文件
    set output=.BootISO.iso

    ::设置光盘的卷标,表示光盘的卷标是:Bootable
    set jb=Bootable

    ::根据上面已设置的参数,制作
    OSCDimg -m -o -u2 -udfver102 -l%jb% -bootdata:2#p00,e,b%BbootFile%#pEF,e,b%UbootFile% %intdir% %output%


    注意:
    1、执行命令部分红色加粗的u2适用制作PE的双启ISO,如果你要制作GRLDR合盘的双启模板请将u2改成u1制作兼容ISO,正常制作PE双启ISO推荐u2参数
    2、
    绿色部分可以任意改,保证正确即可,蓝色,部分可以删除,黑色加粗部分必须原封不动,至少在你不了解含义的情况下不能动.


    下面是新开的帖子,内容更加加详细,欢迎去加人气.
    一个ISO【3支持】BIOS+UEFI(IA32+X64同时支持)已测试成功!现成的直接用


    这是我准备给大家的文件。大家看懂我写的就会用了。

    资料下载:
    视屏解说+最新最全的资料包

    Win8PE 三启动模板 (BIOS+UEFI_X64+UEFI_ia32)


    E:

    给Win8 x86;Win8 x64 的PE添加UEFI启动支持


    因为UEFI启动的是Winload.efi那么需要补齐相关文件即可,我下载论坛上的一个全功能的 Win8 X64,没有补齐之前,

    可以加载,加载完毕就会出现错误。补齐后就没有问题了,完美UEFI启动。

    Win8 x64/x86 UEFI支持文件 点击下载

    F:

    给VMware虚拟机开启UEFI,当没有物理硬件支持的情况下,不错的选择哦。



    我只简单的说下步骤,下载VMware 9,然后按照提示安装成功。
    然后新建虚拟机,注意:在选择系统的时候选择 Windows 8 或者 Windows 7/8 x64不能选择Windows 7或者更低版本的Windows 。
    然后一步步继续(记住你的虚拟系统的位置),配置好你的虚拟机,该删除的硬件删除,设置合理的内存,完毕后关闭虚拟机。
    找到你的虚拟系统的位置,然后找到一个.VMX的文件,使用记事本打开,在最后添加一句(红色部分):firmware = "efi"
    启动虚拟机,现在你的虚拟机就支持UEFI启动了。下面的一步步摸索吧。

    注:能够支持UEFI启动的Windows有:
    X86:仅Windows 8(或者以后新出的Windows)
    X64:Windows Vista、Windows 7、 Windows 8 (或者以后新出的Windows)


  • 相关阅读:
    asp.net中session的原理及应用
    通过SessionID和用户名来保证同一个用户不能同时登录(单点登录)
    ASP.NET中application对象的用法
    Tornado Web 框架
    LinkCode 下一个排列、上一个排列
    python版本与编码的区别
    python基本数据类型——set
    python基本数据类型——int
    python基本数据类型——str
    python基本数据类型——list
  • 原文地址:https://www.cnblogs.com/zhishuai/p/8081279.html
Copyright © 2011-2022 走看看