侦测和防止硬盘GPT启动分区GUID相同的方法与流程

文档序号:12363024阅读:858来源:国知局

技术领域

本发明涉及服务器技术领域,具体的说是侦测和防止硬盘GPT启动分区GUID相同的方法。



背景技术:

在服务器产品中,通常会连接多个的硬盘存储设备,对存储产品来讲,硬盘设备可能更多。在这些存储设备中,有可能会有两个或者多个的启动系统存储在不同的硬盘上,这种做法的好处是当一个硬盘系统被损坏无法修复而不能启动时,可以尝试从另一个硬盘系统中启动,这样可以较为方便的管理硬盘信息资料。否则,就只能尝试尽量的修复系统,或者重装系统,或者把数据硬盘挂到别的机器上访问数据,这些措施操作较为繁琐,也不方便用户,所以挂载两个系统就成为较优方式。

但是在实际的系统制作过程中,有些厂商或者个人为了方便,通常用硬盘拷贝机一类的设备直接拷贝系统,这样两个系统的数据乃至分区都会是一样的。这两个系统如果是放在不同的机器上是没有问题的,但是如果放在同样一个机器上面时就会出现问题,因为这两个硬盘的分区信息都是一样的,系统分区分配的GUID也是相同的,这就像两个人有相同的身份证一样,潜在的问题有可能是不可预估的。对于这种情况,目前的BIOS和系统并不会去提示用户,这就对当下越来越注重的数据安全问题埋下隐患。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供一种ARM平台侦测和防止硬盘GPT启动分区GUID相同的方法。

本发明所述侦测和防止硬盘GPT启动分区GUID相同的方法,解决上述技术问题采用的技术方案如下:所述侦测和防止硬盘GPT启动分区GUID相同的方法,其具体实现过程包括如下步骤:

1)系统启动过程中,BIOS读取具有BLOCKIO protocol和DISKIO protocol,EFI_SIMPLE_FILE_SYSTEM_PROTOCOL的handler,handler即为ESP分区;

2)读取上述handler中分配的GUID,把该GUID存放到临时分配的内存buffer中;

3)比较这些GUID,若有相同,则发出告警信息,若没有相同的,则继续后续的启动程序。

优选的,所述步骤1)主要内容包括:基于现有的BIOS程序增加一个driver,在系统开机BDS阶段当BIOS建立好boot option之后,BIOS通过boot option的device path找到boot option的设备;然后在这些设备中查找具有BLOCKIO protocol和DISKIO protocol的设备handler,并在这些handler中查找具有EFI_SIMPLE_FILE_SYSTEM_PROTOCOL的handler,即硬盘的ESP分区。

优选的,以接入两个具有系统的硬盘为例,所述步骤2)中,能够得到两个ESP分区,定位到分区后,获得分区被分配的GUID,即读取handler中分配的GUID,把此GUID存放到临时分配的内存buffer1中;继续查找符合条件的其他handler,并依次把GUID存入内存buffer2中。

本发明所述侦测和防止硬盘GPT启动分区GUID相同的方法与现有技术相比具有的有益效果是:本发明不会增加硬件器件和线路,完全由BIOS的软件代码完成,能够检测硬盘GPT启动分区GUID是否相同,有效防止硬盘GPT启动分区GUID相同,克服了现有技术无法识别硬盘GPT启动分区GUID相同的缺陷,增加服务器的安全性能,为用户硬盘数据提供更安全的保障,提高了系统安全性,完善了产品功能。

说明书附图

附图1为所述侦测和防止硬盘GPT启动分区GUID相同的方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明所述侦测和防止硬盘GPT启动分区GUID相同的方法进一步详细说明。

为了防止硬盘GPT启动分区GUID相同,本发明所述侦测和防止硬盘GPT启动分区GUID相同的方法,基于现有的BIOS程序,当BIOS建立好BDS阶段的boot option(启动选项)之后,通过boot option的device path(设备路径)找到boot option的设备,然后在这些设备中查找具有BLOCKIO protocol和DISKIO protocol的设备handler,并在这些handler中查找具有EFI_SIMPLE_FILE_SYSTEM_PROTOCOL的handler,即硬盘的ESP分区,这个分区上存放有启动文件,若接入若干个具有系统的硬盘,则会得到若干个这样的分区;定位到分区后,获得分区被分配的GUID,最后对比这些GUID,来侦测硬盘GPT启动分区GUID是否相同。

实施例:

本实施例所述侦测和防止硬盘GPT启动分区GUID相同的方法,如附图1所示,其具体实现过程包括如下步骤:

1)系统启动过程中,BIOS读取具有BLOCKIO protocol和DISKIO protocol,EFI_SIMPLE_FILE_SYSTEM_PROTOCOL的handler,handler即为ESP分区;

2)读取上述handler中分配的GUID,把该GUID存放到临时分配的内存buffer中;

3)比较这些GUID,若有相同,则发出告警信息,若没有相同的,则继续后续的启动程序。

本实施例所述侦测和防止硬盘GPT启动分区GUID相同的方法,所述步骤1)主要内容包括:基于现有的BIOS程序增加一个driver,在系统启动BDS阶段当BIOS建立好boot option之后,BIOS通过boot option的device path找到boot option的设备;然后在这些设备中查找具有BLOCKIO protocol和DISKIO protocol的设备handler,并在这些handler中查找具有EFI_SIMPLE_FILE_SYSTEM_PROTOCOL的handler,即硬盘的ESP分区,这个分区上存放有启动文件。

本实施例所述侦测和防止硬盘GPT启动分区GUID相同的方法中,以接入两个具有系统的硬盘为例,所述步骤2)中,能够得到两个ESP分区,定位到分区后,获得分区被分配的GUID,即读取handler中分配的GUID,把此GUID存放到临时分配的内存buffer1中;继续查找符合条件的其他handler,并依次把GUID存入内存buffer2中。

本实施例所述侦测和防止硬盘GPT启动分区GUID相同的方法中,以接入两个具有系统的硬盘为例,所述步骤3)中,最后比较这两个GUID,若两个分区 的GUID相同,则用户告警提示。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1