CN117648695A - 启动服务器的方法及装置 - Google Patents
启动服务器的方法及装置 Download PDFInfo
- Publication number
- CN117648695A CN117648695A CN202311541902.1A CN202311541902A CN117648695A CN 117648695 A CN117648695 A CN 117648695A CN 202311541902 A CN202311541902 A CN 202311541902A CN 117648695 A CN117648695 A CN 117648695A
- Authority
- CN
- China
- Prior art keywords
- server
- usb
- starting
- equipment
- paths
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000001514 detection method Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 10
- 230000008439 repair process Effects 0.000 abstract description 9
- 238000004458 analytical method Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 18
- 108010028984 3-isopropylmalate dehydratase Proteins 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000009191 jumping Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种启动服务器的方法及装置,包括:响应于USB启动热键,获取服务器的多条启动路径;根据服务器的多条启动路径确定服务器连接的设备中是否存在USB设备;在服务器连接的设备中存在USB设备的情况下,在服务器连接的USB设备中确定目标USB设备;通过目标USB设备启动所述服务器。通过本发明,解决了服务器不可使用的问题,进而达到了提高问题分析效率,节省问题修复时间,保证客户数据的机密性的效果。
Description
技术领域
本发明实施例涉及通信领域,具体而言,涉及一种启动服务器的方法及装置。
背景技术
在服务器整机的设计中,安全稳定的运行是产品设计的最终目标,也是赢得客户好评的关键指标,但是不管是在工厂生产时多么稳定的服务器,出厂后在不同的环境下运行的时候不免会有各种问题出现。
现有技术中,当服务器的服务挂掉之后,需要运维人员对服务器进行重启,效率较低。并且需要在客户的服务器上配置的硬盘中安装故障检测环境,进行问题分析。由于客户的服务器中的很多信息都是保密的,在整机配置上的硬盘中安装故障检测环境,存在安全性问题。并且当服务器在客户那里进行批量供货并开展业务后,对于出现问题的批量服务器,一台一台的搭建故障检测环境分析问题非常浪费时间,影响问题的解决效率。
针对上述问题,目前尚未存在有效的解决方案。
发明内容
本发明实施例提供了一种启动服务器的方法及装置,以至少解决相关技术中服务器重启效率较低问题。
根据本发明的一个实施例,提供了一种启动服务器的方法,包括:响应于USB启动热键,获取服务器的多条启动路径;根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备;在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备;通过所述目标USB设备启动所述服务器。
在一个示例性实施例中,在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备,包括:获取所述服务器连接的所述USB设备的身份标识;将所述USB设备的身份标识与TF卡的身份标识进行匹配;在所述USB设备的身份标识与所述TF卡的身份标识不匹配的情况下,将所述USB设备确定为候选USB设备;根据所述候选USB设备确定所述目标USB设备。
在一个示例性实施例中,根据所述候选USB设备确定所述目标USB设备,包括:检测所述候选USB设备中是否存在启动文件;在所述候选USB设备中存在所述启动文件的情况下,将所述候选USB设备确定为所述目标USB设备。
在一个示例性实施例中,所述根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备,包括:确定所述服务器的多条启动路径中是否存在USB启动路径;在所述多条启动路径中存在所述USB启动路径的情况下,确定所述USB启动路径对应的设备为所述USB设备。
在一个示例性实施例中,在所述通过所述目标USB设备启动所述服务器之后,所述方法还包括:通过所述目标USB设备中的故障检测环境检测所述服务器是否存在故障;在所述服务器存在所述故障的情况下,在所述目标USB设备中加载目标文件;通过所述目标文件读取所述服务器上的寄存器信息;通过所述服务器上的寄存器信息对所述服务器的故障进行修复。
在一个示例性实施例中,在所述响应于USB启动热键,获取服务器的多条启动路径之前,所述方法还包括:将所述服务器连接的设备挂载在根节点上,并为每个挂载在所述根节点上的设备分配身份标识。
在一个示例性实施例中,所述方法还包括:在所述服务器连接的设备中不存在所述目标USB设备的情况下,通过启动项启动所述服务器。
在一个示例性实施例中,所述启动服务器的方法应用于AMD平台。
根据本发明的另一个实施例,提供了一种启动服务器的装置,包括:响应模块,用于响应于USB启动热键,获取服务器的多条启动路径;第一确定模块,用于根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备;第二确定模块,用于在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备;启动模块,用于通过所述目标USB设备启动所述服务器。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,响应于USB启动热键,获取服务器的多条启动路径;根据服务器的多条启动路径确定服务器连接的设备中是否存在USB设备;在服务器连接的设备中存在USB设备的情况下,在服务器连接的USB设备中确定目标USB设备;通过目标USB设备启动服务器。
由于本申请中的USB设备是移动设备,在USB设备中存储了启动文件,通过USB设备启动服务器可以提升服务器的启动效率。因此,可以解决相关技术中服务器重启效率较低的问题。
并且USB设备中安装了故障检测环境,通过USB设备可对服务器进行故障检测,这样无需在客户的服务器上安装故障检测环境,保证了客户服务器上信息的安全性。
附图说明
图1是本发明实施例的一种启动服务器的方法的移动终端的硬件结构框图;
图2是根据本发明实施例的启动服务器方法的流程图;
图3是根据本发明实施例的整体流程图;
图4是根据本发明实施例的启动服务器装置的结构框图。
具体实施方式
下面对本申请中的英文简称解释说明:
IPMI:Intelligent Platform Management Interface,智能平台管理接口,IPMI能够横跨不同的操作系统、固件和硬件平台,可以智能的监视、控制和自动回报大量服务器的运作状况,以降低服务器系统成本。
BIOS:Basic Output and Input,基本输入输出系统,是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它有读写系统设置的具体信息。
修复:是一种高效的BIOS问题定位原因方式。
USB Controller:USB控制器,从CPU直出的用于挂载USB设备的控制器。
PEI:Pre-EFI Initialization,BIOS启动过程中的EFI前期初始化阶段。
DXE:Driver Execution Environment,BIOS启动过程中的驱动执行环境。
UEF:Unified Extensible Firmware Interface,统一可扩展固件接口,可扩展固件接口负责加电自检(POST)、联系操作系统以及提供连接操作系统与硬件的接口。
Leagcy:Legacy模式是传统的BIOS启动,和MBR分区模式相互依存,可以进行MBR分区系统的安装,支持所有Windows系统的安装,兼容性较强。
TF卡:本专利中指的是一种提供给BMC用于存储其操作日志、用于自身回滚的一种微型操作系统。
RU/RW:基于Shell和Window的用于读写PCIE寄存器信息的工具。
在服务器的使用过程中,经常会遇到服务器开机后,OS下驱动无法安装(例如IPMI驱动无法安装),导致带内服务无法使用、有时候BMC带外服务挂死,这种情况下带外服务也是不可以使用的,对于客户而言当前有很多业务还是要依赖无法来实现的,此时就需要一个备份的OS来实现带内和带外服务挂死之后来支持客户的服务并可以支持运维人员使用备份的服务来修复分析问题,在本申请中可以将一个普通的U盘配置成系统盘即可满足该需求。以此解决现有技术中运维人员手动启动服务器导致的服务器启动效率低的问题。
当今AI服务器的兴起,也就促成了众多服务器在设计的时候能有更多的PCIE资源用于支持GPU等加速卡的使用,也就没有那么多资源给存储硬盘使用,于是一台AI服务器在配置一个存储硬盘已经是正常的配置,一个存储硬盘的大小对于整机数据的存储来说是偏小的,这就需要一些外接的设备可以提供更多的存储空间;同时当整机出现问题的时候,在配置的存储硬盘上安装修复工具也是客户不能接受的方式,这时候就可以使用一个USB启动盘来安装修复环境,进行问题的修复,并且USB启动盘的便携性也是固定硬盘无法比拟的。在本申请中USB启动盘中安装了故障检测环境,通过USB启动盘就可以对服务器进行故障检测。以此解决现有技术中在客户的服务器中安装故障检测环境导致的安全性较低的问题,达到提高用户信息的安全性,提升用户体验的技术效果。
基于USB启动盘的问题分析,不同的平台在适配上是不同的,在AMD平台上需要服务器可以准确扫描到U盘所在的USB Controller,这是保证USB启动盘正确运行的前提,并且USB Controller下并不是只挂载USB启动盘,还需要区分U盘和TF卡等设备的位置信息,TF并不能作为一种正常的启动盘来使用,所以就需要服务器在检测到TF卡的存在时不做启动,直接跳过。
前期条件:服务器可以正常开机,并且CPU可以对所有的USB Controller进行初始化,只有CPU可以正常长出USB Controller,BIOS才可以正常识别USB接口上接的USB设备。
本发明方案用于AMD平台X86架构的服务器产品。
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种启动服务器的方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的启动服务器的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于网络架构的启动服务器的方法,图2是根据本发明实施例的启动服务器方法的流程图,所述启动服务器的方法可以应用于AMD平台。如图2所示,该流程包括如下步骤:
步骤S202,响应于USB启动热键,获取服务器的多条启动路径;
其中,上述响应于USB启动热键,在服务器开机到运行到Post阶段完成,启动热键可以是Ctrl+F8。当Post阶段有检测到按了USB启动的热键之后,BIOS会加载所有启动路径。
具体地,按下热键Ctrl+F8后,服务器检测到按下启动热键,BIOS会调取函数InspurEnterUsbCardBoot函数,从而进入USB Boot启动的函数入口,其可以通过热键的类型来加载不同的启动路径,代码如下:
VOID InspurEnterUsbCardBoot()
{}
步骤S204,根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备;
其中,上述服务器的多条启动路径可以是USB启动路径、IPMI启动路径、HBA启动路径等。每个启动路径连接一个相关的设备,例如USB启动路径连接USB设备。
可以通过BIOS轮询所有的启动路径来查找是否USB启动路径,假如有USB启动路径,则会优先加载USB启动设备,否则按照正常的启动顺序进行轮询。
可以根据不同的Boot启动模式,使用不同的方式抓取USB设备。
当Boot启动模式为UEFI的时候,因为UEFI模式下,在BIOS Setup启动路径下空的U盘不会生成一个启动路径,故需要在DXE阶段通过加载EFI_DEVICE_PATH_PROTOCOL协议来抓取所有设备的启动路径,将其存在DevicePathNode这个字符串中,因硬盘、网卡、CDROM等设备的启动路径是不同的,故而可以判断所有的设备启动路径中是否有USB设备的路径来确认USB设备的有无。
具体地,UEFI模式下BIOS会通过判断所有设备的启动路径类型来确认哪种是可以启动的USB系统盘,具体函数实现代码如下:
VOID EfiUsbBoot(VOID)
{}
UINT8 DevicePathIsUsbKey(IN EFI_DEVICE_PATH_PROTOCOL*DevicePath)
{}
当Boot启动模式为Leagcy模式的时候,所有的启动设备不管有启动镜像,都会在Setup BootOverride下生成一个启动路径,直接抓取所有设备的启动路径,通过USBController的设备号Vendor ID和厂商号Device ID来确认启动路径是否是USB设备即可。
具体地,根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备,包括以下步骤:
在所述多条启动路径中存在所述USB启动路径的情况下,确定所述USB启动路径对应的设备为所述USB设备。
步骤S206,在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备;
其中,上述USB设备可以是U盘,也可以是TF卡。由于TF卡并不能作为一种正常的启动盘来使用,所以就需要对USB设备进行识别,判断USB设备是否为TF卡,如果是TF卡不做服务器启动,直接跳过。
可以根据USB设备的身份标识对USB设备进行判别,USB设备的身份标识由Busnumber、Device、Function(简称BDF)组成。在PCIE系统中,Bus number+Device+Function可以确定唯一的设备,即Bus number+Device+Function是设备的身份标识。
具体地,可以通过如下方式实现对USB设备进行判别:获取所述服务器连接的所述USB设备的身份标识;将所述USB设备的身份标识与TF卡的身份标识进行匹配;在所述USB设备的身份标识与所述TF卡的身份标识不匹配的情况下,将所述USB设备确定为候选USB设备;根据所述候选USB设备确定所述目标USB设备。
其中,TF卡的身份标识由Bus number、Device、Function(简称BDF)组成,TF卡的身份标识可以是预先记录在数据库中,将USB设备的BDF与TF卡的BDF进行比对,如果USB设备的BDF与TF卡的BDF相同,则确定该USB设备为TF卡,直接跳过该路径即可,如果该USB设备的BDF与TF卡的BDF不同,确定该USB设备为U盘,该USB设备作为启动服务器的候选USB设备。
在Boot启动模式为UEFI的时候,当服务器上接上TF卡后,TF卡的身份标识BDF(Busnumber、Device、Function)是固定的,TF卡的身份标识BDF可以预先记录在数据库。这时候可以通过数据库读取TF卡的BDF来固定下来其挂载的USB控制器根节点USB ControllerRoot Port的BDF,这样下来就可以在DXE阶段通过抓取服务器挂载的所有设备的根节点Root Port的BDF来和TF卡的BDF进行对比,当设备Root Port的BDF和TF卡的BDF可以匹配的时候,就确认该服务器上挂载的设备中存在TF卡,当设备Root Port的BDF和TF卡的BDF不能匹配的时候,就该服务器上挂载的设备中不存在TF卡。
在Boot启动模式为Leagcy的时候,通过USB Controller的厂商号Vendor ID和设备号Device ID来确认USB设备是否为TF卡。
具体地,不管Boot启动模式是UEFI还是Leagcy,都需要判断USB设备是TF卡还是正常的USB启动设备,判断函数如下:
在上述实施例中,由于USB设备中的TF卡无法启动服务器,而服务器挂载的USB设备中可能存在TF,若不对USB设备的TF卡识别,直接使用USB设备对服务器进行启动,会出现无法启动服务器的状况,影响了服务器的启动效率。而在本申请中,预先存储了TF卡的身份标识,通过将USB设备的身份标识与TF卡的身份标识进行比对识别USB设备是否为TF卡,如果USB设备是TF卡则直接跳过TF卡启动服务器,可以提高服务器的启动效率。
可以通过如下方式判断候选USB设备是否为可以启动服务器的目标USB设备:
检测所述候选USB设备中是否存在启动文件;
在所述候选USB设备中存在所述启动文件的情况下,将所述候选USB设备确定为所述目标USB设备。
上述启动文件Media启动文件,对比U盘的启动路径来判断该U盘中是否有启动文件,确认该U盘是启动盘还是普通的存储U盘,如果候选USB设备中存在Media启动文件则确定该USB设备为启动盘(目标USB设备),如果候选USB设备中不存在Media启动文件,则该USB设备无法启动服务器,跳过该USB设备。
在上述实施例中,可以将启动文件预先存储在USB设备中,通过识别服务器挂载的USB设备(非TF卡)中是否存在存在启动文件,确定服务器上是否挂载了可以启动服务器的目标USB设备,如果存在,则使用目标USB设备即可实现启动服务器。达到了通过USB设备启动服务器的目的,进而解决了现有技术中需要运维人员对服务器进行重启导致的服务器重启效率较低的问题,达到了提高服务器重启效率的效果。另外,对于批量出现问题的服务器,由于USB设备是可移动的,便携性较高,通过一个USB设备即可对批量出现问题的服务器进行重启和修复,相比于运维人员手动对服务器进行重启和修复,USB设备启动和修复服务器操作简单、对环境运行依赖小、可移动且便携性较好。
步骤S208,通过所述目标USB设备启动所述服务器。
在本申请中,基于普通的USB设备,将其配置成可以启动服务器的USB启动盘(目标USB设备),并且能够在服务器上通过设备路径的轮询来找到对应的启动项,并完成正常的启动。可以实现USB系统盘对服务器配置的系统盘的备份,解决了现有技术中服务器出现问题的时候可以有环境作为备用及时投入问题的修复分析,同时保证客户数据的机密性的问题。
可选地,上述步骤的执行主体可以是后台处理器,或者其他的具备类似处理能力的设备,还可以是至少集成有图像获取设备以及数据处理设备的服务器,其中,图像获取设备可以包括摄像头等图形采集模块,数据处理设备可以包括计算机、手机等终端,但不限于此。
通过上述步骤,由于本申请中的USB设备是移动设备,在USB设备中存储了启动文件,通过USB设备启动服务器可以提升服务器的启动效率。因此,可以解决相关技术中服务器重启效率较低的问题。
并且USB设备中安装了故障检测环境,通过USB设备可对服务器进行故障检测,这样无需在客户的服务器上安装故障检测环境,保证了客户服务器上信息的安全性。
作为一个可选的实施方式,在所述通过所述目标USB设备启动所述服务器之后,所述方法还包括:
通过所述目标USB设备中的故障检测环境检测所述服务器是否存在故障;
其中,可以在目标USB设备中配置故障检测环境,通过目标USB设备中的故障检测环境可以检测服务器是否存在故障,具体地,可以通过如下方式在目标USB设备中配置故障检测环境:
可以直接将OS镜像安装在目标USB设备中,然后目标USB设备挂载在服务器上,通过热键可以直接进OS,这样就可以在该目标USB设备启动盘中配置IPMI等故障检测环境(也称为debug环境)。也可以在U盘中放置shell文件(目标文件),通过热键从目标USB设备启动的时候,BIOS会加载shell文件,在shell路径下可以运行RU、RW等工具来读写服务器上的PCIE设备的寄存器等信息,对服务器的故障修复是非常有帮助的。
在所述服务器存在所述故障的情况下,在所述目标USB设备中加载目标文件;
其中,目标文件为上述实施例中的shell文件。
通过所述目标文件读取所述服务器上的寄存器信息;
其中,所述服务器上的寄存器信息包括但不限于服务器上的PCIE设备的寄存器等信息,具体地,可以通过如下方式读取所述服务器上的寄存器信息:在shell路径下可以运行RU、RW等工具来读写服务器上的PCIE设备的寄存器等信息。
通过所述服务器上的寄存器信息对所述服务器的故障进行修复。
其中,所述寄存器信息为USB Boot启动之后的故障检测环境的配置信息。基于问题的类型以及运维人员来安装不同的修复工具,配置不同的故障检测环境等。
例如,对于USB启动盘的安装,可以直接将OS镜像安装在U盘中,然后将USB启动盘放置在服务器上,通过热键可以直接进OS,这样就可以在该USB启动盘中配置IPMI服务等故障检测环境。
也可以在U盘中放置shell文件,通过热键从U盘启动的时候,BIOS会加载shell文件,在shell路径下可以运行RU、RW等工具来读写服务器上的PCIE设备的寄存器等信息,对修复问题是非常有帮助的。
作为一个可选的实施方式,在所述响应于USB启动热键,获取服务器的多条启动路径之前,所述方法还包括:
将所述服务器连接的设备挂载在根节点上,并为每个挂载在所述根节点上的设备分配身份标识。
其中,上述身份标识为BDF(Bus number、Device、Function),身份标识中的Busnumber为总线号,Device为设备号,Function为功能号。
在UEFI的PEI阶段,CPU会初始化所有的USB Controller,待初始化完成之后,对于USB Controller的配置可以在UEFI的多个阶段进行。待USB Controller配置完成之后,主板上接的USB设备会挂在USB Controller的BDF下面被分配一个BDF,从而对应的USB设备即可被CPU逐级轮询到。
具体地,CPU在PEI阶段会初始化USB Controller,只有USB Controller初始化后,接上USB设备BIOS才会扫描到,涉及到的代码如下:
通过上述实施例实现了对USB控制器的初始化。
下面通过一个具体实施例说明本申请,如图3所示的流程图,包括以下步骤:
步骤1:服务器正常开机,服务器的中央处理器CPU对所有的USB控制器(USBController)进行初始化;
在该方案的实现过程中,需要服务器可以正常开机,并且中央处理器CPU可以对所有的USB Controller进行初始化,只有CPU可以正常对USB Controller进行初始化,BIOS才可以正常识别USB接口上接的USB设备,在UEFI的PEI阶段,CPU会初始化所有的USBController。
步骤2:待初始化完成之后,对于USB Controller的配置可以在UEFI的多个阶段进行。初始化完成之后,CPU对USB Controller进行配置,并在USB Controller配置完成之后给每个挂在USB Controller下的USB设备分配一个BDF(Bus number、Device、Function,身份标识,其中Bus number为总线号、Device为设备号、Function为功能号),从而对应的USB设备即可被CPU逐级轮询到。当Post阶段有检测到按了USB启动的热键之后,BIOS会轮询所有的启动路径来查找是否USB启动路径,假如有USB启动路径,则会优先加载USB启动设备,否则按照正常的启动顺序进行轮询。
步骤3:在可扩展固件接口加电自检(Post)阶段检测是否按下USB启动的热键,如果检测到已按下USB启动的热键,继续执行;否则跳转步骤12;
步骤4:BIOS(基本输入输出系统)开始轮询USB所有的启动路径查找是否存在USB启动路径;当Post阶段有检测到按了USB启动的热键之后,BIOS会轮询所有的启动路径来查找是否USB启动路径,假如有USB启动路径,则会优先加载USB启动设备,否则按照正常的启动顺序进行轮询;
步骤5:检测系统引导文件Boot的启动模式,当Boot启动模式为UEFI的时候,跳转步骤6;当Boot启动模式为Leagcy的时候,跳转步骤7;
步骤6:在DXE阶段通过加载EFI_DEVICE_PATH_PROTOCOL协议来抓取所有设备的启动路径,将其存在DevicePathNode这个字符串中,跳转步骤8;
当Boot启动模式为UEFI的时候,因为UEFI模式下,在BIOS Setup启动路径下空的U盘不会生成一个启动路径,故需要在DXE阶段通过加载EFI_DEVICE_PATH_PROTOCOL协议来抓取所有设备的启动路径,将其存在DevicePathNode这个字符串中,因硬盘、网卡、CDROM等设备的启动路径是不同的,故而可以判断所有的设备启动路径中是否有USB设备的路径来确认USB设备的有无。当机器上有USB设备的时候,就需要判断该USB设备是U盘还是TF卡,当机器上接上TF卡后,TF卡的BDF是固定的,这时候可以通过读取TF卡的BDF来固定下来其挂载的USB Controller Root Port的BDF,这样下来就可以在DXE阶段通过抓取所有设备的Root Port的BDF来和TF卡的BDF进行对比,当设备Root Port的BDF和TF卡的BDF可以匹配的时候就确认该机器上接的设备有TF卡,不能匹配的时候就没有TF卡。当一个U盘中有没有Media启动文件,其启动路径是不同的,我们可以在接下来对比U盘的启动路径来确认该U盘是启动盘还是普通的存储U盘,于是UEFI模式下USB启动盘的轮询过程也就到此结束。
步骤7:直接抓取所有的启动设备在Setup BootOverride下生成的启动路径,跳转步骤8;
当Boot启动模式为Leagcy模式的时候,所有的启动设备不管有启动镜像,都会在Setup BootOverride下生成一个启动路径,我们直接抓取所有设备的启动路径,通过USBController的Vendor ID和Device ID来确认启动路径是否是USB设备即可,然后就需要在USB设备的启动路径中找到TF卡的路径并跳过去即可,接着就是判断U盘中是否有启动文件,判断方式和UEFI相同。
步骤8:查找是否存在USB启动路径,判断是否存在USB启动设备,当Boot启动模式为UEFI的时候,通过判断所有的设备启动路径中是否有USB设备的路径来确认USB启动设备的有无;当Boot启动模式为Leagcy的时候,通过USB Controller的Vendor ID和Device ID来确认启动路径是否是USB启动设备;
步骤9:在服务器上存在USB启动设备的情况下,通过TF卡的BDF判断该USB启动设备是U盘还是TF卡;
步骤10:若USB启动设备是TF卡,则跳过TF卡的持续剩余的启动路径并跳转步骤9;若USB启动设备是TF卡,则继续执行;
步骤11:检测USB启动设备中是否配置启动文件,如果启动设备中已配置启动文件,跳转步骤13;否则继续执行;
步骤12:跳过USB启动设备,正常轮询所有Setup Boot启动项,并按照BIOS第一启动项正常启动;
步骤13:将USB启动设备确定为目标USB设备,创建启动项,USB启动设备正常加载启动;
步骤14:在USB启动设备中配置IPMI等故障检测环境;
对于USB启动盘的安装,可以直接将OS镜像安装在U盘中,然后将USB启动盘放置在机器上,通过热键可以直接进OS,这样就可以在该USB启动盘中配置IPMI等debug环境。也可以在U盘中放置shell文件,通过热键从U盘启动的时候,BIOS会加载shell文件,在shell路径下可以运行RU、RW等工具来读写机器上的PCIE设备的寄存器等信息,对debug问题是非常有帮助的。
步骤15:结束。
本申请可用于AMD平台X86架构的服务器产品,本申请可以在AMD平台上实现了热键USB系统盘对服务器的选择性启动,区分了不同USB设备的加载启动,在移动USB系统盘的基础上提高了问题分析的效率,节省了问题修复的时间。
本申请主要是基于普通的USB设备,将其配置成可以启动的USB启动盘,并且能够在服务器上通过设备路径的轮询来找到对应的启动项,并完成正常的启动。本发明的设计不仅将普通的USB设备变成了方便携带并且可以执行Boot启动的系统盘,又实现了USB系统盘对服务器配置的系统盘的备份,确保了服务器出现问题的时候可以有环境作为备用及时投入问题的修复分析,同时保证了客户数据的机密性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种启动服务器的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的启动服务器装置的结构框图,如图4所示,该装置包括:响应模块42,用于响应于USB启动热键,获取服务器的多条启动路径;第一确定模块44,用于根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备;第二确定模块46,用于在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备;启动模块48,用于通过所述目标USB设备启动所述服务器。
在一个示例性实施例中,上述装置还用于通过如下方式在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备:获取所述服务器连接的所述USB设备的身份标识;将所述USB设备的身份标识与TF卡的身份标识进行匹配;在所述USB设备的身份标识与所述TF卡的身份标识不匹配的情况下,将所述USB设备确定为候选USB设备;根据所述候选USB设备确定所述目标USB设备。
在一个示例性实施例中,上述装置还用于通过如下方式根据所述候选USB设备确定所述目标USB设备:检测所述候选USB设备中是否存在启动文件;在所述候选USB设备中存在所述启动文件的情况下,将所述候选USB设备确定为所述目标USB设备。
在一个示例性实施例中,上述装置还用于通过如下方式根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备:确定所述服务器的多条启动路径中是否存在USB启动路径;在所述多条启动路径中存在所述USB启动路径的情况下,确定所述USB启动路径对应的设备为所述USB设备。
在一个示例性实施例中,上述装置还用于通过如下方式在所述通过所述目标USB设备启动所述服务器之后:通过所述目标USB设备中的故障检测环境检测所述服务器是否存在故障;在所述服务器存在所述故障的情况下,在所述目标USB设备中加载目标文件;通过所述目标文件读取所述服务器上的寄存器信息;通过所述服务器上的寄存器信息对所述服务器的故障进行修复。
在一个示例性实施例中,上述装置还用于通过如下方式在所述响应于USB启动热键,获取服务器的多条启动路径之前:将所述服务器连接的设备挂载在根节点上,并为每个挂载在所述根节点上的设备分配身份标识。
在一个示例性实施例中,上述装置还用于通过如下方式在所述服务器连接的设备中不存在所述目标USB设备的情况下,通过启动项启动所述服务器。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,响应于USB启动热键,获取服务器的多条启动路径;
S2,根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备;
S3,在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备;
S4,通过所述目标USB设备启动所述服务器。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,响应于USB启动热键,获取服务器的多条启动路径;
S2,根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备;
S3,在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备;
S4,通过所述目标USB设备启动所述服务器。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种启动服务器的方法,其特征在于,包括:
响应于USB启动热键,获取服务器的多条启动路径;
根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备;
在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备;
通过所述目标USB设备启动所述服务器。
2.根据权利要求1所述的方法,其特征在于,在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备,包括:
获取所述服务器连接的所述USB设备的身份标识;
将所述USB设备的身份标识与TF卡的身份标识进行匹配;
在所述USB设备的身份标识与所述TF卡的身份标识不匹配的情况下,将所述USB设备确定为候选USB设备;
根据所述候选USB设备确定所述目标USB设备。
3.根据权利要求2所述的方法,其特征在于,根据所述候选USB设备确定所述目标USB设备,包括:
检测所述候选USB设备中是否存在启动文件;
在所述候选USB设备中存在所述启动文件的情况下,将所述候选USB设备确定为所述目标USB设备。
4.根据权利要求1所述的方法,其特征在于,所述根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备,包括:
确定所述服务器的多条启动路径中是否存在USB启动路径;
在所述多条启动路径中存在所述USB启动路径的情况下,确定所述USB启动路径对应的设备为所述USB设备。
5.根据权利要求1所述的方法,其特征在于,在所述通过所述目标USB设备启动所述服务器之后,所述方法还包括:
通过所述目标USB设备中的故障检测环境检测所述服务器是否存在故障;
在所述服务器存在所述故障的情况下,在所述目标USB设备中加载目标文件;
通过所述目标文件读取所述服务器上的寄存器信息;
通过所述服务器上的寄存器信息对所述服务器的故障进行修复。
6.根据权利要求1所述的方法,其特征在于,在所述响应于USB启动热键,获取服务器的多条启动路径之前,所述方法还包括:
将所述服务器连接的设备挂载在根节点上,并为每个挂载在所述根节点上的设备分配身份标识。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述服务器连接的设备中不存在所述目标USB设备的情况下,通过启动项启动所述服务器。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述启动服务器的方法应用于AMD平台。
9.一种启动服务器的装置,其特征在于,包括:
响应模块,用于响应于USB启动热键,获取服务器的多条启动路径;
第一确定模块,用于根据所述服务器的多条启动路径确定所述服务器连接的设备中是否存在USB设备;
第二确定模块,用于在所述服务器连接的设备中存在所述USB设备的情况下,在所述服务器连接的USB设备中确定目标USB设备;
启动模块,用于通过所述目标USB设备启动所述服务器。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至8任一项中所述的方法的步骤。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311541902.1A CN117648695A (zh) | 2023-11-17 | 2023-11-17 | 启动服务器的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311541902.1A CN117648695A (zh) | 2023-11-17 | 2023-11-17 | 启动服务器的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117648695A true CN117648695A (zh) | 2024-03-05 |
Family
ID=90048764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311541902.1A Pending CN117648695A (zh) | 2023-11-17 | 2023-11-17 | 启动服务器的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117648695A (zh) |
-
2023
- 2023-11-17 CN CN202311541902.1A patent/CN117648695A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101332815B1 (ko) | 휴대용 단말을 위한 재부팅 처리 장치 및 방법 | |
CN110134446B (zh) | 启动pcie设备扫描的方法 | |
CN110162435B (zh) | 一种服务器pxe启动测试方法、系统、终端及存储介质 | |
CN104185836A (zh) | 用于在系统改变之后验证计算设备的适当操作的方法和系统 | |
CN109375956B (zh) | 一种重启操作系统的方法、逻辑设备以及控制设备 | |
US11416327B2 (en) | System and method for intelligent firmware updates, firmware restore, device enable or disable based on telemetry data analytics, and diagnostic failure threshold for each firmware | |
CN110119623A (zh) | 一种利用tpcm实现固件主动度量的可信主板实现方法 | |
CN112269584A (zh) | 一种PCIe Switch固件更新方法、装置、电子设备及介质 | |
CN115061885A (zh) | 一种整机老化自动测试方法、装置、电子设备及存储介质 | |
CN111078305A (zh) | 信息采集方法、装置、服务器和信息管理系统 | |
CN111708652A (zh) | 一种故障修复方法及装置 | |
CN113626276B (zh) | 服务器hba卡型号的识别方法、系统、终端及存储介质 | |
US11494289B2 (en) | Automatic framework to create QA test pass | |
CN107870840B (zh) | 基于ipmi的服务器多个测试指令自动执行方法 | |
CN116450046A (zh) | 云盘实现方法、装置、智能网卡、服务器及存储介质 | |
CN117648695A (zh) | 启动服务器的方法及装置 | |
US10509656B2 (en) | Techniques of providing policy options to enable and disable system components | |
CN115913913A (zh) | 网卡预启动执行环境功能故障定位方法及装置 | |
CN112231704B (zh) | 可信网络环境保护方法、装置和计算机可读存储介质 | |
CN110119625A (zh) | 一种可信计算方法 | |
CN115168146A (zh) | 一种异常检测方法和装置 | |
CN114253573A (zh) | PCIe设备固件批量升级方法、系统、终端及存储介质 | |
CN113986357A (zh) | 建立通信链路的方法、装置和存储介质 | |
CN112003727A (zh) | 一种多节点服务器电源测试方法、系统、终端及存储介质 | |
CN110119624A (zh) | 一种安全度量方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |