Starting control method, system and device for starting equipment of server

By using a sequence of startup variables ordered by variable values ​​to poll the startup device during the server startup process, the problem of inflexible startup device control is solved, and the reliability and efficiency of startup are improved.

CN121349548APending Publication Date: 2026-01-16INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202511933645.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-19
Publication Date
2026-01-16

AI Technical Summary

Technical Problem

The current technology for server startup device startup control is inflexible, resulting in low startup reliability and efficiency, and an inability to effectively adjust the startup sequence.

Method used

During the server startup process, the startup variable sequence is read and arranged in order of variable value size. The associated startup devices are then polled sequentially until a target device with startup function is found and its startup is controlled. The basic input/output system and the baseboard management controller are used to assign variable values ​​and sort them for the startup devices.

Benefits of technology

It improves the reliability and efficiency of server startup, avoids startup failures caused by the unavailability of a single device, and enables flexible startup device control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121349548A_ABST
    Figure CN121349548A_ABST
Patent Text Reader

Abstract

The invention discloses a starting control method, system and device for starting equipment of a server, and relates to the technical field of starting control of the server, in the starting process of the server, the starting equipment associated with starting variables is polled according to the variable value sequence of the starting variables in a starting variable sequence, and the starting equipment associated with the starting variables is polled according to the variable value sequence of the starting variables in the starting variable sequence. Even if the starting device associated with the first starting variable in the starting variable sequence does not have the starting function, the starting device associated with the next starting variable can be automatically turned to until the first target starting device with the starting function is polled; the limitation that only the first identified starting device can be started and the starting sequence of the starting device can only be adjusted in a physical mode is avoided, so that the problem that in the related technology, in the starting process of the server, the starting mode for controlling the starting device of the server is not flexible, and the starting sequence of the starting device cannot be adjusted can be solved. Therefore, the technical problem that the starting reliability and efficiency of the server are low is solved, and the technical effect of improving the starting reliability and efficiency of the server is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of server startup control technology, and in particular to startup control methods, systems and apparatus for server startup devices. Background Technology

[0002] In addition to the physical CPU (Central Processing Unit) and motherboard, server equipment also requires many external devices, such as hard drives, CD (Compact Disc) / DVD (Digital Versatile Disc)-ROM (Read-Only Memory) devices, network cards, USB (Universal Serial Bus) devices, and other types of devices. During the server startup process, these external devices are involved in the server's boot process and are called boot devices.

[0003] To boot a device, related technologies can use boot entries to boot into the corresponding device. However, since the server will only execute the first device identified at startup, it can only be unique and cannot be selected for booting. This makes it impossible to effectively control multiple boot entries. If it is necessary to adjust the boot order of boot devices, it can only be achieved by physically removing or adding boot entry devices, which reduces the server's boot efficiency and is time-consuming. Summary of the Invention

[0004] This application provides a method, system, and apparatus for controlling the startup of a server startup device, in order to at least solve the technical problem in the related art where the method of controlling the startup of the server startup device is inflexible, resulting in low reliability and efficiency of server startup.

[0005] This application provides a startup control method for a server startup device, applied to a basic input / output system, comprising: during the server startup process, reading a startup variable sequence, wherein the startup variable sequence includes startup variables arranged in order of their values, and each startup variable is associated with a startup device of the server; sequentially polling the startup devices associated with the startup variables according to the startup variable sequence until a target startup device with startup function is polled for the first time, and controlling the target startup device to start.

[0006] This application also provides a startup control system for a server startup device, comprising: a basic input / output system, used to read a startup variable sequence during the server startup process, sequentially poll the startup devices associated with the startup variables according to the startup variable sequence, until a target startup device with startup function is polled for the first time, and control the target startup device to start, wherein the startup variable sequence includes startup variables arranged in order of magnitude of variable values, and each startup variable is associated with a startup device of the server; and a baseboard management controller, used to allocate startup variables to the available startup devices of the server, assign variable values ​​to the startup variables associated with the available startup devices according to device level, and sort the startup variables associated with the available startup devices according to the magnitude of variable values ​​to obtain the startup variable sequence.

[0007] This application also provides a startup control device for a server startup device, comprising: a reading unit for reading a startup variable sequence during the server startup process, wherein the startup variable sequence includes startup variables arranged in order of their values, and each startup variable is associated with a startup device of the server; and a first startup control unit for sequentially polling the startup devices associated with the startup variables according to the startup variable sequence until a target startup device with startup function is polled for the first time, and controlling the target startup device to start.

[0008] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for executing the computer program to implement the steps of the startup control method for any of the above-described server startup devices.

[0009] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the startup control method for any of the above-described server startup devices.

[0010] This application provides a startup variable sequence for a basic input / output system. During server startup, the startup devices associated with the startup variables are polled sequentially according to their values. Even if the first startup device associated with a startup variable in the sequence does not have startup functionality, the polling automatically moves to the next startup device associated with that variable until the first target startup device with startup functionality is found. This avoids the limitations of only being able to start the first identified startup device and only being able to adjust the startup order of startup devices physically. Therefore, it solves the technical problem in related technologies where the method of controlling the startup of server startup devices is inflexible, leading to low reliability and efficiency during server startup, thus achieving the technical effect of improving the reliability and efficiency of server startup. Attached Figure Description

[0011] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0012] Figure 1 This is a hardware structure block diagram of the startup control method of the server startup device according to an embodiment of this application;

[0013] Figure 2 This is a flowchart of a startup control method for a server startup device according to an embodiment of this application;

[0014] Figure 3 This is a schematic diagram of the mapping between the startup variable sequence and the startup device in an embodiment of this application;

[0015] Figure 4 This is a schematic diagram of the interface of the basic input / output system according to an embodiment of this application. Figure 1 ;

[0016] Figure 5 This is a schematic diagram of the interface of the basic input / output system according to an embodiment of this application. Figure 2 ;

[0017] Figure 6 This is a schematic diagram of the interface of the basic input / output system according to an embodiment of this application. Figure 3 ;

[0018] Figure 7 This is a schematic diagram of the interface of the basic input / output system according to an embodiment of this application. Figure 4 ;

[0019] Figure 8 This is a schematic diagram of the startup control system of the server startup device according to an embodiment of this application;

[0020] Figure 9 This is a schematic diagram of a startup control method for a server startup device, which is optional in an embodiment of this application.

[0021] Figure 10 This is a schematic diagram of the startup control of the server startup device according to an embodiment of this application. Detailed Implementation

[0022] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0023] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0024] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0025] The specific application environment architecture or specific hardware architecture on which the execution of the server's startup control method depends is described here.

[0026] The methods and embodiments provided in this application can be executed on a server device or a similar computing device. Taking running on a server device as an example, Figure 1 This is a hardware structure block diagram of the startup control method for the server startup device according to an embodiment of this application. Figure 1 As shown, the server device may include one or more ( Figure 1 Only one is shown in the diagram. A processor 102 (which may include, but is not limited to, a central processing unit (CPU), microprocessor (MCU), or field-programmable gate array (FPGA)) and a memory 104 for storing data are also shown. The server device may further include a transmission device 106 for communication functions and an input / output device 108. Those skilled in the art will understand that... Figure 1 The structure shown is for illustrative purposes only and does not limit the structure of the server equipment described above. For example, the server equipment may also include components that are more... Figure 1 The more or fewer components shown, or having the same Figure 1 The different configurations shown.

[0027] The memory 104 can be used to store computer programs, such as application software programs and modules, like the computer program corresponding to the startup control method of the server startup device in this embodiment. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, thus implementing the above-described method. The memory 104 may include high-speed random access memory and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include memory remotely located relative to the processor 102, and these remote memories can be connected to the server device via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.

[0028] The transmission device 106 is used to receive or send data via a network. Specific examples of the network described above may include a wireless network provided by a communication provider for the server device. In one example, the transmission device 106 includes a Network Interface Controller (NIC), which can connect to other network devices via a base station to communicate with the Internet. In another example, the transmission device 106 may be a Radio Frequency (RF) module used for wireless communication with the Internet.

[0029] The embodiments of this application provide a startup control method for a server startup device. The method is described in detail below in conjunction with the execution flow of the startup control method for a server startup device.

[0030] This embodiment provides a startup control method for a server's startup device, applied to a basic input / output system. Figure 2 This is a flowchart of a startup control method for a server startup device according to an embodiment of this application, such as... Figure 2 As shown, the method includes the following steps:

[0031] Step S202: During the server startup process, read the startup variable sequence, wherein the startup variable sequence includes startup variables arranged in order of their values, and each startup variable is associated with a startup device of the server.

[0032] In this embodiment, the execution entity can be the Basic Input Output System (BIOS). During the server startup process, the BIOS reads the startup variable sequence and controls the server's boot device to start, thereby loading the server's operating system.

[0033] The boot device is different from the physical CPU and motherboard of the server. The boot device is an external device connected to the server, which may include network cards of PCI (Peripheral Component Interconnect) type, hard drives with SATA (Serial Advanced Technology Attachment) interface, RAID (Redundant Array of Independent Disks) cards with PCI interface, hard drives with NVME (Non-Volatile Memory Express) interface, memory, mouse, keyboard, etc.

[0034] The startup variable sequence is an ordered list of startup variables associated with the server's startup devices. The value of a startup variable determines its position in the startup variable sequence, which in turn determines the priority of the startup device in the startup order.

[0035] For example, the boot variables in the boot variable sequence are arranged in ascending order of their values. The smaller the value of a boot variable, the earlier it appears in the sequence, and the higher the priority of its associated boot device during startup. For instance, if the network card's boot variable value is 0 and the hard drive's boot variable value is 1, during server startup, the BIOS will first attempt to boot the network card; if the network card does not support booting, it will then attempt to boot the hard drive. Alternatively, the boot variables in the boot variable sequence can be arranged in descending order of their values, with larger values ​​indicating higher priority for their associated boot devices during startup.

[0036] This step polls the startup devices associated with the startup variables according to the order of their values ​​in the startup variable sequence when the server starts up. This avoids the limitations of only being able to start the first identified startup device and only being able to adjust the startup order of startup devices physically.

[0037] Step S204: Poll the startup devices associated with the startup variables in sequence according to the startup variable sequence until a target startup device with startup function is first polled, and control the target startup device to start.

[0038] The BIOS sequentially polls the boot devices associated with each boot variable in the boot variable sequence, according to the order of the boot variables. Specifically, starting from the first boot variable in the boot variable sequence, it checks each associated boot device to see if it has boot functionality, that is, whether it has the ability to load the server's operating system.

[0039] For example, the BIOS first checks the boot device associated with boot variable 0, such as a network card. If the network card does not support booting or is not connected to a network mirror, the BIOS continues to check the boot device associated with boot variable 1, and so on, until it finds the first target boot device that has boot functionality and can load the server's operating system.

[0040] After the BIOS finds the target boot device during the polling process, it controls the target boot device to start the server's operating system. For example, if the target boot device is the hard drive, the server's operating system will be loaded from the operating system bootloader on the hard drive. As another example, if the target boot device is the network card, the server's operating system will be loaded by downloading and executing a network image using the network card's network boot function.

[0041] This step uses a polling mechanism to find a target boot device with boot functionality, avoiding the problem of the entire server boot process failing due to the unavailability of a single boot device, thus improving the reliability and efficiency of server booting.

[0042] Through the above steps, a sequence of startup variables is provided for the basic input / output system. During server startup, the startup devices associated with the startup variables are polled sequentially according to their values. Even if the first startup device associated with a startup variable in the sequence does not have startup functionality, the system automatically switches to the next device associated with that variable until the first target device with startup functionality is found. This avoids the limitations of only being able to start the first identified startup device and only being able to adjust the startup order of devices physically. Therefore, it solves the technical problem in related technologies where the method of controlling the startup of server startup devices is inflexible, leading to low reliability and efficiency during server startup, thus achieving the technical effect of improving the reliability and efficiency of server startup.

[0043] As an optional implementation, the startup devices associated with the startup variables are polled sequentially according to the startup variable sequence until a target startup device with startup functionality is first polled. Controlling the startup of the target startup device includes: identifying the device interface of the first startup device associated with the first startup variable in the startup variable sequence; if the device interface is connected to the first startup device and the first startup device has startup functionality, the first startup device is identified as the target startup device, the target startup device is controlled to start, and the polling ends; if the device interface is not connected to the first startup device, or if the device interface is connected to the first startup device but the first startup device does not have startup functionality, the next startup device associated with the startup variable is polled until the polling cutoff condition is met, and a target startup device with startup functionality is first polled, the target startup device is controlled to start, and the polling ends.

[0044] For example, each startup variable in the startup variable sequence is associated with a startup device of the server. Figure 3 This is a schematic diagram of the mapping between the startup variable sequence and the startup device in an embodiment of this application, such as... Figure 3 As shown, the smaller the value of the startup variable, the higher the startup priority. The startup variable sequence includes: startup item 00, startup item 01, startup item 02, startup item 03, startup item 04, startup item 05, startup item 06, startup item 07, startup item 08, and startup item 09. Among them, startup item 00 is associated with network card 1, startup item 01 is associated with network card 2, startup item 02 is associated with hard drive 1, startup item 03 is associated with hard drive 2, startup item 04 is associated with CD / DVD-ROM 1, startup item 05 is associated with hard drive 3, startup item 06 is associated with network card 3, startup item 07 is associated with hard drive 4, startup item 08 is associated with USB device 1, and startup item 09 is associated with CD / DVD-ROM 2.

[0045] During server startup, the BIOS supports polling the boot devices associated with the allocated boot variables by identifying the device interfaces. Device interfaces are physical interfaces on the server motherboard used to connect various boot devices. For example, PCIe interfaces are used to connect network cards, RAID cards, etc., while SATA or NVMe interfaces are used to connect hard drives. The BIOS first identifies the device interface of the first boot device associated with the first boot variable in the boot variable sequence. The first boot variable is boot item 00. It then determines whether the device interface is connected to the first boot device, i.e., network card 1.

[0046] The boot device's boot functionality indicates that the server can load the operating system from the boot device during startup. After confirming that the first device interface is connected to network card 1, the BIOS further checks whether network card 1 has boot functionality. This check can verify whether network card 1 is connected to a network environment that can provide network mirroring. If network card 1 is a hard drive with an operating system boot program or a network card capable of downloading network mirrors, then it has boot functionality, meaning that network card 1 meets the boot conditions. The BIOS identifies network card 1 as the target boot device with boot functionality, executes the boot operation from network card 1, and simultaneously exits the polling mechanism, terminating the subsequent polling process.

[0047] If network card 1 lacks boot functionality or is not connected, it indicates that network card 1 does not meet the boot conditions. The BIOS will not stop running but will continue polling the boot device associated with the next boot variable in the sequence. For example, if the next boot variable is boot item 01 and the associated boot device is network card 2, the interface identification and boot functionality check operations described above will be repeated. If network card 2 lacks boot functionality or is not connected, it indicates that network card 2 does not meet the boot conditions. The BIOS will continue polling the boot device associated with the next boot variable in the sequence. For example, if the next boot variable is boot item 02, the device interface is connected to hard disk 1, and hard disk 1 has a valid boot record, it indicates that hard disk 1 meets the boot conditions. Hard disk 1 will be identified as the target boot device with boot functionality, and the polling mechanism will be terminated, thus preventing the server from failing to boot due to a single device lacking boot functionality.

[0048] This embodiment polls the device interfaces sequentially according to the startup variable sequence, identifies the access status and startup function of the device interfaces, and can skip the current startup device when the startup conditions are not met, and continue to poll the next device interface to identify whether the next device interface is connected to a startup device with startup capability, until the set polling cutoff condition is reached, thereby effectively identifying and locating the target startup device with startup function, so that the server can successfully start from the startup device with startup function.

[0049] To improve the server startup success rate and avoid infinite polling, this embodiment sets a polling cutoff condition. As an optional implementation method, the polling cutoff condition means that the number of polls on the startup variable sequence reaches N, where N is a positive integer greater than or equal to 1.

[0050] Here, polling once means polling sequentially from the startup device associated with the first startup variable in the startup variable sequence to the startup device associated with the last startup variable. The maximum number of polling times is N, where N is a preset positive integer greater than or equal to 1, for example, it can be 2 times.

[0051] For example, during the first polling process, none of the startup devices associated with the startup variable sequence meet the startup conditions. After the first polling, the network card is connected to the network cable. During the second polling process, it is detected that the network card is connected to the network cable and can download and execute the network image, and the network card is identified as the target startup device.

[0052] This embodiment allows multiple polling of the startup device associated with the startup variable sequence, and sets the maximum number of polling times to N. On the one hand, it avoids the error caused by failing to find the target startup device in just one poll; on the other hand, it avoids the risk of infinite polling, ensuring the security and controllability of the server startup process.

[0053] As an optional implementation, before reading the startup variable sequence during server startup, the method further includes: identifying the available startup devices of the server; assigning startup variables to the available startup devices of the server respectively, assigning variable values ​​to the startup variables associated with the available startup devices according to the device level; and sorting the startup variables associated with the available startup devices according to the size of the variable values ​​to obtain the startup variable sequence.

[0054] For example, during any boot process prior to the current server boot, the BIOS can identify the available boot devices of the server. These available boot devices are external devices connected to the server's motherboard that have boot functionality, such as... Figure 3 As shown, it may include network card 1, network card 2, network card 3, hard disk 1, hard disk 2, hard disk 3, hard disk 4, CD / DVD-ROM 1, CD / DVD-ROM 2, and USB device 1.

[0055] After identifying the available startup devices for the server, a startup variable is assigned to each startup device, and a specific variable value is assigned to each startup variable according to the device level. The device level is determined by the priority and importance of the device in the startup process, and different variable values ​​correspond to different startup sequences and levels.

[0056] For example, a smaller variable value indicates a higher boot priority. For instance, since booting via the network is a fast and stable option, network cards have a higher priority and can be assigned lower values ​​to boot variables associated with them. Similarly, since USB devices boot slower and have lower security, they have a higher priority and can be assigned lower values ​​to boot variables associated with them.

[0057] like Figure 3As shown, boot item 00 is assigned to network card 1, boot item 01 is assigned to network card 2, boot item 02 is assigned to hard disk 1, boot item 03 is assigned to hard disk 2, boot item 04 is assigned to CD / DVD-ROM 1, boot item 05 is assigned to hard disk 3, boot item 06 is assigned to network card 3, boot item 07 is assigned to hard disk 4, boot item 08 is assigned to USB device 1, and boot item 09 is assigned to CD / DVD-ROM 2.

[0058] Furthermore, the BIOS sorts the boot variables associated with available boot devices according to the size of their values. For example, if a smaller value indicates a higher boot priority, then boot variables with smaller values ​​are placed at the beginning of the sequence, and boot variables with larger values ​​are placed at the end. The sorting results constitute the boot variable sequence.

[0059] This embodiment identifies available boot devices for the server, avoiding omissions of boot sources during the boot process. It also assigns boot variables and values ​​based on device level, constructing a boot variable sequence based on device level to guide the identification of boot devices and the selection of boot order during the server boot process. This allows the server to attempt to boot from different boot devices according to the order of the boot variables, improving the flexibility and efficiency of the server boot process.

[0060] As an optional implementation, identifying the available boot devices of the server includes: identifying boot devices connected to the server's device interface during the boot process prior to the server's current boot; and identifying boot devices with boot functionality from the boot devices connected to the server's device interface to obtain the available boot devices of the server.

[0061] During any previous boot process prior to the current server startup, the BIOS acquires the server's current hardware configuration status, specifically identifying all boot devices connected to device interfaces. Device interfaces are physical interfaces on the server motherboard used to connect various external devices, such as PCIe, USB, SATA, or NVMe interfaces.

[0062] After the BIOS identifies all connected boot devices, it does not treat all boot devices as available boot devices. Instead, it further checks boot devices with boot functionality and identifies them as available boot devices. This provides an accurate data foundation for subsequent boot variable allocation and assignment, and avoids polling boot devices without boot functionality during the subsequent boot process.

[0063] A bootable device is a device that can carry an operating system boot program or provide network boot functionality, such as a hard drive or network card. Checking whether a bootable device is a bootable device can include the BIOS checking whether a valid boot partition and boot program exist on the hard drive, and the BIOS checking whether the network interface card supports network boot, etc.

[0064] This embodiment accurately identifies the boot device connected to the server's device interface before the current startup and further filters out boot devices with boot functionality. This ensures that the server's startup control method is based on available boot devices, avoiding the server's attempts to boot invalid boot devices during the startup process, thus improving the efficiency and success rate of server startup.

[0065] As an optional implementation, assigning variable values ​​to the startup variables associated with available startup devices according to device level includes: determining the device level of the startup device according to the type of startup device, and assigning different variable values ​​to the startup variables associated with available startup devices of different device levels.

[0066] Device class refers to the priority setting of boot devices during the server boot process. Different boot device types are classified into different classes based on factors such as boot efficiency and reliability. During the server boot process, the BIOS can determine the device class of the boot devices it identifies. For example, network cards that support fast PXE network boot have a higher device class; hard drives and CD / DVD-ROMs have lower device classes based on their boot performance and reliability; USB devices and other devices have relatively lower device classes due to their slower boot speed or lower reliability.

[0067] Boot variables are variables used to identify the boot order of each boot device, and their values ​​determine the device's position in the boot sequence. The BIOS assigns values ​​to boot variables associated with each boot device at its respective device level. For example, boot devices with higher device levels boot earlier and are assigned smaller variable values. For instance, a network card has a higher device level and is assigned a boot variable value of 0; a hard drive has a lower device level and is assigned a boot variable value of 1; a CD / DVD-ROM has a lower device level and is assigned a boot variable value of 2; a USB device has a lower device level and is assigned a boot variable value of 3, and so on. During server startup, the boot order is determined based on the values ​​of the boot variables associated with the boot devices, for example: network card -> hard drive -> CD / DVD-ROM -> USB device -> other devices.

[0068] This embodiment combines the type of startup device with the device level, and further links the device level with the value of startup variables to construct a startup variable list sorted by variable value. This allows the server to first attempt to start from the startup device with the highest probability of successful startup, thereby improving the efficiency and success rate of server startup.

[0069] As an optional implementation, during server startup, reading the startup variable sequence includes: reading the startup variable sequence set by the baseboard management controller for the available startup devices of the server via intelligent platform management interface commands.

[0070] For example, the Baseboard Management Controller (BMC) is a dedicated microcontroller for the server. The BMC can assign startup variables and values ​​to the available startup devices of the server, and sort the startup variables according to the variable values ​​to obtain a startup variable sequence, so as to select the startup device order when the server starts up.

[0071] The Intelligent Platform Management Interface (IPMI) is a hardware management interface used for out-of-band server management. IPMI commands are commands initiated through the IPMI interface using the IPMI protocol. During the server startup process, the BIOS uses IPMI commands to communicate with the BMC and read the sequence of boot variables set by the BMC for the server's available boot devices.

[0072] The BIOS reads the boot variable sequence, obtains the value of the boot variable corresponding to each boot device, and executes the boot process according to the order and priority of the variable values. It identifies the boot device associated with the boot variable with the smallest value in the boot variable sequence (the highest device level) and attempts to boot from that boot device. If the boot device does not support booting or the boot process fails, it continues to identify and attempt to boot from the next boot device associated with the next boot variable in the boot variable sequence until a boot device that can be successfully booted is found.

[0073] This embodiment sets the boot variable sequence of the boot device through the BMC. After the server restarts, the BIOS can obtain the boot variable sequence from the BMC through the IPMI command, so that the server can boot from the first boot device with boot function in the current boot variable sequence. This solves the problem that only the first recognized boot device can be booted and the boot order of the boot devices can only be adjusted by physical means.

[0074] As an optional implementation, the baseboard management controller sets the startup variable sequence for the available startup devices of the server in the following manner: The baseboard management controller reads the available startup devices identified by the basic input / output system through the intelligent platform management interface command, wherein the basic input / output system identifies the available startup devices during the startup process prior to the current startup of the server; The baseboard management controller assigns startup variables to the available startup devices respectively, and assigns variable values ​​to the startup variables associated with the available startup devices according to the device level; The baseboard management controller sorts the startup variables associated with the available startup devices according to the size of the variable values ​​to obtain the startup variable sequence.

[0075] For example, during the server's historical boot process, the BMC communicates with the BIOS via IPMI commands to read the available boot devices identified by the BIOS during the boot process, including hard drives, network cards, USB devices, CD / DVD-ROMs, etc.

[0076] After obtaining available boot devices, the BMC assigns boot variables to them and assigns variable values ​​according to the device's priority to indicate the boot order. For example, network cards have a higher device priority, so their associated boot variables are assigned lower values ​​to indicate an earlier boot order; USB devices have a lower device priority, so their associated boot variables are assigned higher values ​​to indicate a later boot order.

[0077] After allocating startup variables and their values ​​to available startup devices, the BMC sorts the startup variables according to their values, generating a startup variable sequence. This sequence reflects the startup order that the server should follow when starting up. The startup variable sequence is not only stored within the BMC's internal storage but also displayed on the BMC's web management interface for easy viewing and adjustment.

[0078] This embodiment sets the startup variables and variable values ​​of the startup devices through the BMC management interface, generates a startup variable sequence, and displays the device name of each startup device associated with the startup variable sequence on the BMC web interface, thereby enhancing the flexibility of setting and maintaining the server's startup devices.

[0079] As an optional implementation, the method further includes: obtaining the updated startup variable sequence when the startup variable sequence is updated; and controlling the server's startup device to start according to the updated startup variable sequence during the next startup of the server.

[0080] For example, the boot variable sequence can be updated via the BMC or BIOS. An update to the boot variable sequence indicates a change in the boot order of the boot devices. This could be due to a new boot device being identified, an older device being re-evaluated, or a user adjusting the boot order of the boot devices. For instance, when system recovery or upgrade operations are required, the network card's boot order can be temporarily increased to enable PXE booting or system image downloading over the network without requiring the server to unplug and replug boot devices to adjust the boot order.

[0081] After the boot variable sequence is updated, during the next server startup process, the BIOS controls the boot device to start according to the updated boot variable sequence. It starts polling from the boot device associated with the boot variable at the beginning of the sequence and attempts to start the server's operating system from the boot device until it starts successfully or the polling deadline is reached.

[0082] This embodiment can adjust the startup variable sequence in real time and dynamically during server operation. After the startup variable sequence is updated, the server startup is controlled according to the latest startup variable sequence, so that each server startup can reflect the latest system configuration.

[0083] As an optional implementation, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the method further includes: if a new startup device needs to be started during the server startup process, allocating a first startup variable to the new startup device and assigning a first variable value to the first startup variable; determining a first target position in the startup variable sequence according to the magnitude of the first variable value, updating the startup variable at the first target position to the first startup variable, increasing the position of the first target position and the original startup variables after the first target position respectively, and increasing the variable value of the first target position and the original startup variables after the first target position respectively, to obtain the updated startup variable sequence.

[0084] For example, the boot variable sequence can be updated via the BMC or BIOS. For instance, in situations where a new boot device needs to be started during server startup, the boot variable sequence can be updated via the BIOS.

[0085] For example, when a new boot device has boot capability, the BIOS first assigns a first boot variable to the boot device, and assigns the first boot variable to it according to the device level of the boot device, and assigns a first variable value. The first variable value is used to identify the relative position of the first boot variable in the boot variable sequence, and determines the boot order of the new boot device.

[0086] Next, the BIOS determines a suitable first target position in the current boot variable sequence based on the value of the first variable associated with the new boot device. This first target position is the position where the new boot device will be inserted. For example, it finds an existing boot variable whose value equals the first variable value; this is the first target position. The BIOS then updates the boot variable at the first target position to the first boot variable. Simultaneously, it shifts the first target position and all subsequent original boot variables one position to the right, and increments the values ​​of all subsequent original boot variables by one. In this way, the first boot variable associated with the new boot device is correctly inserted into the boot variable sequence, resulting in an updated boot variable sequence. During the next server startup, this updated sequence is used to identify bootable devices and attempt to boot from them.

[0087] This embodiment updates the startup variable sequence by assigning a first startup variable to a new startup device and determining the value of the first variable according to its device level. This allows the server startup to adapt to changes in hardware configuration in real time without physically adjusting device connections to update the startup configuration.

[0088] As an optional implementation, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the method further includes: if it is necessary to disable an existing startup device during server startup, determining the second startup variable associated with the startup device to be disabled and the second variable value of the second startup variable; determining the second target position of the second startup variable in the startup variable sequence according to the magnitude of the second variable value; deleting the second startup variable from the startup variable sequence; decreasing the position of the startup variables after the second target position; decreasing the variable value of the startup variables after the second target position; and obtaining the updated startup variable sequence.

[0089] For example, the boot variable sequence can be updated via the BMC or BIOS. For instance, in situations where it's necessary to disable an existing boot device during server startup, the boot variable sequence can be updated via the BIOS.

[0090] For example, during server operation, if it is necessary to disable an existing boot device, the BIOS first queries the current boot variable sequence to find the second boot variable associated with the boot device to be disabled and its value, in order to determine the device's position and priority in the boot queue.

[0091] Next, the BIOS locates the second target position in the boot variable sequence based on the value of the second variable, which is the current position of the boot variable associated with the boot device to be disabled. Then, the BIOS removes the second boot variable from the boot variable sequence.

[0092] After deleting the second boot variable, the BIOS adjusts the order and value of all boot variables following the second target sequence. It shifts the second target sequence and all subsequent original boot variables one position forward and decrements their values ​​by one. This removes the second boot variable associated with the boot device to be disabled, resulting in an updated boot variable sequence. During the next server startup, the updated sequence is used to identify bootable devices and attempt to boot them. Boot devices associated with the original second boot variable no longer participate in the server's next startup process.

[0093] This embodiment disables a specific startup device without physical intervention by deleting startup variables associated with the startup device to be disabled from the startup variable sequence. It can also dynamically adjust the order and value of the remaining startup variables in the startup variable sequence, avoiding startup failure or delay caused by the startup device being disabled but the startup variable sequence not being updated. Even in scenarios where the device's activation status is frequently adjusted, the server startup process can be kept smooth and efficient.

[0094] As an optional implementation, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the method further includes: if it is necessary to modify the startup order of an existing startup device during the server startup process, determining the third startup variable associated with the startup device to be modified and the target variable value to be assigned to the third startup variable; modifying the original variable value of the third startup variable to the target variable value, and reordering the modified third startup variable and other startup variables according to the size of the variable values ​​to obtain the updated startup variable sequence, wherein the other startup variables are startup variables other than the third startup variable in the startup variable sequence.

[0095] For example, the boot variable sequence can be updated via the BMC or BIOS. For instance, if it is necessary to modify the boot order of existing boot devices during server startup, the boot variable sequence can be updated via the BIOS.

[0096] For example, the BIOS locates the third boot variable associated with the boot device whose boot order needs to be modified within the current boot variable sequence, and obtains the target variable value. This target variable value is set by the administrator or the system and is used to change the value of the third boot variable. The BIOS then replaces the original value of the third boot variable with the target variable value. The selection of the target variable value takes into account the performance of the boot device whose boot order needs to be modified and its relationships with other devices, ensuring that the adjusted boot order meets the requirements of the server's boot process.

[0097] After the value of the third boot variable is modified, the BIOS reorders the entire boot variable sequence. This reordering process is based on the values ​​of all boot variables; for example, boot variables with smaller values ​​have higher rank. By reordering and adjusting the order of all boot variables, including the third boot variable, the BIOS alters the device attempt order during server startup.

[0098] This embodiment achieves dynamic adjustment of the startup order of startup devices by modifying the value of the third startup variable in the startup variable sequence to the target variable value and then reordering the entire startup variable sequence accordingly. This enables rapid response to different startup demand scenarios, such as emergency repair, system upgrade, or load balancing, without the need for cumbersome manual adjustments by physically plugging and unplugging startup devices.

[0099] Through the above embodiments, the startup variable sequence can be dynamically adjusted. Startup variables can be deleted if existing startup items are not to be effective, thus avoiding invalid startup attempts. Startup variables can be added when new startup devices need to support their startup functions, in order to support diverse startup requirements. The startup order of existing devices can also be modified by changing variable values ​​to optimize system performance or respond to urgent tasks.

[0100] As an optional implementation, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the method further includes: adjusting the startup variable sequence in response to the startup variable adjustment instruction of the startup device through the user interface of the basic input / output system to obtain the updated startup variable sequence, wherein the adjustment instruction includes one of the following: an instruction to delete a startup variable, an instruction to modify a startup variable, or an instruction to add a startup variable.

[0101] For example, during server operation, an administrator can issue adjustment commands through the BIOS user interface (setup interface), the type of which depends on the desired boot order adjustment.

[0102] The BIOS setup interface allows you to delete boot variables for existing boot devices. When you don't want a boot device to be recognized and started during the boot process, you can issue an adjustment command through the BIOS setup interface to delete the boot variable. The BIOS responds to the command, finds the boot variable associated with the boot device to be disabled in the current boot variable sequence, and removes it from the sequence. This indicates that the boot device to be disabled will no longer participate in the server boot process, avoiding unnecessary boot attempts and improving boot efficiency.

[0103] The BIOS setup interface allows adjustment of the boot variables of existing boot devices. By issuing an adjustment command through the BIOS setup interface to modify the boot variables, the BIOS responds by finding the current boot variables of the boot device to be modified, then changes the variable values ​​according to the adjustment command, and reorders the boot variables according to the value, thereby directly changing the order of the boot variables of the boot device to be modified in the boot variable queue and affecting the boot order of the boot device to be modified.

[0104] The BIOS setup interface allows you to add boot variables for new boot devices that need to be identified and started. By issuing an adjustment command for adding a boot variable through the BIOS setup interface, the BIOS responds to the adjustment command, assigns a new boot variable to the new boot device, and assigns an appropriate variable value according to the characteristics of the new boot device. Based on the variable value, the boot variable of the new boot device is inserted into the boot variable sequence, thereby expanding the range of boot items for the server.

[0105] This embodiment can flexibly respond to adjustment commands through the BIOS user interface, and intuitively and efficiently adjust the value of the boot variables of the boot devices. After the adjustment operation is completed, the boot variable sequence is updated so that the boot order of each boot device matches the value of its boot variable, thereby indirectly realizing the adjustment of the boot order of all boot devices of the server without complex physical operations or reconfiguration of hardware connections. When the server starts up next time, it can read and try to start according to the updated boot variable sequence.

[0106] Figure 4 This is a schematic diagram of the interface of the basic input / output system according to an embodiment of this application. Figure 1 , Figure 5 This is a schematic diagram of the interface of the basic input / output system according to an embodiment of this application. Figure 2 ,like Figure 4 and Figure 5 As shown, the Basic Input / Output System (BIOS) interface consists of three parts. The left side includes multiple options; selecting a corresponding option triggers the main page, advanced settings tab, platform configuration page, socket configuration page, server management page, security settings page, startup settings page, and save and exit. For example, selecting the startup settings page option displays the startup settings page in the middle of the BIOS interface. This page is used to set driver option priorities, such as setting boot option 1 for the hard drive, boot option 2 for the network card, boot option 3 for the CD / DVD drive, and boot option 4 for other devices. It also allows deleting startup items and setting the priority of other drives. After setting the boot order, you can choose to enable a fixed boot order, such as... Figure 4As shown, the server startup can be controlled by a fixed startup order, and the fixed startup order can also be disabled, such as... Figure 5 As shown, server startup is no longer controlled by a fixed startup order. The right side includes several options; selecting the corresponding option will trigger general help, previous settings, optimize defaults, save and exit, or return.

[0107] Figure 6 This is a schematic diagram of the interface of the basic input / output system according to an embodiment of this application. Figure 3 ,like Figure 5 As shown, during server operation, startup options can be deleted and the startup order of startup devices can be adjusted through the startup settings page of the basic input / output system. The server will then start according to the adjusted startup order the next time it runs.

[0108] Figure 7 This is a schematic diagram of the interface of the basic input / output system according to an embodiment of this application. Figure 4 ,like Figure 6 As shown, during server operation, startup options can be added through the startup settings page of the basic input / output system, the startup order of startup devices can be adjusted, and the server will start according to the adjusted startup order the next time it runs.

[0109] As an optional implementation, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the method further includes: responding to the startup variable adjustment command of the startup device through the server's command line tool to obtain the updated startup variable sequence, wherein the adjustment command is used to adjust the order and variable value of the startup variables associated with the startup device.

[0110] Command-line tools allow users to perform various server management operations by entering specific commands, including adjusting boot variables. For example, a command-line tool could be SCE (Setup Control Environment), which can read, modify, and batch deploy BIOS boot variables in different operating system environments.

[0111] For example, during server operation, adjustment commands can be entered through the server's command-line tool to directly modify the startup variables associated with the startup device, including updating their variable values ​​and ordinal numbers, increasing or decreasing the startup priority of the startup device, and obtaining an updated startup variable sequence.

[0112] For example, if the adjustment instruction is used to increase the startup priority of a startup device, the value of the startup variable for that device is decreased, and its position is moved forward in the startup variable sequence so that the startup device can be recognized and attempted to start earlier the next time the server is started. If the adjustment instruction is used to decrease the startup priority of a startup device, the value of the startup variable for that device is increased, and its position is moved backward in the startup variable sequence.

[0113] The BIOS saves the updated boot variable sequence to storage. During the next server startup, the BIOS reads the updated boot variable sequence and controls the server startup process according to the updated boot variable sequence.

[0114] This embodiment provides an efficient and direct way to adjust startup devices through the server's command-line tool. It eliminates the need for physically plugging and unplugging startup devices and multiple interactions with a graphical user interface. By inputting adjustment commands, startup items on a large number of servers can be adjusted in real time, improving the efficiency and flexibility of startup item management.

[0115] As an optional implementation, when the startup variable sequence is updated, obtaining the updated startup variable sequence includes: reading the updated startup variable sequence obtained by the baseboard management controller adjusting the startup variable sequence through the intelligent platform management interface command.

[0116] For example, the Baseboard Management Controller (BMC) is a dedicated microcontroller for the server. The BMC can adjust configuration information related to the boot sequence stored internally. When the server's BMC receives an adjustment instruction for the boot variable sequence, it modifies the boot variables associated with the boot devices according to the instruction. These modifications include adding boot variables for new boot devices, removing boot variables for no longer needed boot devices, or changing the boot variables of existing boot devices. The resulting updated boot variable sequence is used to adjust the selection order of boot devices during server startup.

[0117] The Intelligent Platform Management Interface (IPMI) is a hardware management interface used for out-of-band management servers. IPMI commands are commands initiated through the IPMI interface using the IPMI protocol. After the BMC completes the adjustment of the boot variable sequence, the BIOS uses IPMI commands to communicate with the BMC, reads the updated boot variable sequence from the BMC, parses it, obtains the variable values ​​for each boot device, and executes the boot process according to the order and priority of the variable values.

[0118] For example, the startup device associated with the startup variable with the smallest value in the startup variable sequence (the highest device level) is identified and an attempt is made to start from that startup device. If the startup device does not support startup or the startup fails, the process continues to identify and attempt to start the next startup device associated with the startup variable in the startup variable sequence until a startup device that can be successfully started is found.

[0119] In this embodiment, the boot variable sequence of the boot device is adjusted by the BMC, and then the updated boot variable sequence is transmitted to the BIOS via the IPMI command. When the server boots up next time, it can read and try to boot according to the updated boot variable sequence.

[0120] As an optional implementation, the baseboard management controller determines the updated startup variable sequence by responding to the startup variable adjustment command of the startup device through the user interface of the basic input / output system, and adjusting the startup variable sequence, wherein the adjustment command includes one of the following: a command to delete a startup variable, a command to modify a startup variable, or a command to add a startup variable.

[0121] For example, during server operation, an administrator can issue adjustment commands through the BMC user interface, the type of which depends on the desired startup sequence adjustment objective.

[0122] The BMC user interface allows users to delete boot variables for existing boot devices. When a boot device is no longer desired to be identified and started during startup, an adjustment command to delete the boot variable can be issued through the BMC user interface. The BMC responds to the adjustment command, finds the boot variable associated with the boot device to be disabled in the current boot variable sequence, and removes it from the sequence. This indicates that the boot device to be disabled will no longer participate in the server startup process as a boot item, avoiding unnecessary startup attempts and improving startup efficiency.

[0123] The BMC user interface allows adjustment of the values ​​of boot variables for existing boot devices. By issuing adjustment commands to modify boot variables through the BMC setup interface, the BMC responds to the command, locates the current boot variables of the boot device to be modified, changes their values ​​according to the command, and reorders the boot variables according to their values. This directly changes the order of the boot variables of the boot device to be modified in the boot variable queue, thus affecting the boot order of the boot device to be modified.

[0124] The BMC user interface allows for the addition of startup variables for new startup devices that need to be identified and started. By issuing adjustment commands for adding startup variables through the BMC user interface, the BMC responds to the adjustment commands, assigns a new startup variable to the new startup device, and assigns an appropriate variable value based on the characteristics of the new startup device. Based on the variable value, the startup variable of the new startup device is inserted into the startup variable sequence, thereby expanding the range of startup items for the server.

[0125] This embodiment can flexibly respond to adjustment commands through the BMC's user interface, and intuitively and efficiently adjust the variable values ​​of the startup variables of the startup devices. After the adjustment operation is completed, the startup variable sequence is updated so that the startup order of each startup device matches the variable values ​​of its startup variables, thereby indirectly realizing the adjustment of the startup order of all startup devices of the server without complex physical operations or reconfiguration of hardware connections. When the server starts up next time, it can read and attempt to start according to the updated startup variable sequence.

[0126] As an optional implementation, this application also provides a boot control system for a server boot device. Figure 8 This is a schematic diagram of the startup control system of the server startup device according to an embodiment of this application, as shown below. Figure 8 As shown, it includes:

[0127] The basic input / output system is used to read the startup variable sequence during the server startup process, and poll the startup devices associated with the startup variables in turn according to the startup variable sequence until a target startup device with startup function is polled for the first time, and control the target startup device to start. The startup variable sequence includes startup variables arranged in order of their values, and each startup variable is associated with a startup device of the server.

[0128] The boot device can be device 1, device 2 and device 3 connected to the server's central processing unit 00. Device 1, device 2 and device 3 can be one of the following types: PCI network card, SATA interface hard drive, PCI interface RAID card, NVME interface hard drive, memory, mouse, keyboard, etc.

[0129] The boot variable sequence is a sequential list of boot variables associated with the server's boot devices. The value of a boot variable determines its position in the boot variable sequence, thus determining the priority of the boot device in the boot order. The BIOS sequentially polls the boot devices associated with each boot variable according to their order in the boot variable sequence. Specifically, starting with the first boot variable in the sequence, it checks each associated boot device to see if it has boot functionality, i.e., whether it has the ability to load the server's operating system.

[0130] For example, the BIOS first checks the boot device associated with boot variable 0, such as a network card. If the network card does not support booting or is not connected to a network mirror, the BIOS continues to check the boot device associated with boot variable 1, and so on, until it finds the first target boot device with boot functionality capable of loading the server's operating system. After finding the target boot device during the polling process, the BIOS controls the target boot device to boot, that is, loads the server's operating system from this boot device. For example, if the target boot device is a hard drive, the server's operating system is loaded starting from the operating system bootloader on the hard drive. As another example, if the target boot device is a network card, the network image is downloaded and executed through the network boot function of the network card to load the server's operating system.

[0131] The baseboard management controller is used to assign startup variables to the available startup devices of the server, assign variable values ​​to the startup variables associated with the available startup devices according to the device level, and sort the startup variables associated with the available startup devices according to the size of the variable values ​​to obtain a startup variable sequence.

[0132] The Baseboard Management Controller (BMC) is a dedicated microcontroller for servers. The BMC assigns boot variables and values ​​to the available boot devices on the server, and sorts these boot variables according to their values ​​to obtain a boot variable sequence for selecting the boot device order during server startup. During the server startup process, the BIOS communicates with the BMC using IPMI commands to read the boot variable sequence set by the BMC for the server's available boot devices.

[0133] As an optional implementation, this application also provides a startup control method for a server startup device, applied to the startup control system of a server startup device. Figure 9 This is a schematic diagram of a startup control method for an optional server startup device according to an embodiment of this application, as shown below. Figure 9 As shown, it includes:

[0134] The startup items are set by the baseboard management controller to obtain the startup variable sequence, which includes: startup item 00 associated with network card 1, startup item 01 associated with network card 2, startup item 02 associated with hard disk 1, startup item 03 associated with hard disk 2, startup item 04 associated with CD / DVD-ROM 1, startup item 05 associated with hard disk 3, startup item 06 associated with network card 3, startup item 07 associated with hard disk 4, startup item 08 associated with USB device 1, and startup item 09 associated with CD / DVD-ROM 2.

[0135] The Basic Input / Output System (PII) obtains the boot variable sequence from the baseboard management controller via IPMI commands and adjusts the boot items within it. Adjustment methods include: boot item deletion, boot item addition, and boot item order reordering. Boot item polling is enabled. For example, the order of boot items associated with Hard Disk 2 and Network Interface Card 2 is swapped, the order of boot items associated with CD / DVD-ROM 1 and CD / DVD-ROM 2 is swapped, and the order of boot items on Hard Disk 3 is adjusted so that it is moved after the boot item on Hard Disk 4. After adjustment, an updated boot variable sequence is obtained, which includes: boot item 00 associated with Network Interface Card 1, boot item 01 associated with Hard Disk 2, boot item 02 associated with Hard Disk 1, boot item 03 associated with Network Interface Card 2, boot item 04 associated with CD / DVD-ROM 2, boot item 05 associated with Network Interface Card 3, boot item 06 associated with Hard Disk 4, boot item 07 associated with Hard Disk 3, boot item 08 associated with USB device 1, and boot item 09 associated with CD / DVD-ROM 1.

[0136] During the next service startup process, the updated startup variable sequence is polled. If network interface card 1 associated with startup item 0 has startup functionality, the operating system of the control server will start from network interface card 1.

[0137] Through the above steps, the baseboard management controller provides a sequence of startup variables to the basic input / output system. During server startup, the basic input / output system polls the startup devices associated with the startup variables according to the order of their values. Even if the first startup device associated with a startup variable in the sequence does not have startup functionality, it automatically switches to the next startup device associated with that variable until the first target startup device with startup functionality is found. This avoids the limitations of only being able to start the first identified startup device and only being able to adjust the startup order of startup devices physically. Therefore, it solves the technical problem in related technologies where the method of controlling the startup devices during server startup is inflexible, leading to low reliability and efficiency of server startup, thus achieving the technical effect of improving the reliability and efficiency of server startup.

[0138] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0139] Embodiments of this application also provide a startup control device for a server startup device. Figure 10 This is a schematic diagram of the startup control of the server startup device according to an embodiment of this application, as shown below. Figure 10 As shown, the device includes:

[0140] The reading unit 1002 is used to read the startup variable sequence during the server startup process. The startup variable sequence includes startup variables arranged in order of their values, and each startup variable is associated with a startup device of the server.

[0141] The first start control unit 1004 is used to poll the start devices associated with the start variables in sequence according to the start variable sequence until a target start device with start function is polled for the first time, and control the target start device to start.

[0142] The above device provides a sequence of startup variables for the basic input / output system. During server startup, it controls the startup of different devices according to the order of the startup variable values ​​in the sequence, avoiding the limitation of only being able to start the first identified startup device. By polling the startup variable sequence, even if the startup device associated with the first startup variable in the sequence does not have startup functionality, it automatically switches to the next startup device associated with the next startup variable until the first target startup device with startup functionality is found. Therefore, it solves the technical problem in related technologies where the method of controlling the startup of server startup devices is inflexible, leading to low reliability and efficiency of server startup. It also avoids the failure of the entire server startup process due to a single startup device lacking startup functionality, thus achieving the technical effect of improving the reliability and efficiency of server startup.

[0143] Optionally, in the startup control device of the startup device in this application embodiment, the first startup control unit 1004 includes: a first identification module, used to identify the device interface of the first startup device associated with the first startup variable in the startup variable sequence; a first startup control module, used to determine the first startup device as the target startup device when the device interface has been connected to the first startup device and the first startup device has a startup function, control the target startup device to start, and exit the polling; a second startup control module, used to poll the next startup device associated with the startup variable when the device interface has not been connected to the first startup device, or when the device interface has been connected to the first startup device but the first startup device does not have a startup function, until the polling cutoff condition is reached, poll for the first time to find a target startup device with a startup function, control the target startup device to start, and exit the polling.

[0144] Optionally, in the startup control device of the startup device in this application embodiment, the polling cutoff condition means that the number of polls on the startup variable sequence reaches N times, where N is a positive integer greater than or equal to 1.

[0145] Optionally, in the startup control device of the startup device in this application embodiment, the device further includes: an identification unit, used to identify the available startup devices of the server before reading the startup variable sequence during the server startup process; an allocation unit, used to allocate startup variables to the available startup devices of the server respectively, and assign variable values ​​to the startup variables associated with the available startup devices according to the device level; and a sorting unit, used to sort the startup variables associated with the available startup devices according to the size order of the variable values ​​to obtain the startup variable sequence.

[0146] Optionally, in the startup control device of the startup device in this application embodiment, the identification unit includes: a second identification module, used to identify a startup device connected to the server's device interface during the startup process before the current startup of the server; and a third identification module, used to identify a startup device with startup function from the startup devices connected to the server's device interface, so as to obtain the available startup devices of the server.

[0147] Optionally, in the startup control device of the startup device in this application embodiment, the allocation unit is used to: determine the device level of the startup device according to the type of the startup device, and assign different variable values ​​to the startup variables associated with the available startup devices of different device levels.

[0148] Optionally, in the startup control device of the startup device in this application embodiment, the reading unit 1002 is used to: read the startup variable sequence set by the baseboard management controller for the server's available startup devices through the intelligent platform management interface command.

[0149] Optionally, in the startup control device of the startup device in this application embodiment, the baseboard management controller sets a startup variable sequence for the available startup devices of the server in the following manner: the baseboard management controller reads the available startup devices identified by the basic input / output system through the intelligent platform management interface command, wherein the basic input / output system identifies the available startup devices during the startup process before the current startup of the server; the baseboard management controller assigns startup variables to the available startup devices respectively, and assigns variable values ​​to the startup variables associated with the available startup devices according to the device level; the baseboard management controller sorts the startup variables associated with the available startup devices according to the size order of the variable values ​​to obtain the startup variable sequence.

[0150] Optionally, in the startup control device of the startup device in this application embodiment, the device further includes: an acquisition unit, used to acquire the updated startup variable sequence when the startup variable sequence is updated; and a second startup control unit, used to control the startup device of the server to start according to the updated startup variable sequence during the next startup process of the server.

[0151] Optionally, in the startup control device of the startup device in this application embodiment, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the device further includes a first adjustment unit. The first adjustment unit is used to: if a new startup device needs to be started during the server startup process, allocate a first startup variable to the new startup device and assign a first variable value to the first startup variable; determine a first target sequence position in the startup variable sequence according to the magnitude of the first variable value, update the startup variable at the first target sequence position to the first startup variable, increase the sequence position of the first target sequence position and the original startup variable after the first target sequence position respectively, and increase the variable value of the first target sequence position and the original startup variable after the first target sequence position respectively, to obtain the updated startup variable sequence.

[0152] Optionally, in the startup control device of the startup device in this application embodiment, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the device further includes a second adjustment unit. The second adjustment unit is used to: if it is necessary to disable an existing startup device during the server startup process, determine the second startup variable associated with the startup device to be disabled and the second variable value of the second startup variable; determine the second target position of the second startup variable in the startup variable sequence according to the size of the second variable value, delete the second startup variable from the startup variable sequence, reduce the position of the startup variables after the second target position, and reduce the variable value of the startup variables after the second target position to obtain the updated startup variable sequence.

[0153] Optionally, in the startup control device of the startup device in this application embodiment, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the device further includes a third adjustment unit. The third adjustment unit is used to: if it is necessary to modify the startup order of an existing startup device during the server startup process, determine the third startup variable associated with the startup device to be modified and the target variable value to be assigned to the third startup variable; modify the original variable value of the third startup variable to the target variable value, and reorder the modified third startup variable and other startup variables according to the size of the variable value to obtain the updated startup variable sequence, wherein the other startup variables are startup variables other than the third startup variable in the startup variable sequence.

[0154] Optionally, in the startup control device of the startup device in this application embodiment, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the device further includes a fourth adjustment unit. The fourth adjustment unit is used to: respond to the adjustment instruction of the startup variable of the startup device through the user interface of the basic input / output system, adjust the startup variable sequence, and obtain the updated startup variable sequence. The adjustment instruction includes one of the following: an instruction to delete a startup variable, an instruction to modify a startup variable, or an instruction to add a startup variable.

