一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

集成LinuxBoot的UEFI固件启动方法及装置与流程

2021-11-09 21:42:00 来源:中国专利 TAG:

集成linuxboot的uefi固件启动方法及装置
技术领域
1.本发明属于固件启动技术领域,具体涉及一种集成linuxboot的uefi固件启动方法及装置。


背景技术:

2.uefi,unified extensible firmware interface的简称,是统一可扩展固件接口规范,连接着操作系统和平台固件,为操作系统启动前的运行状态提供了标准环境。uefi的启动流程按顺序依次为sec,pei,dxe,bds,tls和rt,其中sec,pei,dxe阶段完成系统的基本硬件的初始化和驱动的加载操作,bds阶段的主要作用就是初始化外设,加载外设的uefi驱动并从所有可启动介质上找到可启动的启动项,tls从选择的启动项加载操作系统启动引导程序,并将系统控制权交到操作系统。
3.在uefi bios启动流程中,uefi bios固件从启动介质上加载操作系统启动引导程序并将控制权交给linux操作系统后,操作系统会重新扫描系统外设,并依次加载操作系统下的设备驱动。从uefi bios启动到操作系统加载完成,对外设扫描和初始化操作通过不同类型的代码(uefi和linux)至少做了两次。
4.linuxboot是通过linux内核来初始化外设并从可启动介质上找到可启动的启动项,然后从选择的可启动项上启动操作系统,是下一代系统固件的重要发展方向之一。uefi结合linuxboot技术,uefi代码主要完成基本的硬件包括cpu、内存和芯片组的初始化,使用linuxboot替换uefi bios的bds阶段和tsl阶段的初始化外设和加载操作系统功能,采用linux内核下的设备驱动来代替uefi的设备驱动和协议驱动,减少了uefi bios固件的代码量,减少了系统固件的安全风险。这种集成了linuxboot的uefi固件将是下一代系统固件的重要的一个发展方向。
5.一般情况下linuxboot是由用户在开源linux内核基础上加入自定义的功能实现的,用户的linuxboot部分的代码和功能是非公开的。服务器的uefi bios固件通常是由服务器厂商开发的闭源代码,以不可更改的二进制程序包镜像分发给用户使用。目前还不能将用户的linuxboot功能和服务器厂商的uefi bios固件结合起来使用,形成集成linuxboot的uefi bios固件,即目前还没有用户能够自由更新linuxboot的应用方案。
6.此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种集成linuxboot的uefi固件启动方法及装置,是非常有必要的。


技术实现要素:

7.针对现有技术的上述现有技术中缺少将将用户的linuxboot功能和服务器厂商的uefi bios固件结合起来使用,形成集成linuxboot的uefi bios固件的应用方案的缺陷,本发明提供一种集成linuxboot的uefi固件启动方法及装置,以解决上述技术问题。
8.第一方面,本发明提供一种集成linuxboot的uefi固件启动方法,包括如下步骤:
9.s1.服务器厂商接收用户发送的linuxboot文件、公钥和启动标志,并将linuxboot
文件和公钥以及启动标志封装到uefi bios固件中;
10.s2.uefi bios启动过程中根据启动标志值及是否存在linuxboot文件选择加载linuxboot文件启动还是加载原有uefi bios逻辑启动;
11.s3.当需要进行linuxboot文件升级时,升级工具获取linuxboot升级文件,并通过uefi bios固件中公钥对linuxboot升级文件进行验签,并在验签通过时,使用linuxboot升级文件更新linuxboot文件。
12.进一步地,步骤s1具体步骤如下:
13.s11.服务器厂商在uefi bios固件flash中设置启动文件存放区及密码存放区;
14.s12.服务器厂商接收用户发送的linuxboot文件、公钥和启动标志;
15.s13.服务器厂商在uefi bios固件编译过程中将linuxboot文件存放到启动文件存放区,以及将公钥存放到密码存放区;
16.s14.服务器厂商将启动标志存放到uefi bios固件flash的nvram区域。nvram,是non

