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

盘符分配方法、装置、系统、计算机设备和存储介质与流程

2022-04-30 09:03:15 来源:中国专利 TAG:
1.本技术涉及计算机
技术领域
:,特别是涉及一种盘符分配方法、装置、系统、计算机设备和存储介质。
背景技术
::2.服务器中可以配备很多硬盘。在linux系统下,以nvme(nonvolatilememoryhostcontrollerinterfacespecification,非易失性内存主机控制器接口规范)硬盘为例,目前linux系统对于nvme硬盘盘符的分配,是按照nvme硬盘中谁先完成驱动谁先挂载,先挂载者先分配数字低的盘符的分配逻辑实现的,会导致“飘盘”问题。3.例如:服务器上为接入的nvme硬盘1和nvme硬盘2分配的盘符分别为盘符1和盘符2。在服务器重启后,由于nvme硬盘2先驱动挂载好,则为其分配了盘符1,也即盘符1由原始对应nvme硬盘1变成了对应nvme硬盘2(该情形称为“飘盘”),导致某个应用程序原本应该存取数据至盘符1对应的nvme硬盘1中,此时却将数据存取至盘符1对应的nvme硬盘2中,导致应用程序发生错误。技术实现要素:4.基于此,有必要针对上述技术问题,提供一种能够避免硬盘的盘符发生飘盘的盘符分配方法、装置、系统、计算机设备和存储介质。5.第一方面,本技术提供了一种盘符分配方法,应用于操作系统os,所述方法包括:6.获取基本输入输出系统bios提供的盘符分配表,所述盘符分配表用于记录各硬盘槽位所对应的盘符;7.在硬盘驱动成功驱动硬盘后,根据所述硬盘接入的硬盘槽位及所述盘符分配表为所述硬盘分配盘符。8.采用本技术实施例提供的盘符分配方法,bios可以通过盘符分配表为硬盘槽位绑定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。9.在其中一个实施例中,所述盘符分配表包括硬盘槽位对应的盘符与所述硬盘槽位对应的槽位标识之间的对应关系;10.所述在硬盘驱动成功驱动硬盘后,根据所述硬盘接入的硬盘槽位及所述盘符分配表为所述硬盘分配盘符,包括:11.在硬盘驱动成功驱动硬盘后,通过所述硬盘驱动获取所述硬盘接入的目标硬盘槽位的槽位标识;12.从所述盘符分配表中获取所述目标硬盘槽位的槽位标识对应的目标盘符;13.将所述目标盘符作为所述硬盘的盘符。14.采用本技术实施例提供的盘符分配方法,bios可以通过为硬盘槽位分配槽位标识来标识各硬盘槽位,并为各硬盘槽位分配盘符后,根据盘符及槽位标识生成盘符分配表,以使得硬盘接入硬盘槽位时,可以根据硬盘槽位的槽位标识确定其接入的硬盘槽位,进而从盘符分配表中根据硬盘槽位的槽位标识确定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。15.在其中一个实施例中,所述获取基本输入输出系统bios提供的盘符分配表,包括:16.从内存的指针存储区域中获取盘符分配表的指针;17.根据所述指针从高级配置和电源管理接口acpi表中,抓取所述盘符分配表对应的acpi表。18.采用本技术实施例提供的盘符分配方法,bios在生成盘符分配表后,可以通过acpi表将盘符分配表上报给操作系统os,以使得操作系统os可以根据盘符分配表为硬盘分配盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。19.在其中一个实施例中,所述方法还包括:20.在所述硬盘驱动成功驱动所述硬盘后,从所述硬盘接入的所述硬盘槽位的寄存器中获取为所述硬盘预留的资源信息,所述资源信息包括内存映射io资源及io资源。21.采用本技术实施例提供的盘符分配方法,bios可以为各硬盘槽位预留资源,由于硬盘槽位的资源是固定的,可以支持热插拔,可以保证在热插拔的过程中,应用程序在内存资源上的数据读取不受影响。22.在其中一个实施例中,在所述硬盘为nvme硬盘的情况下,所述槽位标识为高速串行计算机扩展总线pcie总线号,在所述硬盘为u盘或者doc盘的情况下,所述槽位标识为端口号。23.采用本技术实施例提供的盘符分配方法,bios可以通过为硬盘槽位分配唯一对其进行标识的槽位标识来标识各硬盘槽位,并为各硬盘槽位分配盘符后,根据盘符及槽位标识生成盘符分配表,以使得硬盘接入硬盘槽位时,可以根据硬盘槽位的槽位标识确定其接入的硬盘槽位,盘符不受硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。24.第二方面,本技术提供了一种盘符分配方法,应用于基本输入输出系统bios,所述方法包括:25.根据为各硬盘槽位分配的盘符,生成盘符分配表;26.向操作系统os上报所述盘符分配表,以使所述os根据所述盘符分配表为硬盘分配盘符。27.采用本技术实施例提供的盘符分配方法,bios可以通过盘符分配表为硬盘槽位绑定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。28.在其中一个实施例中,所述根据为各硬盘槽位分配的盘符,生成盘符分配表,包括:29.为各硬盘槽位分配槽位标识;30.按照硬盘槽位顺序,为各所述硬盘槽位分配对应的盘符;31.根据所述硬盘槽位对应的槽位标识及所述硬盘槽位对应的盘符,生成盘符分配表。32.采用本技术实施例提供的盘符分配方法,bios可以通过为硬盘槽位分配槽位标识来标识各硬盘槽位,并为各硬盘槽位分配盘符后,根据盘符及槽位标识生成盘符分配表,以使得硬盘接入硬盘槽位时,可以根据硬盘槽位的槽位标识确定其接入的硬盘槽位,进而从盘符分配表中根据硬盘槽位的槽位标识确定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。33.在其中一个实施例中,所述向操作系统os上报所述盘符分配表,包括:34.创建所述盘符分配表对应的acpi表;35.在内存的指针存储区域中,存储所述盘符分配表对应的acpi表的指针,以使得操作系统os根据所述指针从acpi表中抓取所述盘符分配表对应的acpi表。36.采用本技术实施例提供的盘符分配方法,bios在生成盘符分配表后,可以通过acpi表将盘符分配表上报给操作系统os,以使得操作系统os可以根据盘符分配表为硬盘分配盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。37.在其中一个实施例中,所述方法还包括:38.为各所述硬盘槽位预留资源信息;39.针对任一所述硬盘槽位,将为所述硬盘槽位预留的资源信息写入所述硬盘槽位的寄存器中,所述资源信息包括内存映射io资源及io资源。40.采用本技术实施例提供的盘符分配方法,bios可以为各硬盘槽位预留资源,由于硬盘槽位的资源是固定的,可以支持热插拔,可以保证在热插拔的过程中,应用程序在内存资源上的数据读取不受影响。41.第三方面,本技术提供了一种盘符分配系统,所述系统包括:基本输入输出系统bios和操作系统os,其中,42.所述bios用于向os提供盘符分配表,所述盘符分配表用于记录各硬盘槽位所对应的盘符;43.所述os用于在硬盘驱动成功后,从所述盘符分配表中获取所述硬盘接入的硬盘槽位所对应的盘符,将所述盘符作为所述硬盘的盘符。44.采用本技术实施例提供的盘符分配系统,bios可以通过盘符分配表为硬盘槽位绑定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。45.在其中一个实施例中,所述bios还用于为所述各硬盘槽位分配槽位标识,及为所述各硬盘槽位分配对应的盘符,并根据所述各硬盘槽位对应的槽位标识及所述各硬盘槽位对应的盘符,生成盘符分配表;46.所述os还用于在硬盘完成驱动后,确定所述硬盘接入的硬盘槽位所对应的目标槽位标识,并从所述bios提供的盘符分配表中获取所述槽位标识对应的盘符作为所述硬盘的盘符。47.采用本技术实施例提供的盘符分配系统,bios可以通过为硬盘槽位分配槽位标识来标识各硬盘槽位,并为各硬盘槽位分配盘符后,根据盘符及槽位标识生成盘符分配表,以使得硬盘接入硬盘槽位时,可以根据硬盘槽位的槽位标识确定其接入的硬盘槽位,进而从盘符分配表中根据硬盘槽位的槽位标识确定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。48.第四方面,本技术提供了一种盘符分配装置,其特征在于,应用于操作系统os,所述装置包括:49.获取模块,用于获取基本输入输出系统bios提供的盘符分配表,所述盘符分配表用于记录各硬盘槽位所对应的盘符;50.分配模块,用于在硬盘驱动成功驱动硬盘后,根据所述硬盘接入的硬盘槽位及所述盘符分配表为所述硬盘分配盘符。51.在其中一个实施例中,所述盘符分配表包括硬盘槽位对应的盘符与所述硬盘槽位对应的槽位标识之间的对应关系;52.所述分配模块,还用于:53.在硬盘驱动成功驱动硬盘后,通过所述硬盘驱动获取所述硬盘接入的目标硬盘槽位的槽位标识;54.从所述盘符分配表中获取所述目标硬盘槽位的槽位标识对应的目标盘符;55.将所述目标盘符作为所述硬盘的盘符。56.在其中一个实施例中,所述获取模块,还用于:57.从内存的指针存储区域中获取盘符分配表的指针;58.根据所述指针从高级配置和电源管理接口acpi表中,抓取所述盘符分配表对应的acpi表。59.在其中一个实施例中,所述装置还包括:60.资源获取模块,还用于在所述硬盘驱动成功驱动所述硬盘后,从所述硬盘接入的所述硬盘槽位的寄存器中获取为所述硬盘预留的资源信息,所述资源信息包括内存映射io资源及io资源。61.在其中一个实施例中,在所述硬盘为nvme硬盘的情况下,所述槽位标识为高速串行计算机扩展总线pcie总线号,在所述硬盘为u盘或者doc盘的情况下,所述槽位标识为端口号。62.第五方面,本技术提供了一种盘符分配装置,应用于基本输入输出系统bios,所述装置包括:63.生成模块,用于根据为各硬盘槽位分配的盘符,生成盘符分配表;64.上报模块,用于向操作系统os上报所述盘符分配表,以使所述os根据所述盘符分配表为硬盘分配盘符。65.在其中一个实施例中,所述生成模块还用于:66.为各硬盘槽位分配槽位标识;67.按照硬盘槽位顺序,为各所述硬盘槽位分配对应的盘符;68.根据所述硬盘槽位对应的槽位标识及所述硬盘槽位对应的盘符,生成盘符分配表。69.在其中一个实施例中,所述上报模块,还用于:70.创建所述盘符分配表对应的acpi表;71.在内存的指针存储区域中,存储所述盘符分配表对应的acpi表的指针,以使得操作系统os根据所述指针从acpi表中抓取所述盘符分配表对应的acpi表。72.在其中一个实施例中,所述装置还包括:73.预留模块,用于为各所述硬盘槽位预留资源信息;74.写入模块,用于针对任一所述硬盘槽位,将为所述硬盘槽位预留的资源信息写入所述硬盘槽位的寄存器中,所述资源信息包括内存映射io资源及io资源。75.第六方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以上任一项的盘符分配方法。76.第七方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一项的盘符分配方法。77.第八方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以上任一项的盘符分配方法。78.上述盘符分配方法、装置、系统、计算机设备和存储介质,操作系统os获取基本输入输出系统bios提供的盘符分配表,该盘符分配表用于记录各硬盘槽位所对应的盘符,并在硬盘驱动成功驱动硬盘后,根据硬盘接入的硬盘槽位及所述盘符分配表为所述硬盘分配盘符。基于本技术实施例提供的盘符分配方法、装置、系统、计算机设备和存储介质,bios可以通过盘符分配表为硬盘槽位绑定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。附图说明79.图1为一个实施例中盘符分配方法的流程示意图;80.图2为一个实施例中盘符分配方法的流程示意图;81.图3为另一个实施例中盘符分配方法的流程示意图;82.图4为一个实施例中盘符分配方法的流程示意图;83.图5为一个实施例中盘符分配方法的示意图;84.图6a~图6b为一个实施例中盘符分配方法的示意图;85.图7为一个实施例中盘符分配系统的结构框图;86.图8为一个实施例中盘符分配装置的结构框图;87.图9为一个实施例中盘符分配装置的结构框图;88.图10为一个实施例中计算机设备的内部结构图。具体实施方式89.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。90.在一个实施例中,如图1所示,提供了一种盘符分配方法,本实施例以该方法应用于终端中的bios进行举例说明,可以理解的是,该方法也可以应用于服务器中的bios。本实施例中,该方法包括以下步骤:91.步骤102,获取基本输入输出系统bios提供的盘符分配表,盘符分配表用于记录各硬盘槽位所对应的盘符。92.本技术实施例中,bios(basicinputoutputsystem,基本输入输出系统)可以为各硬盘槽位分配盘符,并通过盘符分配表记录各硬盘槽位对应的盘符,以通过盘符分配表将硬盘槽位与其对应的盘符绑定。bios可以将该盘符分配表整合到acpi(advancedconfigurationandpowermanagementinterface,高级配置和电源管理接口)表中,通过acpi表将盘符分配表上报给os(operatingsystem,操作系统)。93.os在终端上电后,可以从acpi表中抓取盘符分配表。94.步骤104,在硬盘驱动成功驱动硬盘后,根据硬盘接入的硬盘槽位及盘符分配表为硬盘分配盘符。95.本技术实施例中,os在硬盘驱动成功驱动硬盘后,可以从盘符分配表中确定该硬盘接入的硬盘槽位所对应的盘符,并可以将该盘符分配给该硬盘。示例性的,假设硬盘槽位1对应的盘符为盘符1,硬盘槽位2对应的盘符为盘符2,也即,接入硬盘槽位1的硬盘1可以分配盘符1,接入硬盘槽位2的硬盘2可以分给盘符2,则在终端后续的重启过程中,无论硬盘1和硬盘2的驱动顺序如何,均不影响硬盘的盘符的分配,也即硬盘1始终分配盘符1,硬盘2始终分配盘符2,可以避免因为飘盘所引起的应用程序错误的情况。96.上述盘符分配方法,操作系统os获取基本输入输出系统bios提供的盘符分配表,该盘符分配表用于记录各硬盘槽位所对应的盘符,并在硬盘驱动成功驱动硬盘后,根据硬盘接入的硬盘槽位及所述盘符分配表为所述硬盘分配盘符。基于本技术实施例提供的盘符分配方法,bios可以通过盘符分配表为硬盘槽位绑定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。97.本技术实施例中,盘符分配表用于记录各硬盘槽位所对应的盘符。示例性的,盘符分配表可以包括硬盘槽位对应的盘符与硬盘槽位对应的pcie(peripheralcomponentinterconnectexpress,高速串行计算机扩展总线)总线号,之间的对应关系,也即本技术实施例中可以为硬盘槽位分配pcie总线号,并将分配的pcie总线号写入该硬盘槽位对应的寄存器中,以通过pcie总线号唯一标识硬盘槽位,并在为硬盘槽位分配盘位后,在盘符分配表中记录硬盘槽位对应的盘位与硬盘槽位对应的pcie总线号的对应关系。98.在一个实施例中,如图2所示,步骤104中,在硬盘驱动成功驱动硬盘后,根据硬盘接入的硬盘槽位及盘符分配表为硬盘分配盘符,可以包括:99.步骤202,在硬盘驱动成功驱动硬盘后,通过硬盘驱动获取硬盘接入的目标硬盘槽位的槽位标识;100.步骤204,从盘符分配表中获取目标硬盘槽位的槽位标识对应的目标盘符;101.步骤206,将目标盘符作为硬盘的盘符。102.本技术实施例中,槽位标识为可以唯一标识槽位的标识信息。示例性的,在硬盘为nvme硬盘的情况下,槽位标识可以为高速串行计算机扩展总线pcie总线号,在硬盘为u盘或者doc盘的情况下,槽位标识可以为端口号。本技术实施例中不对槽位标识做具体限定,以下实施例中均以nvme硬盘为例,对本技术实施例加以说明。103.示例性的,os在硬盘驱动成功驱动硬盘后,可以将硬盘接入的硬盘槽位作为目标硬盘槽位,并可以从硬盘接入的目标硬盘槽位的寄存器中读取该目标硬盘槽位的pcie总线号,以通过pcie总线号将硬盘与硬盘槽位绑定起来。os可以从抓取的盘符分配表中查找该目标硬盘槽位的pcie总线号对应的盘符,将该目标硬盘槽位的pcie总线号对应的盘符作为目标盘符,并该目标盘符作为分配给该硬盘的盘符。104.基于本技术实施例提供的盘符分配方法,bios可以通过为硬盘槽位分配槽位标识来标识各硬盘槽位,并为各硬盘槽位分配盘符后,根据盘符及槽位标识生成盘符分配表,以使得硬盘接入硬盘槽位时,可以根据硬盘槽位的槽位标识确定其接入的硬盘槽位,进而从盘符分配表中根据硬盘槽位的槽位标识确定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。105.在一个实施例中,步骤102中,获取基本输入输出系统bios提供的盘符分配表,可以包括:106.从内存的指针存储区域中获取盘符分配表的指针;107.根据指针从高级配置和电源管理接口acpi表中,抓取盘符分配表对应的acpi表。108.本技术实施例中,bios在生成盘符分配表之后,可以根据盘符分配表创建对应的acpitable(advancedconfigurationandpowermanagementinterfacetable,高级配置和电源管理接口表),并在内存的指针存储区域中记录该盘符分配表对应的acpi表对应的指针。示例性的,rsdp(rootsystemdescriptionpointer,根系描述的指针)存储于f段,通过rsdp可以定位到所有的acpitable,通过rsdp可以从所有的acpitable中抓取盘符分配表对应的acpitable。也即本技术可以通过acpitable将盘符分配表上报至操作系统os。109.操作系统os在启动后,可以根据指针从acpi表中,抓取盘符分配表对应的acpi表,并根据该盘符分配表进行盘符分配。110.采用本技术实施例提供的盘符分配方法,bios在生成盘符分配表后,可以通过acpi表将盘符分配表上报给操作系统os,以使得操作系统os可以根据盘符分配表为硬盘分配盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。111.在一个实施例中,上述方法还可以包括:112.在硬盘驱动成功驱动硬盘后,从硬盘接入的硬盘槽位的寄存器中获取为硬盘预留的资源信息,资源信息包括mmio(memory-mappedi/o,内存映射io)资源及io资源。113.本技术实施例中,bios可以预先为各硬盘槽位预留出供该硬盘槽位接入的硬盘使用的资源(可以包括mmio资源及io资源),并将预留出的资源信息写入各硬盘槽位的寄存器中。硬盘驱动成功驱动硬盘后,可以从硬盘接入的硬盘槽位的寄存器中获取为该硬盘预留的资源信息,以供该硬盘使用。这样一来,在发生热插拔的情况下,同一硬盘槽位供硬盘使用的资源是预留好的,对应于该硬盘的应用程序不受热插拔影响。114.采用本技术实施例提供的盘符分配方法,bios可以为各硬盘槽位预留资源,由于硬盘槽位的资源是固定的,可以支持热插拔,可以保证在热插拔的过程中,应用程序在内存资源上的数据读取不受影响。115.在一个实施例中,如图3所示,提供了一种盘符分配方法,本实施例以该方法应用于终端中的os操作系统进行举例说明,可以理解的是,该方法也可以应用于服务器中的os操作系统。本实施例中,该方法包括以下步骤:116.步骤302,根据为各硬盘槽位分配的盘符,生成盘符分配表;117.步骤304,向操作系统os上传盘符分配表,以使os根据盘符分配表为硬盘分配盘符。118.本技术实施例中,bios可以为各硬盘槽位分配盘符,并通过盘符分配表记录各硬盘槽位对应的盘符,以通过盘符分配表将硬盘槽位与其对应的盘符绑定。bios可以将该盘符分配表整合到acpi表中,通过acpi表将盘符分配表上报给os。119.os可以从acpi表中抓取盘符分配表,并在硬盘成功驱动后,确定硬盘接入的硬盘槽位,从抓取的盘符分配表中获取该硬盘槽位对应的盘符,并可以将该盘符作为硬盘的盘符。120.上述盘符分配方法,bios可以为各硬盘槽位分配盘符,并通过盘符分配表记录各硬盘槽位所对应的盘符后,将盘符分配表上报给os,以使得os可以根据盘符分配表为硬盘分配盘符。基于本技术实施例提供的盘符分配方法,bios可以通过盘符分配表为硬盘槽位绑定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。121.在一个实施例中,如图4所示,步骤302中,根据为各硬盘槽位分配的盘符,生成盘符分配表,可以包括:122.步骤402,为各硬盘槽位分配槽位标识;123.步骤404,按照硬盘槽位顺序,为硬盘槽位分配对应的盘符;124.步骤406,根据硬盘槽位对应的槽位标识及硬盘槽位对应的盘符,生成盘符分配表。125.本技术实施例中,盘符分配表可以用于记录各硬盘槽位所对应的盘符。示例性的,本技术实施例中可以为硬盘槽位分配槽位标识,写入该硬盘槽位对应的寄存器中,以通过槽位标识唯一标识硬盘槽位。槽位标识为可以唯一标识槽位的标识信息。示例性的,在硬盘为nvme硬盘的情况下,槽位标识可以为高速串行计算机扩展总线pcie总线号,在硬盘为u盘或者doc盘的情况下,槽位标识可以为端口号。本技术实施例中不对槽位标识做具体限定,以下实施例中均以nvme硬盘为例,对本技术实施例加以说明。126.示例性的,在为硬盘槽位分配pcie总线号后,可以按照槽位顺序为硬盘槽位分配盘符,并按格式(盘符,pcie总线号)在盘符分配表中记录硬盘槽位的盘符与硬盘槽位的pcie总线号的对应关系,例如:在盘符分配表中硬盘槽位1对应(nvme01,bus01),硬盘槽位2对应(nvme02,bus02)...。也即本技术实施例中,盘符分配表可以包括硬盘槽位对应的盘符与硬盘槽位对应的pcie总线号之间的对应关系。127.基于本技术实施例提供的盘符分配方法,bios可以通过为硬盘槽位分配槽位标识以标识各硬盘槽位,并为各硬盘槽位分配盘符后,根据盘符及槽位标识生成盘符分配表,以使得硬盘接入硬盘槽位时,可以根据硬盘槽位的槽位标识确定其接入的硬盘槽位,进而从盘符分配表中根据硬盘槽位的槽位标识确定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。128.在其中一个实施例中,上述步骤304中,向操作系统os上报盘符分配表,包括:129.创建盘符分配表对应的acpi表;130.在内存的指针存储区域中,存储盘符分配表对应的acpi表的指针,以使得操作系统os根据指针从acpi表中抓取盘符分配表对应的acpi表。131.本技术实施例中,bios在生成盘符分配表之后,可以根据盘符分配表创建对应的acpitable(advancedconfigurationandpowermanagementinterfacetable,高级配置和电源管理接口表),并在内存的指针存储区域中记录该盘符分配表对应的acpi表对应的指针。示例性的,rsdp(rootsystemdescriptionpointer,根系描述的指针)存储于f段,通过rsdp可以定位到所有的acpitable,通过rsdp可以从所有的acpitable中抓取盘符分配表对应的acpitable。也即本技术可以通过acpitable将盘符分配表上报至操作系统os,以使得操作系统os可以根据该盘符分配表进行盘符分配。132.采用本技术实施例提供的盘符分配方法,bios在生成盘符分配表后,可以通过acpi表将盘符分配表上报给操作系统os,以使得操作系统os可以根据盘符分配表为硬盘分配盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。133.在其中一个实施例中,上述方法还可以包括:134.为各硬盘槽位预留资源信息;135.针对任一硬盘槽位,将为硬盘槽位预留的资源信息写入硬盘槽位的寄存器中,资源信息包括mmio资源及io资源。136.本技术实施例中,bios可以预先为各硬盘槽位预留出供该硬盘槽位接入的硬盘使用的资源(可以包括mmio资源及io资源),并将预留出的资源信息写入各硬盘槽位的寄存器中。示例性的,以mmio资源为例,可以在寄存器中写入为其分配的mmio资源的起始地址以及资源长度。这样,在硬盘驱动成功驱动硬盘后,可以从硬盘接入的硬盘槽位的寄存器中获取为该硬盘预留的资源信息,以供该硬盘使用。137.采用本技术实施例提供的盘符分配方法,bios可以为各硬盘槽位预留资源,由于硬盘槽位的资源是固定的,可以支持热插拔,可以保证在热插拔的过程中,应用程序在内存资源上的数据读取不受影响。138.为使本领域技术人员更好的理解本技术实施例,以下通过具体示例对本技术实施例加以说明。139.参照图5所示,以服务器为例,假设硬盘为nvme硬盘,bios知道服务器有多少个硬盘槽位,每个硬盘槽位可以接入nvme硬盘。可以为各硬盘槽位分配唯一的pcie总线号。具体过程包括:bios在上电自检过程中,可以开启nvme热插拔功能,枚举pcie总线号,为每个硬盘槽位分配唯一pcie总线号,将硬盘槽位的pcie总线号写入硬盘槽位的寄存器中。可以为硬盘槽位分配一盘符,并创建记录硬盘槽位的pcie总线号和盘符的对应关系的盘符分配表,比如“nvme01(槽位1),bus01;nvme02(槽位2),bus02;...。根据盘符分配表创建acpitable,命名为nvmenamemap,并安装该acpitable,用于os抓取。140.硬盘槽位上接入nvme硬盘,根据硬盘槽位的寄存器中记录的pcie总线号,可以为该接入的nvme硬盘分到唯一的pcie总线号,这样能唯一绑定硬盘槽位和nvme硬盘。linux系统的nvme驱动在为nvme硬盘分配盘符的时候,可以读取bios上报的盘符分配表,和当前nvme硬盘的pcie总线号匹配,根据盘符分配表中该pcie总线号对应的盘符为nvme硬盘分配盘符。示例性的,采用相关技术的盘符分配方法的分配结果参照图6a所示(参照图6a左下角方框所示,盘符分配结果为“nvme0n1”、“nvme1n1”),采用本技术提供的盘符分配方法的分配结果参照图6b所示(参照图6b左下角方框所示,盘符分配结果为“nvme(bus42dev0fun0)0n1”、“nvme(bus41dev0fun0)1n1”),可见本技术提供的盘符分配方法盘符分配不受驱动顺序影响,可以杜绝“飘盘”问题。141.在一个实施例中,如图7所示,提供了一种盘符分配系统,包括:基本输入输出系统bios702和操作系统os704,其中,142.bios702用于向os704提供盘符分配表,盘符分配表用于记录各硬盘槽位所对应的盘符;os704用于在硬盘驱动成功后,从盘符分配表中获取硬盘接入的硬盘槽位所对应的盘符,将盘符作为硬盘的盘符。143.本技术实施例中,bios702可以为各硬盘槽位分配盘符,并通过盘符分配表记录各硬盘槽位对应的盘符,以通过盘符分配表将硬盘槽位与其对应的盘符绑定。并可以将该盘符分配表整合到acpi(advancedconfigurationandpowermanagementinterface,高级配置和电源管理接口)表中,通过acpi表将盘符分配表传递给os704。os704在终端上电后,可以从acpi表中抓取盘符分配表。144.os704在硬盘驱动成功驱动硬盘后,可以从盘符分配表中确定该硬盘接入的硬盘槽位所对应的盘符,并可以将该盘符分配给该硬盘。145.上述盘符分配系统,os获取bios提供的用于记录各硬盘槽位所对应的盘符的盘符分配表,并在硬盘驱动成功驱动硬盘后,根据硬盘接入的硬盘槽位及所述盘符分配表为所述硬盘分配盘符。基于本技术实施例提供的盘符分配系统,bios可以通过盘符分配表为硬盘槽位绑定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。146.在一种可能的实现方式中,bios702还用于为各硬盘槽位分配槽位标识,及为各硬盘槽位分配对应的盘符,并根据各硬盘槽位对应的槽位标识及各硬盘槽位对应的盘符,生成盘符分配表;147.os704还用于在硬盘完成驱动后,确定硬盘接入的硬盘槽位所对应的目标槽位标识,并从bios702提供的盘符分配表中获取槽位标识对应的盘符作为硬盘的盘符。148.本技术实施例中,盘符分配表可以用于记录各硬盘槽位所对应的盘符。示例性的,本技术实施例中bios702可以为硬盘槽位分配槽位标识,写入该硬盘槽位对应的寄存器中,以通过槽位标识唯一标识硬盘槽位。示例性的,在硬盘为nvme硬盘的情况下,槽位标识为pcie总线号,在硬盘为u盘或者doc盘的情况下,槽位标识为端口号。149.在为硬盘槽位分配槽位标识后,可以按照槽位顺序为硬盘槽位分配盘符,并按格式(盘符,槽位标识)在盘符分配表中记录硬盘槽位的盘符与硬盘槽位的槽位标识的对应关系,例如:在盘符分配表中硬盘槽位1对应(nvme01,bus01),硬盘槽位2对应(nvme02,bus02)...。也即本技术实施例中,盘符分配表可以包括硬盘槽位对应的盘符与硬盘槽位对应的槽位标识之间的对应关系。150.os704在硬盘驱动成功驱动硬盘后,可以将硬盘接入的硬盘槽位作为目标硬盘槽位,并可以从硬盘接入的目标硬盘槽位的寄存器中读取该目标硬盘槽位的槽位标识。os704可以从抓取的盘符分配表中查找该目标硬盘槽位的槽位标识对应的盘符,将该目标硬盘槽位的槽位标识对应的盘符作为目标盘符,并该目标盘符作为该硬盘的盘符。151.需要说明的是,bios702以及os704在盘符分配过程中执行的操作参照前述实施例中相关描述部分即可,本技术实施例在此不再赘述。152.基于本技术实施例提供的盘符分配系统,bios可以通过为硬盘槽位分配槽位标识以标识各硬盘槽位,并为各硬盘槽位分配盘符后,根据盘符及槽位标识生成盘符分配表,以使得硬盘接入硬盘槽位时,可以根据硬盘槽位的槽位标识确定其接入的硬盘槽位,进而从盘符分配表中根据硬盘槽位的槽位标识确定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。153.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。154.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的盘符分配方法的盘符分配装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个盘符分配装置实施例中的具体限定可以参见上文中对于盘符分配方法的限定,在此不再赘述。155.在一个实施例中,如图8所示,提供了一种盘符分配装置,包括:获取模块802和分配模块804,其中:156.获取模块802,用于获取基本输入输出系统bios提供的盘符分配表,所述盘符分配表用于记录各硬盘槽位所对应的盘符;157.分配模块804,用于在硬盘驱动成功驱动硬盘后,根据所述硬盘接入的硬盘槽位及所述盘符分配表为所述硬盘分配盘符。158.上述盘符分配装置,操作系统os获取基本输入输出系统bios提供的盘符分配表,该盘符分配表用于记录各硬盘槽位所对应的盘符,并在硬盘驱动成功驱动硬盘后,根据硬盘接入的硬盘槽位及所述盘符分配表为所述硬盘分配盘符。基于本技术实施例提供的盘符分配装置,bios可以通过盘符分配表为硬盘槽位绑定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。159.在一种可能的实现方式中,所述盘符分配表包括硬盘槽位对应的盘符与所述硬盘槽位对应的槽位标识之间的对应关系;160.所述分配模块804,还用于:161.在硬盘驱动成功驱动硬盘后,通过所述硬盘驱动获取所述硬盘接入的目标硬盘槽位的槽位标识;从所述盘符分配表中获取所述目标硬盘槽位的槽位标识对应的目标盘符;将所述目标盘符作为所述硬盘的盘符。162.在其中一个实施例中,所述获取模块802,还用于:163.从内存的指针存储区域中获取盘符分配表的指针;164.根据所述指针从高级配置和电源管理接口acpi表中,抓取所述盘符分配表对应的acpi表。165.在其中一个实施例中,所述装置还包括:166.资源获取模块,还用于在所述硬盘驱动成功驱动所述硬盘后,从所述硬盘接入的所述硬盘槽位的寄存器中获取为所述硬盘预留的资源信息,所述资源信息包括mmio资源及io资源。167.在其中一个实施例中,在所述硬盘为nvme硬盘的情况下,所述槽位标识为高速串行计算机扩展总线pcie总线号,在所述硬盘为u盘或者doc盘的情况下,所述槽位标识为端口号。168.在一个实施例中,如图9所示,提供了一种盘符分配装置,包括:生成模块902和上报模块904,其中,169.生成模块902,用于根据为各硬盘槽位分配的盘符,生成盘符分配表;170.上报模块904,用于向操作系统os上报所述盘符分配表,以使所述os根据所述盘符分配表为硬盘分配盘符。171.上述盘符分配装置,bios可以为各硬盘槽位分配盘符,并通过盘符分配表记录各硬盘槽位所对应的盘符后,将盘符分配表上报给os,以使得os可以根据盘符分配表为硬盘分配盘符。基于本技术实施例提供的盘符分配装置,bios可以通过盘符分配表为硬盘槽位绑定对应的盘符,也即硬盘接入对应的硬盘槽位后,即对应该硬盘槽位绑定的盘符,盘符不会受到硬盘驱动先后顺序的影响,可以避免飘盘的问题,进而避免因飘盘所引起的应用程序错误。172.在其中一个实施例中,所述生成模块902还用于:173.为各硬盘槽位分配槽位标识;按照硬盘槽位顺序,为各所述硬盘槽位分配对应的盘符;根据所述硬盘槽位对应的槽位标识及所述硬盘槽位对应的盘符,生成盘符分配表。174.在其中一个实施例中,所述上报模块904,还用于:175.创建所述盘符分配表对应的acpi表;176.在内存的指针存储区域中,存储所述盘符分配表对应的acpi表的指针,以使得操作系统os根据所述指针从acpi表中抓取所述盘符分配表对应的acpi表。177.在其中一个实施例中,所述装置还包括:accessmemory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。188.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。189.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。当前第1页12当前第1页12
再多了解一些

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

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

相关文献