[0155] Optionally, in the startup control device of the startup device in this application embodiment, before obtaining the updated startup variable sequence when the startup variable sequence is updated, the device further includes a fifth adjustment unit. The fifth adjustment unit is used to: respond to the adjustment instruction of the startup variable of the startup device through the command line tool of the server to obtain the updated startup variable sequence, wherein the adjustment instruction is used to adjust the order and variable value of the startup variable associated with the startup device.

[0156] Optionally, in the startup control device of the startup device in this application embodiment, the acquisition unit is used to: read the updated startup variable sequence obtained by the baseboard management controller adjusting the startup variable sequence through the intelligent platform management interface command.

[0157] Optionally, in the startup control device of the startup device in this application embodiment, the baseboard management controller determines the updated startup variable sequence by responding to the startup variable adjustment instruction of the startup device through the user interface of the basic input / output system, and adjusting the startup variable sequence, wherein the adjustment instruction includes one of the following: an instruction to delete a startup variable, an instruction to modify a startup variable, or an instruction to add a startup variable.

[0158] For a description of the features of the startup control device of the server startup device in the corresponding embodiment, please refer to the relevant description of the startup control method of the server startup device in the corresponding embodiment, which will not be repeated here.

[0159] Embodiments of this application also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to perform the steps in the embodiments of the startup control method for any of the above-described server startup devices.

[0160] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in the embodiments of the startup control method for any of the above-described server startup devices when it is run.

[0161] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0162] The embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in the embodiments of the startup control method for any of the above-described server startup devices.

[0163] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in the boot control method embodiments of any of the above-described server boot devices.

[0164] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0165] The above provides a detailed description of the startup control method, system, and apparatus for a server startup device provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are only intended to help understand the method and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A startup control method of a startup device of a server, characterized by, The application is applied to a basic input / output system, comprising: In the process of server starting, a starting variable sequence is read, wherein the starting variable sequence comprises starting variables arranged in order of variable value size, and each starting variable is associated with a starting device of the server; Starting devices associated with starting variables are polled in order according to the starting variable sequence until a target starting device with starting function is polled for the first time, and the target starting device is controlled to start.