volatile random access memory的简称,是非易失性随机访问存储器,指断电后仍能保持数据的一种ram。
17.进一步地,步骤s2具体步骤如下:
18.s21.uefi bios固件启动;
19.s22.完成uefi的sec阶段及pei阶段初始化;
20.s23.进入uefi的dxe初始化阶段,判断启动标志值是否指示linuxboot文件启动;
21.若是,进入步骤s24;
22.若否,进入步骤s27;
23.s24.判断uefi bios固件的启动文件存放区是否存在linuxboot文件;
24.若是,进入步骤s25;
25.若否,进入步骤s27;
26.s25.跳过dxe外设驱动加载阶段,进入bds阶段;
27.s26.加载执行linuxboot文件,linux内核初始化外设,获取启动项,进入步骤s29;
28.s27.加载所有的dxe外设驱动,进入bds阶段;
29.s28.uefi初始化外设,获取启动项;
30.s29.操作系统加载启动项,进入步骤s3。当uefi bios在启动过程中根据存储在bios nvram里面的作为启动标志的值以及flash中是否存在linuxboot文件来决定是否使用linuxboot来初始化外设和启动系统;另外biosflash中存储客户的公钥文件,当客户需要更新linuxboot文件时候,通过公钥对待更新的linuxboot文件进行验签来保证linuxboot文件的安全升级。
31.进一步地,步骤s3具体步骤如下:
32.s31.当需要进行linuxboot文件升级时,用户根据升级包文件格式生成linuxboot升级文件,并将linuxboot升级文件复制到操作系统下;
33.s32.升级工具获取linuxboot升级文件,并通过bios的运行时升级服务读取uefi bios固件flash中公钥;
34.s33.bios的运行时升级服务通过公钥对linuxboot升级文件进行验签,并判断验签是否通过;
35.若是,进入步骤s34;
36.若否,判定linuxboot文件升级失败,结束;
37.s34.bios运行时升级服务在带内使用linuxboot升级文件更新uefi bios固件flash中的linuxboot文件。用户在服务器操作系统下,采用带内的方式升级linuxboot文件,通过升级工具读取linuxboot升级文件,并调用uefi bios提供的运行时升级服务,使用uefi bios flash中存储的用户的公钥对linuxboot升级文件进行验签,如果验签通过就将待更新的linuxboot文件写入到uefi bios flash中的linuxboot文件。如果验签失败,则本次升级失败,放弃本次升级。
38.进一步地,步骤s11服务器厂商在uefi bios固件中定义一个linuxboot升级二进制镜像包结构;所述linuxboot升级二进制镜像包结构包括文件头和linux升级文件;文件头包括linux文件版本号、大小以及对linux升级文件进行客户私钥前面的摘要信息;
39.步骤s31具体步骤如下:
40.s311.当需要进行linuxboot文件升级时,用户根据linuxboot升级二进制镜像包结构中linux文件版本号和大小准备文件,并进行编译生成linux升级文件;
41.s312.使用用户提供的私钥通过非对称加密的方式对linux升级文件进签名得到摘要信息;所述私钥与公钥对应,共同形成非对称加密的密钥对;
42.s313.将linux升级文件及其摘要信息复制到操作系统下。uefi bios需要定义一个linuxboot升级二进制镜像包结构,供使用linuxboot功能的客户升级linuxboot文件使用。linuxboot升级镜像包结构包括文件头和linuxboot文件。其中文件头包括linuxboot文件版本号,大小以及对linuxboot文件进行客户私钥签名的摘要信息等内容;客户自己编译生成linuxboot文件,然后使用客户的非对称加密的密钥对的私钥对linuxboot文件进行签名得到摘要信息并按照服务器厂商提供的linuxboot升级镜像包的格式要求最终生成可升级使用的linuxboot升级镜像文件。
43.进一步地,步骤s33中,bios的运行时升级服务通过公钥对linuxboot升级文件的摘要信息进行验签,并判断验签是否通过。由于客户的公钥和私钥一一对应,通过这种方式保证了只有用户能够安全的刷新linuxboot文件,而不依赖于服务器厂商更新整个bios文件,同时保证了用户linuxboot功能的私有性。
44.第二方面,本发明提供一种集成linuxboot的uefi固件启动装置,包括:
45.linuxboot文件固件封装模块,用于服务器厂商接收用户发送的linuxboot文件、公钥和启动标志,并将linuxboot文件和公钥以及启动标志封装到uefi bios固件中;
46.启动判断模块,用于uefi bios启动过程中根据启动标志值及是否存在linuxboot文件选择加载linuxboot文件启动还是加载原有uefi bios逻辑启动;
47.linuxboot文件升级模块,用于当需要进行linuxboot文件升级时,升级工具获取linuxboot升级文件,并通过uefi bios固件中公钥对linuxboot升级文件进行验签,并在验签通过时,使用linuxboot升级文件更新linuxboot文件。
48.进一步地,linuxboot文件固件封装模块包括:
49.存放区设置单元,用于服务器厂商在uefi bios固件flash中设置启动文件存放区及密码存放区;
50.启动文件接收单元,用于服务器厂商接收用户发送的linuxboot文件、公钥和启动
标志;
51.启动文件预设单元,用于服务器厂商在uefi bios固件编译过程中将linuxboot文件存放到启动文件存放区,以及将公钥存放到密码存放区;
52.启动标志预设单元,用于服务器厂商将启动标志存放到uefi bios固件flash的nvram区域。
53.进一步地,启动判断模块包括:
54.启动单元,用于uefi bios固件启动;
55.基本硬件初始化单元,用于完成uefi的sec阶段及pei阶段初始化;
56.启动标志判断单元,用于进入uefi的dxe初始化阶段,判断启动标志值是否指示linuxboot文件启动;
57.启动文件判断单元,用于启动标志指示linuxboot文件启动时,判断uefi bios固件的启动文件存放区是否存在linuxboot文件;
58.dxe外设驱动跳过单元,用于存在linuxboot文件,跳过dxe外设驱动加载阶段,进入bds阶段;
59.第一启动项获取单元,用于加载执行linuxboot文件,linux内核初始化外设,获取启动项;
60.dxe外设驱动加载单元,用于启动标志指示非linuxboot文件启动或不存在linuxboot文件时,加载所有的dxe外设驱动,进入bds阶段;
61.第二启动项获取单元,用于uefi初始化外设,获取启动项;
62.启动项加载单元,用于操作系统加载启动项。
63.进一步地,linuxboot文件升级模块包括:
64.升级文件生成单元,用于当需要进行linuxboot文件升级时,用户根据升级包文件格式生成linuxboot升级文件,并将linuxboot升级文件复制到操作系统下;
65.公钥获取单元,用于升级工具获取linuxboot升级文件,并通过bios的运行时升级服务读取uefi bios固件flash中公钥;
66.升级验签判断单元,用于bios的运行时升级服务通过公钥对linuxboot升级文件进行验签,并判断验签是否通过;
67.升级失败判定单元,用于验签不通过时,判定linuxboot文件升级失败;
68.升级文件更新单元,用于验签通过时,bios的运行时升级服务在带内使用linuxboot升级文件更新uefi bios固件flash中的linuxboot文件。
69.进一步地,存放区设置单元,用于服务器厂商在uefi bios固件中定义一个linuxboot升级二进制镜像包结构;所述linuxboot升级二进制镜像包结构包括文件头和linux升级文件;文件头包括linux文件版本号、大小以及对linux升级文件进行客户私钥前面的摘要信息;
70.升级文件生成单元,包括:
71.升级文件生成子单元,用于当需要进行linuxboot文件升级时,用户根据linuxboot升级二进制镜像包结构中linux文件版本号和大小准备文件,并进行编译生成linux升级文件;
72.升级文件签名子单元,用于使用用户提供的私钥通过非对称加密的方式对linux
升级文件进签名得到摘要信息;所述私钥与公钥对应,共同形成非对称加密的密钥对;
73.升级文件复制子单元,用于将linux升级文件及其摘要信息复制到操作系统下。
74.进一步地,升级验签判断单元,用于bios的运行时升级服务通过公钥对linux升级文件的摘要信息进行验签,并判断验签是否通过。
75.本发明的有益效果在于,
76.本发明提供的集成linuxboot的uefi固件启动方法及装置,实现服务器厂商uefi bios固件和用户linuxboot功能的集成应用。根据不同用户的需求来选择使用服务器厂商的传统的完全的uefi bios启动还是使用linuxboot启动,并且让使用linuxboot启动的用户能够自由安全升级linuxboot文件的方法,避免因为升级linuxboot文件给服务器带来安全问题,减少客户对服务器厂商的依赖,同时减少了服务器厂商的维护成本。
77.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
78.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
79.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
80.图1是本发明的集成linuxboot的uefi固件启动方法流程示意图一。
81.图2是本发明的集成linuxboot的uefi固件启动方法流程示意图二。
82.图3是本发明的集成linuxboot的uefi固件启动装置示意图。
83.图中,1

