掌桥专利:专业的专利平台
掌桥专利
首页

操作系统的启动方法、装置、服务器及存储介质

文献发布时间:2024-01-17 01:16:56


操作系统的启动方法、装置、服务器及存储介质

技术领域

本发明涉及计算机技术领域,具体涉及一种操作系统的启动方法、装置、服务器及存储介质。

背景技术

服务器的启动过程中包含操作系统的启动。

相关技术中,操作系统可以基于如下方式启动:在完成固件的启动后,固件会去读取启动盘的主引导记录(Master Boot Record,MBR),根据MBR的指示对这个启动盘进行访问,访问得到操作系统的引导信息,根据引导信息启动操作系统。

基于相关技术中提供的操作系统的启动方式,安全性和可靠性较低。

发明内容

本申请提供了一种操作系统的启动方法、装置、服务器及存储介质,该技术方案如下。

一方面,提供了一种操作系统的启动方法,所述方法包括:

在完成固件启动后,加载并解析主启动盘中的元数据分区,得到操作系统启动所需的配置信息,所述配置信息中包括由所述元数据分区中的启动选项字段定义的所述操作系统的启动方式;

基于所述配置信息中指示的启动方式,执行所述操作系统的启动。

本申请提供的技术方案可以包括以下有益效果:在硬盘中增设用于存放操作系统启动所需配置信息的元数据分区,在完成固件启动后,加载并解析元数据分区得到配置信息,基于配置信息中指示的启动方式执行操作系统的启动,由于操作系统的启动是基于元数据分区中的配置信息,因此,可以通过元数据分区中配置信息的设置,保障操作系统启动的可靠性。

在一种可能的实现方式中,所述元数据分区包括启动计数器字段,所述启动计数器字段用于记录所述操作系统的启动次数;

所述基于所述配置信息中指示的启动方式,执行所述操作系统的启动,包括:

读取所述启动计数器字段,在所述启动计数器字段中的计数值不超过启动阈值的情况下,基于所述配置信息中指示的启动方式,执行所述操作系统的启动。

本实现方式提供的技术方案可以包括以下有益效果:通过启动计数器字段的设置,对操作系统的启动次数进行统计,当启动次数不超过启动阈值时,则基于元数据分区解析到的配置信息中所指示的启动方式,正常地执行操作系统的启动。

在一种可能的实现方式中,所述主启动盘中还包括主启动分区、备启动分区以及恢复分区,所述主启动分区和所述备启动分区中存放有操作系统启动所需文件,所述恢复分区中存放有操作系统启动所需文件的标准镜像,所述方法还包括:

在所述启动计数器字段中的计数值超过启动阈值的情况下,将所述恢复分区中的数据拷贝到所述主启动分区、备启动分区,通过恢复后的主启动分区、备启动分区恢复启动所述操作系统。

本实现方式提供的技术方案可以包括以下有益效果:当操作系统的启动次数超过了启动阈值时,则进入恢复启动模式:通过读取恢复分区中的数据,恢复主启动分区、备启动分区,从而恢复启动操作系统。

在一种可能的实现方式中,所述元数据分区包括分区哈希值字段,所述分区哈希值字段用于保存所述元数据分区的校验值;

所述读取所述启动计数器字段,包括:

读取所述分区哈希值字段,在对所述分区哈希值字段中的校验值校验通过的情况下,读取所述启动计数器字段。

本实现方式提供的技术方案可以包括以下有益效果:通过分区哈希值字段的设置,对元数据分区数据的完整性进行校验。

在一种可能的实现方式中,所述元数据分区包括管理字段,所述管理字段用于定义是否通过所述配置信息执行所述操作系统的启动;

在基于所述配置信息中指示的启动方式,执行所述操作系统的启动之前,所述方法还包括:

读取所述管理字段,在所述管理字段为目标数据的情况下,确认通过所述配置信息执行所述操作系统的启动。

本实现方式提供的技术方案可以包括以下有益效果:通过管理字段的设置,判断本次启动是否需要进入受控的启动流程,即是否通过配置信息执行操作系统的启动,以开启固件增强启动。

在一种可能的实现方式中,所述方法还包括:

在所述管理字段为非目标数据的情况下,读取MBR,使用所述MBR加载所述主启动盘中的引导信息,基于所述引导信息来启动所述操作系统。

本实现方式提供的技术方案可以包括以下有益效果:若管理字段为非目标数值,则回退到相关技术中所提供的传统启动方案:读取MBR,使用MBR加载主启动盘中的引导信息,基于引导信息来启动操作系统,从而通过管理字段实现传统启动方案的兼容。

在一种可能的实现方式中,所述元数据分区包括MBR备份字段,所述MBR备份字段用于保存MBR的备份;

在所述主启动盘中的MBR缺失的情况下,所述方法还包括:

读取所述MBR备份字段,使用MBR的备份恢复所述主启动盘中的MBR。

本实现方式提供的技术方案可以包括以下有益效果:通过MBR备份字段的设置,如果基于传统启动方案执行启动时缺失MBR,则可以通过读取元数据分区中的MBR备份字段,使用MBR的备份恢复MBR,以保障顺利执行传统启动方案。

在一种可能的实现方式中,所述元数据分区包括分区标识符字段,所述分区标识符字段用于定义所述元数据分区的标识符;

在加载并解析主启动盘中的元数据分区,得到操作系统启动所需的配置信息之前,所述方法还包括:

读取所述主启动盘中的数据,检测读取到的数据是否包含所述元数据分区的标识符;

在读取到的数据包含所述元数据分区的标识符的情况下,确认所述主启动盘中存在所述元数据分区。

本实现方式提供的技术方案可以包括以下有益效果:通过识别分区标识符字段中定义的标识符,来快速检测主启动盘中是否包括元数据分区。

在一种可能的实现方式中,所述方法还包括:

在完成所述操作系统的启动后,响应于操作系统层的软件的修改操作,更新所述元数据分区。

本实现方式提供的技术方案可以包括以下有益效果:在完成一次操作系统的启动之后,操作系统层的软件可以基于需求,对元数据分区的数据进行修改,更新操作系统启动所需的配置信息,从而实现定制化的启动。

在一种可能的实现方式中,所述元数据分区包括扩展字段,所述扩展字段用于预留待扩展的信息。

本实现方式提供的技术方案可以包括以下有益效果:通过扩展字段的设置,在元数据分区中预留将来可以进行扩展的字段。

在一种可能的实现方式中,启动盘除所述主启动盘之外还包括备启动盘,每个启动盘中包括主启动分区、备启动分区,所述主启动分区和所述备启动分区中存放有操作系统启动所需文件;

所述配置信息中指示的启动方式,包括如下中的任意一种:

从所述主启动盘启动;

从所述主启动盘中的主启动区启动;

从所述主启动盘中的备启动区启动;

从所述备启动盘启动;

从所述备启动盘中的主启动区启动;

从所述主启动盘中的备启动区启动;

从网络启动;

从通用串行总线(Universal Serial Bus,USB)启动;

从主机总线适配器(Host Bus Adapter,HBA)卡启动。

本实现方式提供的技术方案可以包括以下有益效果:配置信息中指示的启动方式可以是设置从启动盘(主启动盘或备启动盘)的主、备分区启动,或者从网络启动,或者从其他的启动设备启动,比如USB设备、HBA卡等,从而保障启动方式的灵活性。

又一方面,提供了一种操作系统的启动装置,所述装置包括:

数据加载模块,用于在完成固件启动后,加载并解析主启动盘中的元数据分区,得到操作系统启动所需的配置信息,所述配置信息中包括由所述元数据分区中的启动选项字段定义的所述操作系统的启动方式;

系统启动模块,用于基于所述配置信息中指示的启动方式,执行所述操作系统的启动。

又一方面,提供了一种服务器,其特征在于,所述服务器中包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现上述的操作系统的启动方法。

又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的操作系统的启动方法。

再一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的操作系统的启动方法。

附图说明

为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一示例性实施例示出的服务器的启动流程的示意图。

图2是根据一示例性实施例示出的启动盘的类型的示意图。

图3是根据一示例性实施例示出的启动盘的构成的示意图。

图4是根据一示例性实施例示出的操作系统的启动方法的方法流程图。

图5是根据一示例性实施例示出的元数据分区的构成的示意图。

图6是根据一示例性实施例示出的启动盘的构成的示意图。

图7是根据一示例性实施例示出的操作系统的启动方法的方法流程图。

图8是根据一示例性实施例示出的一种操作系统的启动装置的结构方框图。

图9是根据一示例性实施例提供的一种服务器的示意图。

具体实施方式

下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应理解,在本申请的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,A指示B,可以表示A直接指示B,例如B可以通过A获取;也可以表示A间接指示B,例如A指示C,B可以通过C获取;还可以表示A和B之间具有关联关系。

在本申请实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。

本申请实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。

结合参考图1,通常服务器的启动包含如下几个部分:

(1)服务器上电。

(2)中央处理器(Central Processing Unit,CPU)自启动引擎的启动。

(3)系统固件的启动,在x86系统上是BIOS或UEFI,在OpenPOWER上是OPAL或Petitboot。其中,Petitboot是基于Linux kexec实现的引导装载程序,属于一种固件。

(4)系统固件会按照预定义的规则去读取启动盘上的预定位置的数据,引导装载程序(bootloader)。

(5)引导装载程序会读取操作系统的引导信息,启动操作系统。

如图2所示,启动盘大致包含如下如的三种形式:使用软RAID保护的虚拟硬盘;使用硬RAID保护的虚拟硬盘;没有任何保护的硬盘。

其中,独立硬盘冗余阵列(Redundant Array of Independent Disks,RAID),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列,其利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或资料冗余,或是两者同时提升。软RAID是基于软件实现的RAID,需要使用服务器CPU的算力。硬RAID是基于专门的硬盘做的RAID,无需服务器CPU提供算力。

为了保证服务器启动盘的可靠性,通常会对启动盘使用软RAID或者硬RAID进行保护,但是这种保护存在可以改进的地方:

(1)RAID卡不能跨卡做数据保护。

通常服务器的启动盘都是连接到同一个硬RAID卡下的,如果硬件RAID卡故障,那么系统将无法启动。而如果把两块系统盘连接到两张硬件RAID卡,那么这两块盘直接无法通过硬RAID卡做保护。

(2)软RAID不能保护MBR。

软RAID通常只能保护启动盘的启动分区部分,不能保护MBR,如果MBR损坏,那么系统也无法启动。

其中,如图3所示,使用软RAID启动,MBR只存在一块硬盘上,如果这个MBR失效,会导致系统无法启动。

(3)RAID价格较高。

硬RAID需要花费额外的成本。

(4)单盘启动无任何保护。

如果使用单块硬盘作为启动盘,如果这块硬盘故障,服务器也将无法启动。

(5)软RAID、硬RAID都无法感知应用,无法感知操作系统的安全性

软RAID、硬RAID都无法和操作系统层的硬件做交互,不支持定制化的启动,也无法感知系统是否能正常启动。

针对如上缺陷,本申请提供了一种操作系统的启动方法,支持定制化的启动,且是一种高可靠的启动方法。下面,对本申请提供的技术方案进行进一步说明。

图4是根据一示例性实施例示出的操作系统的启动方法的方法流程图。该方法应用于服务器中。如图4所示,该操作系统的启动方法可以包括如下步骤:

步骤410:在完成固件启动后,加载并解析主启动盘中的元数据分区,得到操作系统启动所需的配置信息。

其中,为操作系统启动所配置的硬盘包括一个主启动盘以及至少一个备启动盘。

其中,元数据分区是启动盘中的一个地址段,其用于存放操作系统启动所需配置信息。示例性的,将每块硬盘最后的n个扇区设置为元数据分区,以便于读取元数据分区,以及与现有的硬盘分区使用方式相兼容。

在本申请实施例中,在硬盘中增加设置元数据分区,该元数据分区中存放有操作系统启动所需配置信息,在服务器的启动流程完成固件启动这一步骤之后,加载并解析主启动盘中的元数据分区。

其中,元数据分区包括启动选项字段,启动选项字段用于定义操作系统的启动方式。通过启动选项字段的设置,来达到对操作系统的启动方式的自定义效果。

步骤420:基于配置信息中指示的启动方式,执行操作系统的启动。

在本申请实施例中,从元数据分区中解析得到配置信息,且配置信息中包括由启动选项字段的解析所得到的操作系统的启动方式,则基于指示的启动方式执行操作系统的启动。

综上所述,本实施例提供的操作系统的启动方法,在硬盘中增设用于存放操作系统启动所需配置信息的元数据分区,在完成固件启动后,加载并解析元数据分区得到配置信息,基于配置信息中指示的启动方式执行操作系统的启动,由于操作系统的启动是基于元数据分区中的配置信息,因此,可以通过元数据分区中配置信息的设置,保障操作系统启动的可靠性。

在示意性实施例中,元数据分区包括如下字段中的至少一种字段:

(1)管理字段,用于定义是否通过配置信息执行操作系统的启动。

示例性的,结合参考图5,管理字段可以记为managed,用于定义是否管理该分区,管理该分区也即是否通过这个分区中的配置信息执行操作系统的启动,也即这个启动盘是否需要开启固件增强启动。

(2)启动选项字段,用于定义操作系统的启动方式。

示例性的,结合参考图5,启动选项字段可以记为Boot option,用于定义启动方式。

(3)启动计数器字段,用于记录操作系统的启动次数。

示例性的,结合参考图5,启动计数器字段可以记为boot_count,用于记录系统启动次数,可以记录系统启动失败的次数,当达到一定阈值后,启动预定义的恢复工作(rescue boot)。

(4)MBR备份字段,用于保存MBR的备份。

示例性的,结合参考图5,MBR备份字段可以记为MBR_backup,用于保存MBR的备份,当MBR区域失效后,可以从这个备份启动。

(5)扩展字段,用于预留待扩展的信息。

示例性的,结合参考图5,扩展字段可以记为Extend_parms,用于将来的扩展。

(6)分区哈希值字段,用于保存元数据分区的校验值。

示例性的,结合参考图5,分区哈希值字段可以记为Partition_hash,用于保存分区的校验值,可以用来校验分区数据的完整性。

(7)分区标识符字段,用于定义元数据分区的标识符。

示例性的,结合参考图5,分区标识符字段可以记为Partition_Idetifier,用于供固件识别元数据分区,如果不包含这个标识符,则表示这个启动盘不包含元数据分区。标识符使用一个规则来生成,并在固件中实现识别该标识符的方法。

可以理解的是,本申请实施例对上述元数据分区的各个字段的排列顺序、字节数并不加以限制。

在一种可能的实现方式中,元数据分区包括启动计数器字段,启动计数器字段用于记录操作系统的启动次数;基于配置信息中指示的启动方式,执行操作系统的启动,包括:读取启动计数器字段,在启动计数器字段中的计数值不超过启动阈值的情况下,基于配置信息中指示的启动方式,执行操作系统的启动。

在本实现方式中,通过启动计数器字段的设置,对操作系统的启动次数进行统计,当启动次数不超过启动阈值时,则基于元数据分区解析到的配置信息中所指示的启动方式,正常地执行操作系统的启动。

在一种可能的实现方式中,主启动盘中还包括主启动分区、备启动分区以及恢复分区,主启动分区和备启动分区中存放有操作系统启动所需文件,恢复分区中存放有操作系统启动所需文件的标准镜像,在启动计数器字段中的计数值超过启动阈值的情况下,将恢复分区中的数据拷贝到主启动分区、备启动分区,通过恢复后的主启动分区、备启动分区恢复启动操作系统。

示例性,每个启动盘的分区结构如图6所示:主启动分区和备启动分区用于存放操作系统启动所需文件,恢复分区用于存放操作系统启动所需文件的标准镜像。

在本实现方式中,当操作系统的启动次数超过了启动阈值,则进入恢复启动模式:通过读取恢复分区中的数据,恢复主启动分区、备启动分区,从而恢复启动操作系统。

在一种可能的实现方式中,元数据分区包括分区哈希值字段,分区哈希值字段用于保存元数据分区的校验值;读取启动计数器字段,包括:读取分区哈希值字段,在对分区哈希值字段中的校验值校验通过的情况下,读取启动计数器字段。

在本实现方式中,通过分区哈希值字段的设置,对元数据分区数据的完整性进行校验。

在一种可能的实现方式中,元数据分区包括管理字段,管理字段用于定义是否通过配置信息执行操作系统的启动;在基于配置信息中指示的启动方式,执行操作系统的启动之前,该方法还包括:读取管理字段,在管理字段为目标数据的情况下,确认通过配置信息执行操作系统的启动。

在本实现方式中,通过管理字段的设置,判断本次启动是否需要进入受控的启动流程,即是否通过配置信息执行操作系统的启动,以开启固件增强启动。

在一种可能的实现方式中,在管理字段为非目标数据的情况下,读取MBR,使用MBR加载主启动盘中的引导信息,基于引导信息来启动操作系统。

在本实现方式中,如果管理字段为非目标数值,则回退到相关技术中所提供的传统启动方案:读取MBR,使用MBR加载主启动盘中的引导信息,基于引导信息来启动操作系统,从而通过管理字段实现传统启动方案的兼容。

在一种可能的实现方式中,元数据分区包括MBR备份字段,MBR备份字段用于保存MBR的备份;在主启动盘中的MBR缺失的情况下,读取MBR备份字段,使用MBR的备份恢复主启动盘中的MBR。

在本实现方式中,通过MBR备份字段的设置,如果基于传统启动方案执行启动时缺失MBR,则可以通过读取元数据分区中的MBR备份字段,使用MBR的备份恢复MBR,以保障顺利执行传统启动方案。

在一种可能的实现方式中,元数据分区包括分区标识符字段,分区标识符字段用于定义元数据分区的标识符;在加载并解析主启动盘中的元数据分区,得到操作系统启动所需的配置信息之前,该方法还包括:读取主启动盘中的数据,检测读取到的数据是否包含元数据分区的标识符;在读取到的数据包含元数据分区的标识符的情况下,确认主启动盘中存在元数据分区。

在本实现方式中,通过识别分区标识符字段中定义的标识符,来快速检测主启动盘中是否包括元数据分区。

在一种可能的实现方式中,在完成操作系统的启动后,响应于操作系统层的软件的修改操作,更新元数据分区。

在本实现方式中,在完成一次操作系统的启动之后,操作系统层的软件可以基于需求,对元数据分区的数据进行修改,更新操作系统启动所需的配置信息,从而实现定制化的启动。

在一种可能的实现方式中,元数据分区包括扩展字段,扩展字段用于预留待扩展的信息。

在本实现方式中,通过扩展字段的设置,在元数据分区中预留将来可以进行扩展的字段。

在一种可能的实现方式中,启动盘除主启动盘之外还包括备启动盘,每个启动盘中包括主启动分区、备启动分区,主启动分区和备启动分区中存放有操作系统启动所需文件;配置信息中指示的启动方式,包括如下中的任意一种:

从主启动盘启动;从主启动盘中的主启动区启动;从主启动盘中的备启动区启动;从备启动盘启动;从备启动盘中的主启动区启动;从主启动盘中的备启动区启动;从网络启动;从USB启动;从HBA卡启动。

在本实现方式中,配置信息中指示的启动方式,即启动选项字段中设置的启动方式,可以是设置从启动盘(主启动盘或备启动盘)的主、备分区启动,或者从网络启动,或者从其他的启动设备启动,比如USB设备、HBA卡等,从而保障启动方式的灵活性。可以理解的是,在主启动盘中指示的启动方式是从备启动盘启动时,即可实现跨卡做数据保护的功能。

综上所述,本实施例提供的操作系统的启动方法,在元数据分区中设置启动选项字段来达到选择启动方式的效果;在元数据分区中设置启动计数器字段来统计操作系统启动失败的次数,并根据次数来进行操作系统的恢复流程或者正常启动流程;在元数据分区中设置MBR备份字段来保存MBR的备份,以保护MBR;在元数据分区中设置分区哈希值字段,来对元数据分区进行验证;在元数据分区中设置分区标识符字段,以对元数据分区快速识别。

下面,结合参考图7所示流程,对上文实施例所述的操作系统的启动方法进行示例性的说明。

S1:服务器上电,开始启动流程。

S2:硬件启动并自检。

S3:固件加载。

S4:固件扫描服务器上的所有硬盘。

S5:采用传统启动方式从硬盘启动。

可以理解的是,基于现有技术中的传统启动方式,会读取MBR,而基于本申请所提供的固件增强方式,则会尝试寻找硬盘中的元数据分区。

D7:判断MBR是否完整。

在MBR不完整的情况下,则进入S16流程。

S16:使用备份MBR数据恢复MBR。

其中,备份MBR数据存放于元数据分区的MBR备份字段。

D1:固件判断硬盘是否包含元数据分区。

其中,判断方法可以是固件读取预定义的元数据分区区域,并检查读取的数据中,是否包含某个特定的字符串,这个字符串就是分区标识符字段中保存的标识符,如果不包含,则进入S5流程,如果包含,则会进入S9流程。

S9:加载元数据分区的数据。

D5:解析元数据分区中的数据,读取管理字段,判断本次启动是否需要进入受控的启动流程。

如果管理字段为True或者1,那么就进入S17流程,如果管理字段为False或者0,则回退到传统启动方式S5。

S17:读取元数据分区的校验值,并计算元数据分区的哈希值。

D6:判断校验值与哈希值是否一致。

如果一致,则进入S10流程,如果不一致则进入S14流程。

S10:读取启动计数器的值。

D3:判断启动次数是否大于N。

如果启动计数器字段的值已经超过了预定义的上限N,那么说明操作系统已经启动失败了N次,将进入S14恢复启动流程。如果启动计数器字段的值低于预设的上限N,那么将执行S11的步骤。

S14:恢复启动。

在恢复启动流程中,硬盘中的恢复分区中包含了操作系统的标准镜像,将该部分镜像拷贝到主启动分区和备启动分区,从而恢复启动。可以理解的是,恢复启动也可以通过其他途径来实现,比如一段用于恢复系统的代码,依靠网络进行系统恢复。

S11:将启动计数器的值+1,并更新到元数据分区区域,并进入S12。

S12:获取启动方式。

通过读取元数据分区的启动选项字段,可以获取启动方式。该字段可以设置从硬盘的主、备分区启动,或者从网络启动,或者其他的启动设备,比如USB设备、HBA卡等。其中,硬盘启动还可以进一步指定从主启动盘或备启动盘启动。

D4:从硬盘启动。

选择硬盘中的一个启动分区进行启动,进入S6流程。其中,当主启动盘出现故障时,固件可以再次读取备启动盘的数据进行系统启动。

S6:系统启动完成。

从硬盘加载了操作系统内核后,完成操作系统的启动。

S13:通过其他启动方式进行系统启动。

本申请实施例对该步骤设计的具体启动过程不加以限制。

D2:系统启动完成后,系统内定制的程序将再次扫描启动盘,判断启动盘是否包含元数据分区。

如果没有发现元数据分区则进入S7,结束启动流程。如果发现了元数据分区,则将清除启动计数器,并更新元数据分区。

基于如上流程,本申请提供的技术方案的优点在于:

(1)不需要增加额外的硬件,在节约成本的同时提供比硬件RAID更高的安全性和可靠性。

(2)可以感知操作系统的安全性,当前磁盘的MBR有损坏时,可以读取元数据分区的MBR备份字段。

(3)可以通过元数据分区中的扩展字段实现定制化,例如是否启用固件增强启动和多个启动分区等等。

(4)可以实现在不同硬RAID之间实现跨RAID卡做数据保护。

(5)可以和操作系统做交互,可以根据业务软件的需求,定义启动的方式。

需要说明的是,上述方法实施例可以单独实施例,也可以组合实施,本申请对此不加以限制。

图8是根据一示例性实施例示出的一种操作系统的启动装置的结构方框图。所述装置包括:

数据加载模块801,用于在完成固件启动后,加载并解析主启动盘中的元数据分区,得到操作系统启动所需的配置信息,所述配置信息中包括由所述元数据分区中的启动选项字段定义的所述操作系统的启动方式;