2. The startup control method of a server's startup device according to claim 1, wherein The process of polling starting devices associated with starting variables in order according to the starting variable sequence until a target starting device with starting function is polled for the first time, and controlling the target starting device to start comprises: A device interface of a first starting device associated with a first starting variable in the starting variable sequence is identified; In the case that the device interface has accessed the first starting device and the first starting device has starting function, the first starting device is determined as the target starting device, the target starting device is controlled to start, and the polling is exited; In the case that the device interface has not accessed the first starting device, or the device interface has accessed the first starting device and the first starting device does not have starting function, a starting device associated with a next starting variable is polled until a target starting device with starting function is polled for the first time before a polling cut-off condition is reached, the target starting device is controlled to start, and the polling is exited.

3. The startup control method of a server's startup device according to claim 2, wherein The polling cut-off condition refers to that the polling times of the starting variable sequence reach N times, and N is a positive integer greater than or equal to 1.

4. The startup control method of a server's startup device according to claim 1, wherein Before the process of server starting, the method further comprises: Available starting devices of the server are identified; Starting variables are respectively assigned to the available starting devices of the server, and variable values are respectively given to starting variables associated with the available starting devices according to device levels; The starting variables associated with the available starting devices are sorted in order of variable value size to obtain the starting variable sequence.

5. The startup control method of a server's startup device according to claim 4, wherein The available starting devices of the server are identified, comprising: In the starting process before the current starting of the server, starting devices connected with a device interface of the server are identified; Starting devices with starting function are identified from the starting devices connected with the device interface of the server to obtain the available starting devices of the server.

6. The startup control method of a server's startup device according to claim 4, wherein Variable values are given to starting variables associated with the available starting devices according to device levels, comprising: Device levels of starting devices are determined according to types of starting devices, and starting variables associated with the available starting devices of different device levels are given different variable values.

7. The startup control method of a server's startup device according to Claim 1, wherein In the process of server starting, the starting variable sequence is read, comprising: The starting variable sequence set by a baseboard management controller for the available starting devices of the server is read through an intelligent platform management interface command.

8. The startup control method of a server's startup device according to claim 7, wherein The baseboard management controller sets the starting variable sequence for the available starting devices of the server through the following way: The baseboard management controller commands reading the available boot devices identified by the basic input / output system through the intelligent platform management interface, wherein the basic input / output system identifies the available boot devices in a boot process before a current boot of the server; The baseboard management controller respectively assigns boot variables to the available boot devices, and respectively gives variable values to the boot variables associated with the available boot devices according to device levels; The baseboard management controller sorts the boot variables associated with the available boot devices according to sizes of the variable values to obtain the boot variable sequence.

9. The startup control method of a server's startup device according to any one of claims 1 to 8, characterized by, The method further comprises: In the case of updating the boot variable sequence, obtaining the updated boot variable sequence; In the process of the next boot of the server, controlling the boot devices of the server to boot according to the updated boot variable sequence.

10. The startup control method of a server's startup device according to claim 9, wherein In the case of updating the boot variable sequence, before obtaining the updated boot variable sequence, the method further comprises: If a new boot device needs to be booted in the process of booting the server, assigning a first boot variable to the new boot device, and giving a first variable value to the first boot variable; According to the size of the first variable value, determining a first target sequence position in the boot variable sequence, updating the boot variable at the first target sequence position to the first boot variable, respectively increasing the sequence positions of the first target sequence position and the original boot variables after the first target sequence position, respectively increasing the variable values of the first target sequence position and the original boot variables after the first target sequence position, to obtain the updated boot variable sequence.

11. The startup control method of a server's startup device according to claim 9, wherein In the case of updating the boot variable sequence, before obtaining the updated boot variable sequence, the method further comprises: If an existing boot device needs to be disabled in the process of booting the server, determining a second boot variable associated with the boot device to be disabled and a second variable value of the second boot variable; According to the size of the second variable value, determining a second target sequence position of the second boot variable in the boot variable sequence, deleting the second boot variable from the boot variable sequence, respectively reducing the sequence positions of the boot variables after the second target sequence position, and respectively reducing the variable values of the boot variables after the second target sequence position, to obtain the updated boot variable sequence.

12. The startup control method of a server's startup device according to claim 9, wherein In the case of updating the boot variable sequence, before obtaining the updated boot variable sequence, the method further comprises: If the boot order of an existing boot device needs to be modified in the process of booting the server, determining a third boot variable associated with the boot device to be modified and a target variable value to be given to the third boot variable; Modifying the original variable value of the third boot variable to the target variable value, and re-sorting the modified third boot variable and other boot variables according to the sizes of the variable values to obtain the updated boot variable sequence, wherein the other boot variables are boot variables other than the third boot variable in the boot variable sequence.

13. The startup control method of a server's startup device according to claim 9, wherein In the case that the starting variable sequence is updated, before the updated starting variable sequence is acquired, the method further comprises: adjusting the starting variable sequence by responding to an adjustment instruction of a starting variable of a starting device through a user interface of the basic input and output system, to obtain the updated starting variable sequence, wherein the adjustment instruction comprises one of the following: an instruction to delete a starting variable, an instruction to modify a starting variable, and an instruction to add a starting variable.

14. The startup control method of a server's startup device according to claim 9, wherein In the case that the starting variable sequence is updated, before the updated starting variable sequence is acquired, the method further comprises: obtaining the updated starting variable sequence by responding to an adjustment instruction of a starting variable of a starting device through a command line tool of the server, wherein the adjustment instruction is used to adjust the sequence position and variable value of a starting variable associated with the starting device.

15. The startup control method of a server's startup device according to claim 9, wherein In the case that the starting variable sequence is updated, acquiring the updated starting variable sequence comprises: reading the updated starting variable sequence adjusted by the baseboard management controller through an intelligent platform management interface command.

16. The startup control method of a server's startup device according to claim 9, wherein The baseboard management controller determines the updated starting variable sequence by: adjusting the starting variable sequence by responding to an adjustment instruction of a starting variable of a starting device through a user interface of the basic input and output system, wherein the adjustment instruction comprises one of the following: an instruction to delete a starting variable, an instruction to modify a starting variable, and an instruction to add a starting variable.

17. A startup control system of a startup device of a server, characterized by, comprises: a basic input and output system, configured to read a starting variable sequence in a process of starting a server, poll starting devices associated with starting variables in sequence according to the starting variable sequence, and control a target starting device having a starting function to start until the target starting device is polled for the first time, wherein the starting variable sequence comprises starting variables arranged in order of variable values, and each starting variable is associated with a starting device of the server; a baseboard management controller, configured to allocate starting variables to available starting devices of the server respectively, assign variable values to the starting variables associated with the available starting devices according to device levels, and sort the starting variables associated with the available starting devices in order of variable values to obtain the starting variable sequence.

18. A startup control apparatus of a startup device of a server, characterized by comprising: comprises: a reading unit, configured to read a starting variable sequence in a process of starting a server, wherein the starting variable sequence comprises starting variables arranged in order of variable values, and each starting variable is associated with a starting device of the server; a first starting control unit, configured to poll starting devices associated with starting variables in sequence according to the starting variable sequence, and control a target starting device having a starting function to start until the target starting device is polled for the first time.

19. An electronic device, comprising: comprises: a memory, configured to store a computer program; a processor, configured to implement steps of a starting control method of a starting device of a server as claimed in any one of claims 1 to 16 when the computer program is executed.

20. A computer program product comprising a computer program, characterized in that, The computer program is executed by the processor to implement steps of a starting control method of a starting device of a server as claimed in any one of claims 1 to 16.

Citation Information

Patent Citations

  • Electronic equipment and starting method thereof

    CN102063311A

  • Method for server to remotely modify BIOS (Basic Input / Output System) startup item and medium

    CN113849239A

  • Server starting control method and device, storage medium and electronic equipment

    CN119690529A

  • Server starting method and device, storage medium and program product

    CN119861985A

  • Server startup item starting method and device

    CN119917180A