linuxboot文件固件封装模块;1.1

存放区设置单元;1.2

启动文件接收单元;1.3

启动文件预设单元;1.4

启动标志预设单元;2

启动判断模块;2.1

启动单元;2.2

基本硬件初始化单元;2.3

启动标志判断单元;2.4

启动文件判断单元;2.5

dxe外设驱动跳过单元;2.6

第一启动项获取单元;2.7

dxe外设驱动加载单元;2.8

第二启动项获取单元;2.9

启动项加载单元;3

linuxboot文件升级模块;3.1

升级文件生成单元;3.2

公钥获取单元;3.3

升级验签判断单元;3.4

升级失败判定单元;3.5

升级文件更新单元。
具体实施方式
84.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
85.sec,是security phase的简称,安全阶段,是uefi启动流程的一个阶段;pei,是pre

efi initialization的简称,预先efi初始化,是uefi启动流程的一个阶段;bds,是boot device selection的简称,选择boot设备是uefi启动流程中的一个阶段;dxe,是driver execution environment的简称,执行驱动配置环境,是uefi启动流程中的一个阶段。
86.实施例1:
87.如图1所示,本发明提供一种集成linuxboot的uefi固件启动方法,包括如下步骤:
88.s1.服务器厂商接收用户发送的linuxboot文件、公钥和启动标志,并将linuxboot文件和公钥以及启动标志封装到uefi bios固件中;
89.s2.uefi bios启动过程中根据启动标志值及是否存在linuxboot文件选择加载linuxboot文件启动还是加载原有uefi bios逻辑启动;
90.s3.当需要进行linuxboot文件升级时,升级工具获取linuxboot升级文件,并通过uefibios固件中公钥对linuxboot升级文件进行验签,并在验签通过时,使用linuxboot升级文件更新linuxboot文件。
91.实施例2:
92.如图2所示,本发明提供一种集成linuxboot的uefi固件启动方法,包括如下步骤:
93.s1.服务器厂商接收用户发送的linuxboot文件、公钥和启动标志,并将linuxboot文件和公钥以及启动标志封装到uefi bios固件中;具体步骤如下:
94.s11.服务器厂商在uefi bios固件flash中设置启动文件存放区及密码存放区;
95.s12.服务器厂商接收用户发送的linuxboot文件、公钥和启动标志;
96.s13.服务器厂商在uefi bios固件编译过程中将linuxboot文件存放到启动文件存放区,以及将公钥存放到密码存放区;
97.s14.服务器厂商将启动标志存放到uefi bios固件flash的nvram区域。nvram,是non

