精华内容
下载资源
问答
  • clover如何使用UEFI引导和EFI驱动选择
    2020-12-19 10:31:21

    这边我就说几个uefi引导要注意的地方:

    当试图用UEFI引导时,在/EFI/Drivers64UEFI文件夹中应试着包含具有如下文件:

    1.HFSPlus.efi,OsxFatBinaryDrv-64.efi,如果工作不正常,那么看2。

    2.HFSPlus.efi,OsxFatBinaryDrv-64.efi, OsxLowMemFixDrv-64.efi,还不正常,看3。

    HFSPlus.efi, OsxFatBinaryDrv-64.efi,OsxAptioFixDrv-64.efi(在config.plist中boot args值含有slide=0 (默认))。

    HFSPlus.efi,OsxFatBinaryDrv-64.efi, OsxAptioFixDrv-64.efi (在config.plist 中bootargs值含有slide=0 (默认),EmuVariableRuntimeDxe.efi 。

    具体的:

    HFSPlus.efi, OsxFatBinaryDrv-64.efi这个在技嘉 Hybrid EFI主板工作正常。这是最佳选择对于uefi 引导在此情况下无需特别的修复。任意版本的os x应该都可以正常引导。除非发生一些重大改变(不知道是硬件还是说osx—媛)导致启动失败。

    HFSPlus.efi, OsxFatBinaryDrv-64.efi,OsxLowMemFixDrv-64.efi这个工作在Insyde H2O UEFI,一些小内存问题可由OsxLowMemFixDrv-64.efi修复,这样,其他同第一种情况都没有问题

    3.HFSPlus.efi,OsxFatBinaryDrv-64.efi,OsxAptioFixDrv-64.efi (with slide=0 for ML) 这种情况下几乎可以工作在任何主板。但是这不是一个最佳选择。因为这取决于 boot.efi 的功能和当前的传递的参数介于boot.efi(引导器)和内核之间,如引导的参数boot arg和设备树(好吧我晕啦)。这就是说:如果启动参数改变,就如在lion刚出来时,变色龙启动lion失败一样,这将再次破坏变色龙和uefi引导,直到某人修复它。对我而言这是非常恼人的,因为用uefi引导就是为啦避免发生破坏EFI引导区的情况。如果发生这种情况,第一个方法就是回滚到标准的clover,直到问题解决。要注意的是,标准的clover配置也是依赖于启动参数的当kext 自动打补丁或kext 注入功能启用时。所以在这种情况下也要关闭这些功能。

    HFSPlus.efi, OsxFatBinaryDrv-64.efi,OsxAptioFixDrv-64.efi, EmuVariableRuntimeDxe.efi 这工作在Dell Vostro, someThinkPads some laptops with Phoenix UEFI,情况同3。

    未提到其他驱动也许需要也许不要,上面所罗列的是最小要求。是否需要其他驱动自己一个个测试。

    EFI驱动选择

    在drivers64UEFI目录下:

    CsmVideoDxe-64.efi:Clover图形界面的图像驱动,可以有更多的分辨率选择。(仅限于启动界面)。他基于UEFI BIOS的CSM模块,因此需要CSM可用。

    这个驱动比较危险,可能导致Clover无法启动或启动后系统出现唤醒问题,谨慎使用!

    DataHubDxe-64.efi:DataHub协议是MacOSX的强制支持的。通常它是已经存在的,但有时它可能会丢失,在这种情况下,你应该看到屏幕上的警告信息。该文件的存在始终是安全的。

    EmuVariableUefi-64.efi :大多数UEFI主板有NVRAM硬件,这个驱动提供支持MacOSX在一些罕见情况下需要的NVRAM变量。 仅当你不使用这个驱动出现问题时才使用这个驱动 。

    OsxAptioFixDrv-64.efi :AMIApti UEFI主板内存修复

    OsxLowMemFixDrv-64.efi:OsxAptioFixDrv-64.efi的简化版,不能和OsxAptioFixDrv-64.efi同时使用。

    PartitionDxe-64.efi:支持非常用的分区图表,比如混合GPT/MBR 或 苹果分区图表。这个文件的存在始终是安全的。

    怎么用

    前提是你已经安装好啦clover。

    默认的配置(使用默认的config.plist)足以应付的各种情况。

    要记住选择在bios选择启动设备或在uefibios中选择cloverx64.EFI

    启动顺序:

    bios引导

    BIOS->boot0->boot1->BOOT->CLOVERIA32.efi->Apples boot.efi->mach_kernel

    BIOS->boot0->boot1->BOOT->CLOVERX64.efi->Apples boot.efi->mach_kernel

    UEFI BOOT

    UEFI BIOS->CLOVERX64.efi->Apples boot.efi->mach_kernel

    CLOVERX64.EFI是图形化引导菜单,该文件位于你安装clover所在分区/EFI/Clover/下。

    当你看到图形化引导菜单(如下图)后可按下F1键,看到帮助菜单 。其他功能键如F2(获取启动log) 也是在这个界面按。

    更多相关内容
  • 这个是原版win8提取的EFI引导文件,替换win7引导分区 EFI\microsoft\boot 和EFI/Boot/bootx64.efi即可。
  • EFI MSI Z390战斧OC三叶草 支持MacOS 10.15.2 Catalina 兼容情况 完美 中央处理器 酷睿i7 9700K macOS版本 10.14.6莫哈韦沙漠 10.15卡塔琳娜 显卡(DisplayPortHDMI接显示器) 英特尔UHD630核显支持HDMI...
  • 黑苹果MacOS Catalina 10.15.6 EFI分享(OpenCore引导),自己摸索着配出来的,希望大家也能顺利吃上黑苹果
  • 但是该引导加载程序不会模拟(U)EFI API接口,因为它是为内核映像而设计的,它可能与它们是从真实(U)EFI还是伪造(U)EFI映像引导加载程序加载的,以便为BIOS / CSM和(U)EFI世界提供单个内核映像文件,以简化...
  • UEFI使用OVMF运行EFI

    2020-12-29 23:09:13
    HelloWorld实例 HelloWorld/HelloWorld.c #include #include #include #include #include #include //ShellCEntryLib call user interface ShellAppMain EFI_STATUS EFIAPI HelloWorldEntry( IN EFI_HANDLE ...

    1. 创建虚拟盘

    	dd if=/dev/zero of=~/hda.img bs=1 count=10M	#1、创建img文件
    	mkfs -t vfat ~/hda.img 						#2、将文件重置为FAT格式
    	sudo losetup /dev/loop0 ~/hda.img 			#3、映射到loop设备
    

    补:
    或者

    	qemu-img create ~/hda.img 10M
    	mkfs -t vfat ~/hda.img 						#2、将文件重置为FAT格式
    	mkdir ovmf_boot 
    	chmod 0777 ovmf_boot
    	sudo mount ~/hda.img ~/ovmf_boot			#之后要进行操作直接对ovmf_boot操作就行了
    	#每次对ovmf_boot操作都需要重新挂载一次,不然img里的内容无法更新,或者efi无法正常运行,知道原理的可以在下面留言
    	sudo umount ~/ovmf_boot
    	sudo mount ~/hda.img ~/ovmf_boot
    

    2. HelloWorld实例

    1. HelloWorld/HelloWorld.c
    #include <Uefi.h> 
    #include <Library/UefiLib.h> 
    #include <Library/BaseLib.h>
    #include <Library/DebugLib.h>
    #include <Library/BaseMemoryLib.h>
    #include <Library/UefiBootServicesTableLib.h>
    
    //ShellCEntryLib call user interface ShellAppMain
    EFI_STATUS
    EFIAPI
    HelloWorldEntry(
      IN EFI_HANDLE        ImageHandle,
      IN EFI_SYSTEM_TABLE  *SystemTable
    )
    {   
      EFI_STATUS  Status = EFI_SUCCESS;
      Print (L"[Console]  HelloWorldEntry Start..\n");
      
      Print (L"[Console]  HelloWorldEntry  End ... \n"); 
      return Status;
    }
    
    1. HelloWorld/HelloWorld.inf
    [Defines]
      INF_VERSION = 0x00010007 
      BASE_NAME = HelloWorld
      FILE_GUID = 69A6DE6D-FA9F-485E-9A4E-EA70FDCFD82F
      MODULE_TYPE = UEFI_APPLICATION
      VERSION_STRING = 1.0
      ENTRY_POINT = HelloWorldEntry 
      
    [Sources] 
      HelloWorld.c 
      
    [Packages]
      MdePkg/MdePkg.dec
      ShellPkg/ShellPkg.dec 
      MdeModulePkg/MdeModulePkg.dec
      
    [LibraryClasses]
      ShellCEntryLib
      BaseLib
      BaseMemoryLib
      DebugLib
      PrintLib
      UefiBootServicesTableLib
      MemoryAllocationLib
      UefiLib
    
    1. OvmfPkgX64.dsc
    ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf
    
    1. OvmfPkgX64.fdf
    INF OvmfPkg/HelloWorld/HelloWorld.inf
    

    3编译

    build -a X64 -p OvmfPkg/OvmfPkgX64.dsc
    cp HelloWorld.efi /media/fan/1173-7859/ #我电脑挂载设备名为1173-7859(每次都不一样)
    sudo qemu-system-x86_64 -bios OVMF.fd -hda /dev/loop0
    

    在这里插入图片描述

    结论

    重启电脑之后会打印成功,不知道是因为什么引起的。后面有时间再来讨论

    补:

    上面的原因就是img格式的问题或者没有更新啥的
    
    展开全文
  • EFI、UEFI、MBR、GPT的区别

    千次阅读 2019-05-07 11:41:21
    UEFI、GPT、MBR是什么?这些专业术语不难理解,UEFI属于主板类名词,其作用类似于BIOS。GPT、MBR则属于硬盘类名词,... 一块硬盘接驳主机之后,它的首要任务建立分区列表,分区列表有MBRGPT两种,其中MBR分区列表...

        UEFI、GPT、MBR是什么?这些专业术语不难理解,UEFI属于主板类名词,其作用类似于BIOS。GPT、MBR则属于硬盘类名词,它们的作用类似一艘航母的骨架,有了这个骨架,我们才可以进行细致到诸如C、D、E等盘符的分区。

    全新硬盘在磁盘管理模式下需进行MBR或GPT选择 
    全新硬盘在磁盘管理模式下需进行MBR或GPT选择 


         一块硬盘接驳主机之后,它的首要任务建立分区列表,分区列表有MBR和GPT两种,其中MBR分区列表支持最大2TB硬盘,GPT分区列表支持最大128PB(1PB=1024TB)。

    名词解释:

    磁盘管理模式:MBR分区列表标题

     MBR(Master Boot Record):

        即硬盘的主引导记录分区列表,在主引导扇区,位于硬盘的cylinder 0, head 0, sector 1 (Sector是从1开始的)。

    标题磁盘管理模式:GPT分区列表

     

    GPT(GUID Partition Table):

        即全局唯一标识分区列表,是一个物理硬盘的分区结构。它用来替代BIOS中的主引导记录分区表(MBR)。

        传统BIOS主要支持MBR引导,UEFI则是取代传统BIOS,它加入了对新硬件的支持,其中就有2TB以上硬盘。那么UEFI到底是什么呢?

    3D化的Dual UEFI/BIOS界面标题

     UEFI(Unified Extensible Firmware Interface):

         全称“统一的可扩展固件接口”, 是一种详细描述全新类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上,从而使开机程序化繁为简,节省时间。

     

    标题传统BIOS界面

    UEFI、BIOS和MBR、GPT之间的关系?

        我们从名词解析可得知,传统BIOS不支持GPT分区列表,仅支持MBR格式。UEFI则是取代传统BIOS,它不支持MBR模式,仅支持GPT格式。

        延伸阅读:近两年出现的UEFI主板,采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项。

    EFI

    1.可扩展固件接口

      可扩展固件接口(英文名Extensible Firmware Interface 或EFI)是由英特尔,一个主导个人电脑技术研发的公司推出的一种在未来的类PC的电脑系统中替代BIOS的升级方案。BIOS技术的兴起源于IBM PC/AT机器的流行以及第一台由康柏公司研制生产的“克隆”PC。在PC启动的过程中,BIOS担负着初始化硬件,检测硬件功能,以及引导操作系统的责任,在早期,BIOS还提供一套运行时的服务程序给操作系统及应用程序使用。BIOS程序存放于一个掉电后内容不会丢失的只读存储器中,系统加电时处理器的第一条指令的地址会被定位到BIOS的存储器中,便于使初始化程序得到执行。

    2.EFI的产生

       众所周知,英特尔在近二十年来引领以x86系列处理器为基础的PC技术潮流,它的产品如CPU,芯片组等在PC生产线中占据绝对领导的位置。因此,不少人认为这一举动显示了英特尔公司欲染指固件产品市场的野心。事实上,EFI技术源于英特尔安腾处理器(Itanium)平台的推出。安腾处理器是英特尔瞄准服务器高端市场投入近十年研发力量设计产生的与x86系列完全不同的64位新架构。在x86系列处理器进入32位的时代,由于兼容性的原因,新的处理器(i80386)保留了16位的运行方式(实模式),此后多次处理器的升级换代都保留了这种运行方式。甚至在含64位扩展技术的至强系列处理器中,处理器加电启动时仍然会切换到16位的实模式下运行。英特尔将这种情况归咎于BIOS技术的发展缓慢。自从PC兼容机厂商通过净室的方式复制出第一套BIOS源程序,BIOS就以16位汇编代码,寄存器参数调用方式,静态链接,以及1MB以下内存固定编址的形式存在了十几年。虽然由于各大BIOS厂商近年来的努力,有许多新元素添加到产品中,如PnP BIOS,ACPI,传统USB设备支持等等,但BIOS的根本性质没有得到任何改变。这迫使英特尔在开发更新的处理器时,都必须考虑加进使效能大大降低的兼容模式。有人曾打了一个比喻:这就像保时捷新一代的全自动档跑车被人生套上去一个蹩脚的挂档器。 

      然而,安腾处理器并没有这样的顾虑,它是一个新生的处理器架构,系统固件和操作系统之间的接口都可以完全重新定义。并且这一次,英特尔将其定义为一个可扩展的,标准化的固件接口规范,不同于传统BIOS的固定的,缺乏文档的,完全基于经验和晦涩约定的一个事实标准。基于EFI的第一套系统产品的出现至今已经有五年的时间,如今,英特尔试图将成功运用在高端服务器上的技术推广到市场占有率更有优势的PC产品线中,并承诺在2006年间会投入全力的技术支持。 

    3.比较EFI和BIOS

       一个显著的区别就是EFI是用模块化,C语言风格的参数堆栈传递方式,动态链接的形式构建的系统,较BIOS而言更易于实现,容错和纠错特性更强,缩短了系统研发的时间。它运行于32位或64位模式,乃至未来增强的处理器模式下,突破传统16位代码的寻址能力,达到处理器的最大寻址。它利用加载EFI驱动的形式,识别及操作硬件,不同于BIOS利用挂载实模式中断的方式增加硬件功能。后者必须将一段类似于驱动的16位代码,放置在固定的0x000C0000至0x000DFFFF之间存储区中,运行这段代码的初始化部分,它将挂载实模式下约定的中断向量向其他程序提供服务。例如,VGA图形及文本输出中断(INT 10h),磁盘存取中断服务(INT 13h)等等。由于这段存储空间有限(128KB),BIOS对于所需放置的驱动代码大小超过空间大小的情况无能为力。另外,BIOS的硬件服务程序都已16位代码的形式存在,这就给运行于增强模式的操作系统访问其服务造成了困难。因此BIOS提供的服务在现实中只能提供给操作系统引导程序或MS-DOS类操作系统使用。而EFI系统下的驱动并不是由可以直接运行在CPU上的代码组成的,而是用EFI Byte Code编写而成的。这是一组专用于EFI驱动的虚拟机器指令,必须在EFI驱动运行环境(Driver Execution Environment,或DXE)下被解释运行。这就保证了充分的向下兼容性,打个比方说,一个带有EFI驱动的扩展设备,既可以将其安装在安腾处理器的系统中,也可以安装于支持EFI的新PC系统中,而它的EFI驱动不需要重新编写。这样就无需对系统升级带来的兼容性因素作任何考虑。另外,由于EFI驱动开发简单,所有的PC部件提供商都可以参与,情形非常类似于现代操作系统的开发模式,这个开发模式曾使Windows在短短的两三年时间内成为功能强大,性能优越的操作系统。基于EFI的驱动模型可以使EFI系统接触到所有的硬件功能,在操作操作系统运行以前浏览万维网站不再是天方夜谭,甚至实现起来也非常简单。这对基于传统BIOS的系统来说是件不可能的任务,在BIOS中添加几个简单的USB设备支持都曾使很多BIOS设计师痛苦万分,更何况除了添加对无数网络硬件的支持外,还得凭空构建一个16位模式下的TCP/IP协议栈。 

      一些人认为BIOS只不过是由于兼容性问题遗留下来的无足轻重的部分,不值得为它花费太大的升级努力。而反对者认为,当BIOS的出现制约了PC技术的发展时,必须有人对它作必要的改变。 

    4.EFI和操作系统

        EFI在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力。不少人感觉它的不断发展将有可能代替现代的操作系统。事实上,EFI的缔造者们在第一版规范出台时就将EFI的能力限制于不足以威胁操作系统的统治地位。首先,它只是硬件和预启动软件间的接口规范;其次,EFI环境下不提供中断的访问机制,也就是说每个EFI驱动程序必须用轮询的方式来检查硬件状态,并且需要以解释的方式运行,较操作系统下的驱动效率更低;再则,EFI系统不提供复杂的存储器保护功能,它只具备简单的存储器管理机制,具体来说就是指运行在x86处理器的段保护模式下,以最大寻址能力为限把存储器分为一个平坦的段,所有的程序都有权限存取任何一段位置,并不提供真实的保护服务。当EFI所有组件加载完毕时,系统可以开启一个类似于操作系统Shell的命令解释环境,在这里,用户可以调入执行任何EFI应用程序,这些程序可以是硬件检测及除错软件,引导管理,设置软件,操作系统引导软件等等。理论上来说,对于EFI应用程序的功能并没有任何限制,任何人都可以编写这类软件,并且效果较以前MS-DOS下的软件更华丽,功能更强大。一旦引导软件将控制权交给操作系统,所有用于引导的服务代码将全部停止工作,部分运行时代服务程序还可以继续工作,以便于操作系统一时无法找到特定设备的驱动程序时,该设备还可以继续被使用。 

    5.EFI的组成

       一般认为,EFI由以下几个部分组成: 

    1. Pre-EFI初始化模块

    2. EFI驱动执行环境

    3. EFI驱动程序

    4. 兼容性支持模块(CSM)

    5. EFI高层应用

    6. GUID 磁盘分区 

      在实现中,EFI初始化模块和驱动执行环境通常被集成在一个只读存储器中。Pre-EFI初始化程序在系统开机的时候最先得到执行,它负责最初的CPU,主桥及存储器的初始化工作,紧接着载入EFI驱动执行环境(DXE)。当DXE被载入运行时,系统便具有了枚举并加载其他EFI驱动的能力。在基于PCI架构的系统中,各PCI桥及PCI适配器的EFI驱动会被相继加载及初始化;这时,系统进而枚举并加载各桥接器及适配器后面的各种总线及设备驱动程序,周而复始,直到最后一个设备的驱动程序被成功加载。正因如此,EFI驱动程序可以放置于系统的任何位置,只要能保证它可以按顺序被正确枚举。例如一个具PCI总线接口的ATAPI大容量存储适配器,其EFI驱动程序一般会放置在这个设备的符合PCI规范的扩展只读存储器(PCI Expansion ROM)中,当PCI总线驱动被加载完毕,并开始枚举其子设备时,这个存储适配器旋即被正确识别并加载它的驱动程序。部分EFI驱动程序还可以放置在某个磁盘的EFI专用分区中,只要这些驱动不是用于加载这个磁盘的驱动的必要部件。在EFI规范中,一种突破传统MBR磁盘分区结构限制的GUID磁盘分区系统(GPT)被引入,新结构中,磁盘的分区数不再受限制(在MBR结构下,只能存在4个主分区),并且分区类型将由GUID来表示。在众多的分区类型中,EFI系统分区可以被EFI系统存取,用于存放部分驱动和应用程序。很多人担心这将会导致新的安全性因素,因为EFI系统比传统的BIOS更易于受到计算机病毒的攻击,当一部分EFI驱动程序被破坏时,系统有可能面临无法引导的情况。实际上,系统引导所依赖的EFI驱动部分通常都不会存放在EFI的GUID分区中,即使分区中的驱动程序遭到破坏,也可以用简单的方法得到恢复,这与操作系统下的驱动程序的存储习惯是一致的。CSM是在x86平台EFI系统中的一个特殊的模块,它将为不具备EFI引导能力的操作系统提供类似于传统BIOS的系统服务。 

    6.EFI的发展

      英特尔无疑是推广EFI的积极因素,近年来由于业界对其认识的不断深入,更多的厂商正投入这方面的研究。包括英特尔,AMD在内的一些PC生产厂家联合成立了联合可扩展固件接口论坛,它将在近期推出第一版规范。这个组织将接手规划EFI发展的重任,并将英特尔的EFI框架解释为这个规范的一个具体实现。另外,各大BIOS提供商如Phoenix, AMI等,原先被认为是EFI发展的阻碍力量,现在也不断的推出各自的解决方案。分析人士指出,这是由于BIOS厂商在EFI架构中重新找到了诸如Pre-EFI启动环境之类的市场位置,然而,随着EFI在PC系统上的成功运用,以及英特尔新一代芯片组的推出,这一部分市场份额将会不出意料的在英特尔的掌控之中。

     

    UEFI

        UEFI中图形化的硬件设置界面Extensible FirmwareInterface(EFI,可扩展固件接口)是 Intel 为全新类型的 PC 固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看做是有近20多年历史的PC BIOS的继任者。 

      由于电脑教育普及,很多人都知道BIOS就是Basic Input/Output System,翻成中文是“基本输入/输出系统”,是一种所谓的“固件”,负责在开机时做硬件启动和检测等工作,并且担任操作系统控制硬件时的中介角色。

      然而,那些都是过去DOS 时代的事情,自从Windows NT出现,Linux 开始崭露头角后,这些操作系统已将过去需要通过BIOS完成的硬件控制程序放在操作系统中完成,不再需要调用BIOS功能。一般来说,当今所谓的“电脑高手”,多半是利用BIOS来对硬件性能做些超频调校,除了专业人士外,鲜有人再利用 BIOS 进行底层工作。

      因为硬件发展迅速,传统式(Legacy)BIOS 成为进步的包袱,现在已发展出最新的EFI(Extensible Firmware Interface)可扩展固件接口,以现在传统 BIOS 的观点来说,未来将是一个“没有特定 BIOS”的电脑时代。

    UEFI是由EFI1.10为基础发展起来的,它的所有者已不再是Intel,而是一个称作Unified EFI Form(www.uefi.org)的国际组织,贡献者有Intel,Microsoft,AMI,等几个大厂,属于open source,目前版本为2.1。与legacy BIOS 相比,最大的几个区别在于:

    1. 编码99%都是由C语言完成;

    2. 一改之前的中断、硬件端口操作的方法,而采用了Driver/protocal的新方式;

    3. 将不支持X86模式,而直接采用Flat mode(也就是不能用DOS了,现在有些 EFI 或 UEFI 能用是因为做了兼容,但实际上这部分不属于UEFI的定义了);

    4. 输出也不再是单纯的二进制code,改为Removable Binary Drivers;

    5. OS启动不再是调用Int19,而是直接利用protocol/device Path;

    6. 对于第三方的开发,前者基本上做不到,除非参与BIOS的设计,但是还要受到ROM的大小限制,而后者就便利多了。

    UEFI将是近3年的趋势,到时候对于PC的利用以及维护都将步入一个新的时代。

    UEFI结构

    uEFI概念根据UEFI概念图的结构,我们将把uEFI概念划为两部分:uEFI的实体(uEFI Image)跟平台初始化框架。

    uEFI的实体-uEFI Image(图中蓝框围起部分)

      根据uEFI规范定义,uEFI Image包含三种:uEFI Applications, OS Loaders and uEFI Drivers。

    uEFI Applications是硬件初始化完,操作系统启动之前的核心应用,比如:启动管理、BIOS设置、uEFI Shell、诊断程式、调度和供应程式、调试应用...等等

    OS Loaders是特殊的uEFI Application,主要功能是启动操作系统并退出和关闭uEFI应用。

    uEFI Drivers是提供设备间接口协议,每个设备独立运行提供设备版本号和相应的参数以及设备间关联,不再需要基于操作系统的支持。

      启动队列

      平台初始化框架

    uEFI框架主要包含两部分,一是PEI(EFI预初始化),另一部分是驱动执行环境 (DXE)。

    PEI主要是用来检测启动模式、加载主存储器初始化模块、检测和加载驱动执行环境核心。

    DXE是设备初始化的主要环节,它提供了设备驱动和协议接口环境界面。

     

    MBR

    MBR,全称为Master Boot Record,即硬盘的主引导记录。

      为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标识),也就是上面所说的主引导记录;而狭义的MBR仅指引导程序而言。

      硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT和硬盘有效标志(55AA)。在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。

    MBR是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它,但可以通过命令来修改和重写,如在minix3里面,可以用命令:installboot -m /dev/c0d0 /usr/mdec/masterboot来把masterboot这个小程序写到mbr里面,masterboot通常用汇编语言来编写。我们也可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。

      用INT13H的读磁盘扇区功能的调用参数如下:

      入口参数:AH=2 (指定功能号)

    AL=要读取的扇区数

    DL=磁盘号(0、1-软盘;80、81-硬盘)

    DH=磁头号

    CL高2位+CH=柱面号

    CL低6位=扇区号

    CS:BX=存放读取数据的内存缓冲地址

      出口参数:CS:BX=读取数据存放地址

      错误信息:如果出错CF=1 AH=错误代码

      用DEBUG读取位于硬盘0柱面、0磁头、1扇区的操作如下:

    A>DEBUG

    -A 100

    XXXX:XXXX MOV AX,0201 (用功能号2读1个扇区)

    XXXX:XXXX MOV BX,1000 (把读出的数据放入缓冲区的地址为CS:1000)

    XXXX:XXXX MOV CX,0001 (读0柱面,1扇区)

    XXXX:XXXX MOV DX,0080 (指定第一物理盘的0磁头)

    XXXX:XXXX INT 13

    XXXX:XXXX INT 3

    XXXX:XXXX (按回车键)

    -G=100 (执行以上程序段)

    -D 1000 11FF (显示512字节的MBR内容) 

      在windows操作系统下,例如xp,2003,Vista,windows7,有微软提供的接口直接读写mbr;

    FILE * fd=fopen("\\\\.\\PHYSICALDRIVE0","rb+");

    char buffer[512];

    fread(buffer,512,1,fd);

    //then you can edit buffer[512] as your wish...... 

    fseek(fd,0,SEEK_SET); //很重要

    fwrite(buffer,512,1,fd); //把修改后的MBR写入到你的机器

    fclose(fd); //大功告成

    MBR组成

      一个扇区的硬盘主引导记录MBR由如图6-15所示的4个部分组成。

      ·主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。

      ·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。

      ·分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。

      ·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

     

     

    GPT

    Globally Unique IdentifierPartition Table Format

      一种由基于 Itanium 计算机中的可扩展固件接口 (EFI) 使用的磁盘分区架构。与主启动记录 (MBR) 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区,支持高达 18 千兆兆字节的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。 

      与支持最大卷为 2 TB (terabytes) 并且每个磁盘最多有 4 个主分区(或 3 个主分区,1 个扩展分区和无限制的逻辑驱动器)的主启动记录 (MBR) 磁盘分区的样式相比,GUID 分区表 (GPT) 磁盘分区样式支持最大卷为 18 EB (exabytes) 并且每磁盘最多有 128 个分区。与 MBR 分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。 

      在“磁盘管理”中的磁盘属性对话框中的“卷”选项卡上,具有 GPT 分区样式的磁盘显示为 GUID 分区表 (GPT) 磁盘,而具有 MBR 分区样式的磁盘显示为主启动记录 (MBR) 磁盘。如果发生下列意外事件,可以在 GPT 磁盘上执行 MBR 磁盘支持的操作: 

      在运行带有 Service Pack 1 (SP1) 的 Windows Server 2003 的基于 x86 的计算机和基于 x64 的计算机上,操作系统必须驻留在 MBR 磁盘上。其他的硬盘可以是 MBR 或 GPT。 

      在基于 Itanium 的计算机上,操作系统加载程序和启动分区必须驻留在 GPT 磁盘上。其他的硬盘可以是 MBR 或 GPT。 

      不能将 GPT 移至运行 Windows NT 4.0、Windows 2000、Windows XP 或 Windows Server 2003 的基于 x86 的计算机上。不过,可以将 GPT 磁盘从运行带有 SP1 的 Windows Server 2003 的基于 x86 的计算机或基于 x64 的计算机移至运行 Windows Server 2003 或 Windows XP 的基于 Itanium 的计算机上,反之亦然。 

      不能使用基于 Itanium 的 Windows 版本,将 GPT 磁盘从基于 Itanium 的计算机移至运行带有 SP1 的 Windows Server 2003 的基于 x86 的计算机或基于 x64 的计算机,然后启动该操作系统。在非基于 Itanium 的计算机上使用的 GPT 磁盘必须仅用于数据存储。 

      在单个动态磁盘组中既可以有 MBR,也可以有 GPT 磁盘。也使用将基本 GPT 和 MBR 磁盘的混合,但它们不是磁盘组的一部分。可以同时使用 MBR 和 GPT 磁盘来创建镜像卷、带区卷、跨区卷和 RAID-5 卷,但是 MBR 的柱面对齐的限制可能会使得创建镜像卷有困难。通常可以将 MBR 的磁盘镜像到 GPT 磁盘上,从而避免柱面对齐的问题。 

      可以将 MBR 磁盘转换为 GPT 磁盘,并且只有在磁盘为空的情况下,才可以将 GPT 磁盘转换为 MBR 磁盘。 

      不支持 EFI 系统分区的镜像。必须使用 bootcfg 命令克隆 EFI 系统分区。 

      不能在可移动媒体,或者在与群集服务使用的共享 SCSI 或 Fibre Channel 总线连接的群集磁盘上使用 GPT 分区样式。 

      可以使用 DiskPart.exe 命令行实用程序或 EFI 固件实用程序 Diskpart.efi 在基本 GPT 磁盘上创建分区。有关 DiskPart.exe 的详细信息,请参阅 DiskPart。有关“磁盘管理”管理单元的详细信息,请参阅磁盘管理概述。有关 Diskpart.efi 的详细信息,请参阅 Intel 网站。 

      在基于 Itanium 的计算机上的系统恢复方案中,请参阅计算机所附带的制造商文档来重新创建或恢复 GPT 磁盘。 

      有关管理 GPT 和 MBR 磁盘的详细信息,请参阅可扩展固件接口或 Microsoft Windows 资源工具包网站上的“Disk Management”(磁盘管理)。 

     

     

    ESP

    ESP (CPU内部寄存器)

    ebp和esp是32位的SP,BP 

    esp是堆栈指针 

    ebp是基址指针 

    ESP与SP的关系就象AX与AL,AH的关系. 

    EPS是Encapsulated PostScript的缩写,是跨平台的标准格式,主要用于矢量图像和光栅图像的存储。EPS格式采用 PostScript语言进行描述,并且可以保存其他一些类型信息,例如多色调曲线、Alpha通道、分色、剪辑路径、挂网信息和色调曲线等,因此EPS格式常用于印刷或打印输出。Photoshop中的多个EPS格式选项可以实现印刷打印的综合控制,在某些情况下甚至优于TIFF格式。 

      用Illustrator软件可以直接打开Word,并且可以直接另存为EPS文件。 

      其他常识:

    esp,esd等都是矢量图。

      情形--“素材”打开使用方法:

      ·ai或eps文件建议使用Adobe Illustrator CS3软件打开!

      ·cdr建议使用CorelDRAW12软件打开!

      ·pdf格式文件请使用adobe reader软件打开!”

      简单释义-- “eps,ai,cdr”等格式都是矢量图的格式,cdr是CorelDRAW产生的文件,ai是Illusttator的文件,Photoshop可以使用eps格式的文件,不过只能用置入,Illustrator是与Photoshop一家公司Ado

    文章内容转载自:https://blog.csdn.net/mao0514/article/details/51162915 
     

    展开全文
  • 计算机原理-UEFI与Legacy CSM和Secure Boot

    千次阅读 2019-01-12 15:30:40
    boot mode可以设置为UEFI与Legacy,而CSM和SECURE BOOT,只能开启一个,按完系统之后电脑就崩了,所以现在来仔细学习一下。 这两个模式,其中的关系略微有些复杂,但是耐心看完这篇文章的话还是会有一些收获,...

    前一段时间换系统,在bios里涉及了UEFI与Legacy的选项,还有CSM与SECURE BOOT,当时就是这里的样子的感觉

    boot mode可以设置为UEFI与Legacy,而CSM和SECURE BOOT,只能开启一个,按完系统之后电脑就崩了,所以现在来仔细学习一下。

    这两个模式,其中的关系略微有些复杂,但是耐心看完这篇文章的话还是会有一些收获,只要了解大概的原理,记住一些基本的安装系统的设置,就算成功了。

     

    CSM-UEFI/Legacy

    以下是百度的一个知识--BIOS设置之UEFI/Legacy BIOS切换图文详解

    近几年出现的电脑其中相当一部分都配置了UEFI BIOS,不过前些年的大多都默认以Legacy BIOS方式启动。而Win8正式上市后, 所有预装Win8(或Win8.1)的电脑都配置了UEFI BIOS并且都默认以UEFI方式启动操作系统。UEFI是大势所趋,但是Legacy + UEFI共存的状况可能还需要持续较长时期。所以,不论你是想在旧电脑中尝试UEFI启动,还是想将预装的Win8/8.1系统换成其他操作系统,都应当熟悉UEFI/Legacy BIOS切换方法。

    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模式!

     

    Secure Boot和CSM

    在设置中,存在两个相互制约的选项 Secure Boot和CSM,两个会自动的开一个关一个,不会存在同时开启的情况。

    在自带Windows 8的设备上,出现的情况是只能支持UEFI启动,传统MBR方式启动不了。在BIOS的启动列表里,也无发现MBR启动设备。其实是微软强制各厂商们必须开启Secure Boot,而开启Secure Boot后,CSM默认关闭。CSM关闭则会出现不能兼容传统MBR启动,MBR设备若是没使用UEFI引导,则不能启动。

    上述已经说了CSM一些功能,下面就是Secure Boot

     

    Secure Boot

    从Windows 8操作系统时代开始,安装操作系统的方法也有了很大的改变,Windows 8采用了Secure Boot引导启动的方式,而不是过去Win XP和Win 7的Legacy启动方式,从而导致的问题是所有预装Windows 8/8.1系统的笔记本要安装Win7的话必须修改BIOS,给很多想更换操作系统的用户增加了一点小难度。

    Secure Boot只是UEFI的一个部分。两者的关系是局部与整体的关系。

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

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

    首先明确,在不打开Secure Boot的情况下,Windows 8/8.1可以安装。这与安装以前版本的Windows没有差别。

        但是,微软规定,所有预装Windows 8的厂商(即OEM厂商)都必须打开Secure Boot。因此,消费者购买一台预装Windows 8的台式机或笔记本,想要在上面再安装其他操作系统(包括以前版本的Windows)是不可能的,除非关闭Secure Boot,或者其他操作系统能够通过Windows 8/8.1公钥的认证。

        如果选择关闭Secure Root,那么预装的Windows 8/8.1将无法使用,需要重新安装。

     

    关于安装的设置,这里有师傅提供了一些

    因为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。
                      (上述设置一般和默认相反或无需设置)

     

    硬盘模式要求:

    “GPT”和“MBR”相互转换:
        微软规定:必须“UEFI+GPT”或“Legacy+MBR”!虽然在实验测试环境中“UEFI+MBR”仍可正常启动系统,但在生产环境中还是推荐以微软规定的方式进行安装,避免带来麻烦!微软做此限制必然不是平白无故的!
        使用我们常用的DiskGenius即可进行转换:

    • 在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。

    • 跟现代的MBR一样,GPT也使用逻辑区块位址(LBA)取代了早期的CHS寻址方式。传统MBR信息存储于LBA 0,GPT头存储于LBA 1,接下来才是分区表本身。64位Windows操作系统使用16,384字节(或32扇区)作为GPT分区表,接下来的LBA 34是硬盘上第一个分区的开始。

     

     

    安全模式的意义:

     

    最后的总结

    实际上CSM和secrue boot的区别 UEFI和lacey的区别在于的是系统,对于不同的系统我们可能需要不同的选项,就像我前面安装win7时没有改变默认选项,则导致了问题。

    系统的安装不仅对这两个设置有关,甚至还涉及硬盘的模式,这时候我们安装系统的时候需要注意分区的设置。

    也许在预装win8和之后的系统的电脑再安装高等级的版本的系统不太需要注意这么多,但是win7和xp系统的安装可能就得小心了,不过大多数时候不会有太大的影响,作为理论知识了解一下就好

     

    参考文章

    http://www.360doc.com/content/18/0223/14/7088636_731706063.shtml

    https://www.cnblogs.com/zengkefu/p/5859954.html

    https://blog.csdn.net/luoyanghero/article/details/47380079

    https://www.612459.com/dnxx/1139.html

    https://jingyan.baidu.com/article/b907e627b1a5bb46e7891c0f.html

    https://baike.baidu.com/item/GPT/15413476?fr=aladdin#1

     

    展开全文
  • 展开全部CsmSupport,全名为:Compatibility Support Module,翻译成中文的32313133353236313431303231363533e4b893e5b19e31333366303831意思就是兼容支持模块,该选项专为...CSM开启使得可以支持UEFI启动非UEF...
  • 文章目录EFI是什么CSM是什么UEFI是什么 EFI是什么 我之前的一篇博客计算机启动的基本过程提到了BIOS是个程序,存储在BIOS芯片中. 而现在的新式电脑用的基本都是UEFI启动,早期的过渡电脑用的都是EFI启动....EFI和BIOS一
  • 我在各个地方都看到过这个问题,...UEFI引导通常需要位数的操作系统相匹配的固件的位数-广大基于UEFI的机器有64位固件。必须使用BIOS的方案您正在安装的旧操作系统不支持UEFI引导(例如,SP1之前的Windows Vista或...
  • Linux启动过程——EFI

    2021-09-21 15:37:48
      EFI在开机时的作用BIOS一样,都是初始化PC,但是在细节上也有区别。BIOS是对硬件按照一定顺序进行检查,而EFI不但检查硬件完好性,还会加载硬件在EFI中的驱动程序,不需要操作系统负责加载驱动。EFI最创新的...
  • EFI简介

    千次阅读 2018-11-27 21:32:41
    文章目录1.EFI 简介2.EFI的命令行控制模式 1.EFI 简介   Extesible Firmware Interface 简称EFI,其含义为“可扩展固件接口”,是由Intel公司推出的一种在未来的计算机系统中替代BIOS的升级方案。   BIOS的全称...
  • EFI 1 可扩展固件接口  可扩展固件接口(英文名Extensible Firmware Interface 或EFI)是由英特尔,一个主导个人电脑技术研发的公司推出的一种在未来的类PC的电脑系统中替代BIOS的升级方案。BIOS技术的兴起源于...
  • # 炫龙T3-pro 9代cpu无csm兼容选项笔记本GPT硬盘纯uefi安装windows7系统方法 关键词:无csm,9代cpu,笔记本,windows7安装,win7安装,纯uefi,GPT硬盘 动机 win7现在已不太支持一些新的电脑,但由于工作笔记本需要...
  • BIOS、EFI与UEFI详解

    万次阅读 多人点赞 2018-03-27 09:51:19
    其实EFI或UEFI的一部分也是存储在一个芯片中,由于它们在表面形式、基本功能上BIOS差不多,所以习惯上我们也把存储EFI/UEFI的芯片叫做EFI/UEFI BIOS芯片,EFI/UEFI也叫做EFI/UEFI BIOS,但在实际上它们BIOS根本....
  • 这次 在有两块硬盘的 机器上 双系统安装 ubuntu,...EFI vs BIOS gpt vs mbr 两种分区表 参考链接 二里 还提到了 快速启动 安全启动过 我的安装情况 第一块硬盘安装了 windows 第二块盘 准备用来装 lin
  • UEFI启动GRUB启动类似,在启动的时候可以调用EFIShell,在此可以加载指定硬件驱动,选择启动文件。比如默认启动失败,在EFIShell加载U盘上的启动文件继续启动系统。 2、启动配置更灵活,在启动调用上更加灵活,...
  • 文 / 菜鸟搞机· 吃瓜市民王先生目前黑苹果主要使用CloverOpenCore进行引导,变色龙引导已经成为过去式。在EFI文件目录中,除去驱动(.kext)很重要以外,还有(.efi)驱动也很重要。(.efi)驱动是Extensible Firmware ...
  • 学会修改UEFI启动项也变得十分重要,UEFI全称为:“统一的可扩展固件接口”(Unified Extensible Firmware Interface),目前新购入的计算机都支持UEFI固件,而且为了兼容传统BIOS,都会使用CSM(Compatibility Support...
  • 在进行电脑重装的时候,我们常会听到UEFIBIOS这两个词,例如怎么进入BIOS启动设置页面,电脑不支持UEFI启动等等,但是我们对其背后的含义却没有什么了解,实际上这些都是比较基础的知识,理解这些知识的话,更有利...
  • 比较EFI和BIOS

    2017-04-14 11:16:29
    而技术来不得半点取巧,需要一点点的读,一点点的思考吸收,浮躁了,你就变成啥也懂,啥也不精的伪专家。 一个显著的区别就是EFI是用模块化,C语言风格的参数堆栈传递方式,动态链接的形式构建的系统,较BIOS而言....
  • windows检测到efi系统分区为ntfs

    千次阅读 2020-12-21 07:24:13
    windows检测到efi系统分区为ntfs。这个问题的原因:你的磁盘采用GPT分区,而你没在BIOS里设置uefi启动或是pe不支持uefi。(推荐学习:PHP视频教程)BIOS里设置uefi启动操作准备:1、主板支持UEFI;2、UEFI模式下硬盘需...
  • 主板BIOS中的CSM是什么

    万次阅读 2019-03-06 10:03:55
    Csm Support,全名为:Compatibility Support Module,翻译成中文的...CSM开启使得可以支持UEFI启动非UEFI启动。若是需要启动传统MBR设备,则需开启CSM。关闭CSM则变成纯UEFI启动,且完全支持安全启动。Secure Bo...
  • 老BIOS说永别 EFI BIOS技术解析

    千次阅读 2017-02-21 11:07:48
     BIOS,几乎PC有着同样的寿命,当年康柏第一台“克隆”PC诞生的时候,它为了简化启动的设置,引入了固化程序的概念,在启动时负责将PC初始化,然后再将控制权交给磁盘上的操作系统。而今天,“康柏”这个品牌已经...
  • 问题描述意外BIOS模式安装我有英特尔64位硬件UEFI设置实用程序。 Ubuntu 14.04.1 LTS作为唯一的操作系统安装在唯一的驱动器上。无意中Ubuntu安装在BIOS /CSM /legacy模式下。转换为UEFI在稍后了解UEFI时,目标是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 661
精华内容 264
关键字:

csm和efi

友情链接: VerySource.zip