系统启动模块802,用于基于所述配置信息中指示的启动方式,执行所述操作系统的启动。

在一种可能的实现方式中,所述元数据分区包括启动计数器字段,所述启动计数器字段用于记录所述操作系统的启动次数;

所述系统启动模块802,用于:

读取所述启动计数器字段,在所述启动计数器字段中的计数值不超过启动阈值的情况下,基于所述配置信息中指示的启动方式,执行所述操作系统的启动。

在一种可能的实现方式中,所述主启动盘中还包括主启动分区、备启动分区以及恢复分区,所述主启动分区和所述备启动分区中存放有操作系统启动所需文件,所述恢复分区中存放有操作系统启动所需文件的标准镜像,所述系统启动模块802,用于:

在所述启动计数器字段中的计数值超过启动阈值的情况下,将所述恢复分区中的数据拷贝到所述主启动分区、备启动分区,通过恢复后的主启动分区、备启动分区恢复启动所述操作系统。

在一种可能的实现方式中,所述元数据分区包括分区哈希值字段,所述分区哈希值字段用于保存所述元数据分区的校验值;

所述系统启动模块802,用于:

读取所述分区哈希值字段,在对所述分区哈希值字段中的校验值校验通过的情况下,读取所述启动计数器字段。

在一种可能的实现方式中,所述元数据分区包括管理字段,所述管理字段用于定义是否通过所述配置信息执行所述操作系统的启动;

所述系统启动模块802,用于:

在基于所述配置信息中指示的启动方式,执行所述操作系统的启动之前,读取所述管理字段,在所述管理字段为目标数据的情况下,确认通过所述配置信息执行所述操作系统的启动。

在一种可能的实现方式中,所述系统启动模块802,用于:

在所述管理字段为非目标数据的情况下,读取MBR,使用所述MBR加载所述主启动盘中的引导信息,基于所述引导信息来启动所述操作系统。

在一种可能的实现方式中,所述元数据分区包括MBR备份字段,所述MBR备份字段用于保存MBR的备份;

所述系统启动模块802,用于:

在所述主启动盘中的MBR缺失的情况下,读取所述MBR备份字段,使用MBR的备份恢复所述主启动盘中的MBR。

在一种可能的实现方式中,所述元数据分区包括分区标识符字段,所述分区标识符字段用于定义所述元数据分区的标识符;

所述数据加载模块801,用于:

在加载并解析主启动盘中的元数据分区,得到操作系统启动所需的配置信息之前,读取所述主启动盘中的数据,检测读取到的数据是否包含所述元数据分区的标识符;

在读取到的数据包含所述元数据分区的标识符的情况下,确认所述主启动盘中存在所述元数据分区。

在一种可能的实现方式中,所述装置还包括:分区更新模块;所述分区更新模块,用于:

在完成所述操作系统的启动后,响应于操作系统层的软件的修改操作,更新所述元数据分区。

在一种可能的实现方式中,启动盘除所述主启动盘之外还包括备启动盘,每个启动盘中包括主启动分区、备启动分区,所述主启动分区和所述备启动分区中存放有操作系统启动所需文件;

所述配置信息中指示的启动方式,包括如下中的任意一种:

从所述主启动盘启动;

从所述主启动盘中的主启动区启动;

从所述主启动盘中的备启动区启动;

从所述备启动盘启动;

从所述备启动盘中的主启动区启动;

从所述主启动盘中的备启动区启动;

从网络启动;

从USB启动;

从HBA卡启动。

需要说明的是:上述实施例提供的操作系统的启动装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参阅图9,其是根据本申请一示例性实施例提供的一种服务器的示意图,所述服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的操作系统的启动方法。

其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

相关技术
  • 服务器启动方法、装置、服务器及计算机可读存储介质
  • 桌面启动器模板更新方法及装置、服务器及存储介质
  • 整机柜GPU服务器供电方法、服务器、电源装置及存储介质
  • 服务器代码部署方法、装置、服务器设备及存储介质
  • 数据存储、检索方法、装置、服务器和存储介质
  • 操作系统启动方法、装置、服务器及存储介质
  • 操作系统启动方法、装置、服务器及存储介质
技术分类

06120116106703