一种锁定BIOS启动项的方法技术

技术编号:18657806 阅读:85 留言:0更新日期:2018-08-11 14:21
本发明专利技术公开了一种锁定BIOS启动项的方法,所述BIOS基于UEFI固件,包括下述步骤:从环境变量获取用户设定的启动类型;所述的环境变量用以指代启动设备的类型;所述启动类型包括,硬盘启动、光盘启动和USB设备启动;然后,根据环境变量判断启动类型是否为硬盘启动;如果是,则枚举系统中的所有硬盘,获取各硬盘的Disk Info Protocol和对应的Device Path Protocol,遍历查找符合锁定条件的硬盘,找到后,建立启动项并调整Boot Order,将新建立的启动项加入链表表头,使用UEFI BIOS通用的启动策略引导操作系统;否则,直接使用UEFI BIOS通用的启动策略引导操作系统。

A method for locking BIOS startup items

The invention discloses a method for locking BIOS startup items, the BIOS is based on UEFI firmware and comprises the following steps: obtaining a user-set startup type from an environment variable; the environment variable is used to refer to the type of startup device; the startup type includes a hard disk startup, a CD startup, and a USB device startup; and then, Determine whether the boot type is hard disk boot according to the environment variables; if so, enumerate all the hard disks in the system, get the Disk Info Protocol of each hard disk and the corresponding Device Path Protocol, traverse to find the hard disk that meets the locking conditions, find it, establish the boot item and adjust the Boot Order, and create the new boot item. Add the list header and boot the operating system using the UEFI BIOS general boot policy; otherwise, boot the operating system directly using the UEFI BIOS general boot policy.

【技术实现步骤摘要】
一种锁定BIOS启动项的方法
本专利技术属于计算机
,特别涉及一种锁定BIOS启动项的方法。
技术介绍
现今,PC及服务器上的BIOS都是基于UEFI架构的,UEFI(UnifiedExtensibleFirmwareInterface)既通用可扩展固件接口,是新一代的基本输入输出系统技术,旨在定义一套完整的操作系统与固件之间的规范。各个厂家的BIOS都有不同的选择启动项的模式,针对不同的平台和应用场景。其中,有些应用场景由于未连接显示设备(如部分服务器平台),无法通过BIOS界面选择指定的启动项;更多的是一些多硬盘的应用场景,需要从特定硬盘启动,但每次硬盘插拔均会改变多硬盘的启动顺序,需要重新进入BIOS界面修改启动顺序,操作十分不便,故需要一种锁定BIOS启动项的方法。
技术实现思路
针对上述缺陷,本专利技术的目的在于提供一种锁定BIOS启动项的方法,在多硬盘的应用场景下,能够有效的避免硬盘插拔或添加等操作影响启动项,使用户能够直接设定系统从特定的硬盘启动。本专利技术为实现上述目的,通过以下技术方案实现:一种锁定BIOS启动项的方法,所述BIOS基于UEFI固件,包括下述步骤:从环境变量获取用户设定的启动类型;所述的环境变量用以指代启动设备的类型;所述启动类型包括,硬盘启动、光盘启动和USB设备启动;然后,根据环境变量判断启动类型是否为硬盘启动;如果是,则枚举系统中的所有硬盘,获取各硬盘的DiskInfoProtocol和对应的DevicePathProtocol,遍历查找符合锁定条件的硬盘,找到后,建立启动项并调整BootOrder,将新建立的启动项加入链表表头,使用UEFIBIOS通用的启动策略引导操作系统;否则,直接使用UEFIBIOS通用的启动策略引导操作系统。进一步,所述环境变量的设定方法包括,将硬盘启动的环境变量设为0,将光盘启动的环境变量设为1,将USB设备启动的环境变量设为2,并在BIOSSetup界面下建立对应的选项,允许用户修改环境变量的值。进一步,所述DiskInfoProtocol用于获取硬盘名称和硬盘SN码。进一步,所述DevicePathProtocol用于获取硬盘所对应的SATA控制器地址和硬盘在SATA控制器中对应的port口编号。进一步,所述遍历查找符合锁定条件的硬盘的方法包括以下步骤:判断是否有仍未遍历的硬盘,如果否,直接使用UEFIBIOS通用的启动策略引导操作系统;如果是,继续遍历下一个硬盘,并将硬盘名称、硬盘SN码、硬盘所对应的SATA控制器地址和对应的port口编号与锁定条件对比,确定符合锁定条件的硬盘;若仍然无法确定符合锁定条件的硬盘,继续遍历查找符合锁定条件的硬盘。进一步,所述锁定条件为用户指定的硬盘名称、硬盘SN码或硬盘所对应的SATA控制器地址。对比现有技术,本专利技术有益效果在于:本专利技术提出的一种锁定BIOS启动项的方法,它能够根据用户指定的硬盘启动项调整UEFIBIOS中的BootOrder环境变量,将新建立的启动项插入BootOrder链表的表头,并从BootOrder中所记录的第一个启动项引导操作系统,从而实现从特定硬盘启动的功能。本专利技术首先根据环境变量判断启动类型,用户可以自主添加启动设备并修改环境变量的值,提高了系统的兼容性。在进行硬盘遍历查找时,使用UEFI规范中的HandleProtocol接口,获取系统中所有的DiskInfoProtocol接口,利用该接口的硬盘名称和硬盘SN码等信息,同时在DiskInfoProtocol接口所对应的ControllerHandle上获取DevicePathProtocol接口,利用该接口获取硬盘所对应的SATA控制器地址和硬盘在SATA控制器中对应的port口编号并将上述信息一一对应后作为硬盘识别判定的依据,保证了硬盘识别的准确性;将硬盘名称、硬盘SN码和硬盘所对应的SATA控制器地址均作为硬盘的锁定条件,实现了锁定条件的多样性,便于用户的操作。另外,本专利技术基于UEFI固件,采用UEFIBIOS通用的启动策略,适用于当今主流的PC平台和服务器平台。附图说明附图1是本专利技术的方法流程图。具体实施方式下面结合附图对本专利技术的具体实施方式做出说明。如图1所示的一种锁定BIOS启动项的方法,首先读取根据环境变量的数值,判断用户所选择的启动设备类型,若值为0,则从硬盘启动。使用UEFI规范中的HandleProtocol接口,获取系统中所有的DiskInfoProtocol接口,利用该接口的硬盘名称和硬盘SN码等信息,同时在DiskInfoProtocol接口所对应的ControllerHandle上获取DevicePathProtocol接口,利用该接口获取硬盘所对应的SATA控制器地址和硬盘在SATA控制器中对应的port口编号。根据用户指定的地址、指定名称或指定SN码的硬盘,对上述枚举信息进行筛选,锁定所需的特定硬盘。若用户选择从特定地址的硬盘启动,则首先通过SATA控制器所在的PCIBus号、PCIDevice号和PCIFunction号判断硬盘所在SATA控制器的地址是否正确,SATA控制器地址正确则进一步对比硬盘在SATA控制器中对应的port口编号,port口编号也正确即判定为被锁定的硬盘;若用户选择从特定名称或SN码的硬盘启动,则将硬盘信息中的名称或SN码与被锁定硬盘的名称或SN码进行比对,若名称或SN码一致即判定为被锁定的硬盘。筛选完成后,仅针对该硬盘建立对应的环境变量记录硬盘信息,将其作为BIOS启动项。同时调整UEFIBIOS中的BootOrder环境变量,将新建立的启动项插入BootOrder链表的表头。最后,按照UEFIBIOS通用的启动策略,从BootOrder中所记录的第一个启动项引导操作系统,从而实现从特定硬盘启动的功能。另外,在上述的对枚举信息进行筛选,锁定所需的特定硬盘的过程中,如果遍历所有硬盘后仍无法找到符合锁定条件的硬盘,则直接按照UEFIBIOS通用的启动策略,从BootOrder中所记录的第一个启动项引导操作系统。结合附图和具体实施例,对本专利技术作进一步说明。应理解,这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围。此外应理解,在阅读了本专利技术讲授的内容之后,本领域技术人员可以对本专利技术作各种改动或修改,这些等价形式同样落于本申请所限定的范围。本文档来自技高网...

【技术保护点】
1.一种锁定BIOS启动项的方法,所述BIOS基于UEFI固件,其特征在于,包括以下步骤:从环境变量获取用户设定的启动类型;所述的环境变量用以指代启动设备的类型;所述启动类型包括,硬盘启动、光盘启动和USB设备启动;根据环境变量判断启动类型是否为硬盘启动;如果是,则枚举系统中的所有硬盘,获取各硬盘的Disk Info Protocol和对应的Device Path Protocol,遍历查找符合锁定条件的硬盘,找到后,建立启动项并调整Boot Order,将新建立的启动项加入链表表头,使用UEFI BIOS通用的启动策略引导操作系统;否则,直接使用UEFI BIOS通用的启动策略引导操作系统。

【技术特征摘要】
1.一种锁定BIOS启动项的方法,所述BIOS基于UEFI固件,其特征在于,包括以下步骤:从环境变量获取用户设定的启动类型;所述的环境变量用以指代启动设备的类型;所述启动类型包括,硬盘启动、光盘启动和USB设备启动;根据环境变量判断启动类型是否为硬盘启动;如果是,则枚举系统中的所有硬盘,获取各硬盘的DiskInfoProtocol和对应的DevicePathProtocol,遍历查找符合锁定条件的硬盘,找到后,建立启动项并调整BootOrder,将新建立的启动项加入链表表头,使用UEFIBIOS通用的启动策略引导操作系统;否则,直接使用UEFIBIOS通用的启动策略引导操作系统。2.根据权利要求1所述的锁定BIOS启动项的方法,其特征在于:所述环境变量的设定方法包括,将硬盘启动的环境变量设为0,将光盘启动的环境变量设为1,将USB设备启动的环境变量设为2,并在BIOSSetup界面下建立对应的选项,允许用户修改环境变量的值。3.根据权利要...

【专利技术属性】
技术研发人员:孙文健吴登勇陈亮甫孙动
申请(专利权)人:山东超越数控电子股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1