volatile random access memory的简称,是非易失性随机访问存储器,指断电后仍能保持数据的一种ram;
98.s2.uefi bios启动过程中根据启动标志值及是否存在linuxboot文件选择加载linuxboot文件启动还是加载原有uefi bios逻辑启动;具体步骤如下:
99.s21.uefi bios固件启动;
100.s22.完成uefi的sec阶段及pei阶段初始化;
101.s23.进入uefi的dxe初始化阶段,判断启动标志值是否指示linuxboot文件启动;
102.若是,进入步骤s24;
103.若否,进入步骤s27;
104.s24.判断uefi bios固件的启动文件存放区是否存在linuxboot文件;
105.若是,进入步骤s25;
106.若否,进入步骤s27;
107.s25.跳过dxe外设驱动加载阶段,进入bds阶段;
108.s26.加载执行linuxboot文件,linux内核初始化外设,获取启动项,进入步骤s29;
109.s27.加载所有的dxe外设驱动,进入bds阶段;
110.s28.uefi初始化外设,获取启动项;
111.s29.操作系统加载启动项,进入步骤s3;
112.s3.当需要进行linuxboot文件升级时,升级工具获取linuxboot升级文件,并通过uefi bios固件中公钥对linuxboot升级文件进行验签,并在验签通过时,使用linuxboot升级文件更新linuxboot文件;具体步骤如下:
113.s31.当需要进行linuxboot文件升级时,用户根据升级包文件格式生成liuxboot
升级文件,并将linuxboot升级文件复制到操作系统下;
114.s32.升级工具获取linuxboot升级文件,并通过bios的运行时升级服务读取uefi bios固件flash中公钥;
115.s33.bios的运行时升级服务通过公钥对linuxboot升级文件进行验签,并判断验签是否通过;
116.若是,进入步骤s34;
117.若否,判定linuxboot文件升级失败,结束;
118.s34.bios的运行时升级服务在带内使用linuxboot升级文件更新uefibios固件flash中的linuxboot文件。
119.实施例3:
120.如图2所示,本发明提供一种集成linuxboot的uefi固件启动方法,包括如下步骤:
121.s1.服务器厂商接收用户发送的linuxboot文件、公钥和启动标志,并将linuxboot文件和公钥以及启动标志封装到uefi bios固件中;具体步骤如下:
122.s11.服务器厂商在uefi bios固件flash中设置启动文件存放区及密码存放区;服务器厂商在uefi bios固件中定义一个linuxboot升级二进制镜像包结构;所述linuxboot升级二进制镜像包结构包括文件头和linux升级文件;文件头包括linux文件版本号、大小以及对linux升级文件进行客户私钥前面的摘要信息;
123.s12.服务器厂商接收用户发送的linuxboot文件、公钥和启动标志;
124.s13.服务器厂商在uefi bios固件编译过程中将linuxboot文件存放到启动文件存放区,以及将公钥存放到密码存放区;
125.s14.服务器厂商将启动标志存放到uefi bios固件flash的nvram区域;nvram,是non

volatile random access memory的简称,是非易失性随机访问存储器,指断电后仍能保持数据的一种ram;
126.s2.uefi bios启动过程中根据启动标志值及是否存在linuxboot文件选择加载linuxboot文件启动还是加载原有uefi bios逻辑启动;具体步骤如下:
127.s21.uefi bios固件启动;
128.s22.完成uefi的sec阶段及pei阶段初始化;
129.s23.进入uefi的dxe初始化阶段,判断启动标志值是否指示linuxboot文件启动;
130.若是,进入步骤s24;
131.若否,进入步骤s27;
132.s24.判断uefi bios固件的启动文件存放区是否存在linuxboot文件;
133.若是,进入步骤s25;
134.若否,进入步骤s27;
135.s25.跳过dxe外设驱动加载阶段,进入bds阶段;
136.s26.加载执行linuxboot文件,linux内核初始化外设,获取启动项,进入步骤s29;
137.s27.加载所有的dxe外设驱动,进入bds阶段;
138.s28.uefi初始化外设,获取启动项;
139.s29.操作系统加载启动项,进入步骤s3;uefi bios固件需要在dxe早期阶段读取nvram的启动标志“linuxbootenable”变量的值,如果该值为1,继续读取bios flash中的内
容,查看是否存在linuxboot fv区域,如果存在该区域,则读取linuxboot区域内容作为可加载的dxe镜像程序,同时跳过加载外设驱动等uefi dxe驱动到内存中,当uefi bios在进入到bds阶段后,在完成基本的设置后,直接加载启动linuxboot文件,linuxboot通过linux kernel对外设初始化,并找到外设启动介质上的操作系统启动项,从而跳过使用uefi版本的驱动初始化外设的操作;如果启动标志即变量“linuxbootenable”的值为假或者bios flash中不存在linuxboot文件,则按照传统的uefi bios启动逻辑,加载所有的uefi dxe驱动,进入bds阶段后初始化所有外设,从所有可能的启动介质上找到启动项,然后加载操作系统启动项;
140.s3.当需要进行linuxboot文件升级时,升级工具获取linuxboot升级文件,并通过uefi bios固件中公钥对linuxboot升级文件进行验签,并在验签通过时,使用linuxboot升级文件更新linuxboot文件;具体步骤如下:
141.s31.当需要进行linuxboot文件升级时,用户根据升级包文件格式生成linuxboot升级文件,并将linuxboot升级文件复制到操作系统下;具体步骤如下:
142.s311.当需要进行linuxboot文件升级时,用户根据linuxboot升级二进制镜像包结构中linux文件版本号和大小准备文件,并进行编译生成linux升级文件;
143.s312.使用用户提供的私钥通过非对称加密的方式对linux升级文件进签名得到摘要信息;所述私钥与公钥对应,共同形成非对称加密的密钥对;
144.s313.将linux升级文件及其摘要信息复制到操作系统下;
145.s32.升级工具获取linuxboot升级文件,并通过bios的运行时升级服务读取uefi bios固件flash中公钥;
146.s33.bios的运行时升级服务通过公钥对linuxboot升级文件进行验签,并判断验签是否通过;bios的运行时升级服务通过公钥对linux升级文件的摘要信息进行验签,并判断验签是否通过;
147.若是,进入步骤s34;
148.若否,判定linuxboot文件升级失败,结束;
149.s34.bios的在运行时升级服务在带内使用linuxboot升级文件更新uefibios固件flash中的linuxboot文件。
150.实施例4:
151.如图3所示,本发明提供一种集成linuxboot的uefi固件启动装置,包括:
152.liuxboot文件固件封装模块1,用于服务器厂商接收用户发送的linuxboot文件、公钥和启动标志,并将linuxboot文件和公钥以及启动标志封装到uefi bios固件中;
153.启动判断模块2,用于uefi bios启动过程中根据启动标志值及是否存在linuxboot文件选择加载linuxboot文件启动还是加载原有uefi bios逻辑启动;
154.linuxboot文件升级模块3,用于当需要进行linuxboot文件升级时,升级工具获取linuxboot升级文件,并通过uefi bios固件中公钥对linuxboot升级文件进行验签,并在验签通过时,使用linuxboot升级文件更新linuxboot文件。
155.实施例5:
156.如图3所示,本发明提供一种集成linuxboot的uefi固件启动装置,包括:
157.linuxboot文件固件封装模块1,用于服务器厂商接收用户发送的linuxboot文件、
公钥和启动标志,并将linuxboot文件和公钥以及启动标志封装到uefi bios固件中;linuxboot文件固件封装模块1包括:
158.存放区设置单元1.1,用于服务器厂商在uefi bios固件flash中设置启动文件存放区及密码存放区;
159.启动文件接收单元1.2,用于服务器厂商接收用户发送的linuxboot文件、公钥和启动标志;
160.启动文件预设单元1.3,用于服务器厂商在uefi bios固件编译过程中将linuxboot文件存放到启动文件存放区,以及将公钥存放到密码存放区;
161.启动标志预设单元1.4,用于服务器厂商将启动标志存放到uefi bios固件flash的nvram区域;
162.启动判断模块2,用于uefi bios启动过程中根据启动标志值及是否存在linuxboot文件选择加载linuxboot文件启动还是加载原有uefi bios逻辑启动;启动判断模块2包括:
163.启动单元2.1,用于uefi bios固件启动;
164.基本硬件初始化单元2.2,用于完成uefi的sec阶段及pei阶段初始化;
165.启动标志判断单元2.3,用于进入uefi的dxe初始化阶段,判断启动标志值是否指示linuxboot文件启动;
166.启动文件判断单元2.4,用于启动标志指示linuxboot文件启动时,判断uefi bios固件的启动文件存放区是否存在linuxboot文件;
167.dxe外设驱动跳过单元2.5,用于存在linuxboot文件,跳过dxe外设驱动加载阶段,进入bds阶段;
168.第一启动项获取单元2.6,用于加载执行linuxboot文件,linux内核初始化外设,获取启动项;
169.dxe外设驱动加载单元2.7,用于启动标志指示非linuxboot文件启动或不存在linuxboot文件时,加载所有的dxe外设驱动,进入bds阶段;
170.第二启动项获取单元2.8,用于uefi初始化外设,获取启动项;
171.启动项加载单元2.9,用于操作系统加载启动项;
172.linuxboot文件升级模块3,用于当需要进行linuxboot文件升级时,升级工具获取linuxboot升级文件,并通过uefi bios固件中公钥对linuxboot升级文件进行验签,并在验签通过时,使用linuxboot升级文件更新linuxboot文件;linuxboot文件升级模块3包括:
173.升级文件生成单元3.1,用于当需要进行linuxboot文件升级时,用户根据升级包文件格式生成linuxboot升级文件,并将linuxboot升级文件复制到操作系统下;
174.公钥获取单元3.2,用于升级工具获取linuxboot升级文件,并通过bios的运行时升级服务读取uefi bios固件flash中公钥;
175.升级验签判断单元3.3,用于bios的运行时升级服务通过公钥对linuxboot升级文件进行验签,并判断验签是否通过;
176.升级失败判定单元3.4,用于验签不通过时,判定linuxboot文件升级失败;
177.升级文件更新单元3.5,用于验签通过时,bios的运行时升级服务在带内使用linuxboot升级文件更新uefi bios固件flash中的linuxboot文件。
178.实施例6:
179.如图3所示,本发明提供一种集成linuxboot的uefi固件启动装置,包括:
180.linuxboot文件固件封装模块1,用于服务器厂商接收用户发送的linuxboot文件、公钥和启动标志,并将linuxboot文件和公钥以及启动标志封装到uefi bios固件中;linuxboot文件固件封装模块1包括:
181.存放区设置单元1.1,用于服务器厂商在uefi bios固件flash中设置启动文件存放区及密码存放区;服务器厂商在uefi bios固件中定义一个linuxboot升级二进制镜像包结构;所述linuxboot升级二进制镜像包结构包括文件头和linux升级文件;文件头包括linux文件版本号、大小以及对linux升级文件进行客户私钥前面的摘要信息;
182.启动文件接收单元1.2,用于服务器厂商接收用户发送的linuxboot文件、公钥和启动标志;
183.启动文件预设单元1.3,用于服务器厂商在uefi bios固件编译过程中将linuxboot文件存放到启动文件存放区,以及将公钥存放到密码存放区;
184.启动标志预设单元1.4,用于服务器厂商将启动标志存放到uefi bios固件flash的nvram区域;
185.启动判断模块2,用于uefi bios启动过程中根据启动标志值及是否存在linuxboot文件选择加载linuxboot文件启动还是加载原有uefi bios逻辑启动;启动判断模块2包括:
186.启动单元2.1,用于uefi bios固件启动;
187.基本硬件初始化单元2.2,用于完成uefi的sec阶段及pei阶段初始化;
188.启动标志判断单元2.3,用于进入uefi的dxe初始化阶段,判断启动标志值是否指示linuxboot文件启动;
189.启动文件判断单元2.4,用于启动标志指示linuxboot文件启动时,判断uefi bios固件的启动文件存放区是否存在linuxboot文件;
190.dxe外设驱动跳过单元2.5,用于存在linuxboot文件,跳过dxe外设驱动加载阶段,进入bds阶段;
191.第一启动项获取单元2.6,用于加载执行linuxboot文件,linux内核初始化外设,获取启动项;
192.dxe外设驱动加载单元2.7,用于启动标志指示非linuxboot文件启动或不存在linuxboot文件时,加载所有的dxe外设驱动,进入bds阶段;
193.第二启动项获取单元2.8,用于uefi初始化外设,获取启动项;
194.启动项加载单元2.9,用于操作系统加载启动项;
195.linuxboot文件升级模块3,用于当需要进行linuxboot文件升级时,升级工具获取linuxboot升级文件,并通过uefi bios固件中公钥对linuxboot升级文件进行验签,并在验签通过时,使用linuxboot升级文件更新linuxboot文件;linuxboot文件升级模块3包括:
196.升级文件生成单元3.1,用于当需要进行linuxboot文件升级时,用户根据升级包文件格式生成linuxboot升级文件,并将linuxboot升级文件复制到操作系统下;升级文件生成单元,包括:
197.升级文件生成子单元,用于当需要进行linuxboot文件升级时,用户根据
linuxboot升级二进制镜像包结构中linux文件版本号和大小准备文件,并进行编译生成linux升级文件;
198.升级文件签名子单元,用于使用用户提供的私钥通过非对称加密的方式对linux升级文件进签名得到摘要信息;所述私钥与公钥对应,共同形成非对称加密的密钥对;
199.升级文件复制子单元,用于将linux升级文件及其摘要信息复制到操作系统下;
200.公钥获取单元3.2,用于升级工具获取linuxboot升级文件,并通过bios的运行时升级服务读取uefi bios固件flash中公钥;
201.升级验签判断单元3.3,用于bios的运行时升级服务通过公钥对linuxboot升级文件进行验签,并判断验签是否通过;bios的运行时升级服务通过公钥对linux升级文件的摘要信息进行验签;
202.升级失败判定单元3.4,用于验签不通过时,判定linuxboot文件升级失败;
203.升级文件更新单元3.5,用于验签通过时,bios的运行时升级服务在带内使用linuxboot升级文件更新uefi bios固件flash中的linuxboot文件。
204.本发明可以应用到服务器、存储、交换机等计算机系统涉及集成了linuxboo启动应用的场景。
205.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献