CN114706533A - 一种基于gpt分区表的多文件多级启动加载方法及装置 - Google Patents

一种基于gpt分区表的多文件多级启动加载方法及装置 Download PDF

Info

Publication number
CN114706533A
CN114706533A CN202210459755.2A CN202210459755A CN114706533A CN 114706533 A CN114706533 A CN 114706533A CN 202210459755 A CN202210459755 A CN 202210459755A CN 114706533 A CN114706533 A CN 114706533A
Authority
CN
China
Prior art keywords
partition
file
gpt
name
length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210459755.2A
Other languages
English (en)
Other versions
CN114706533B (zh
Inventor
姜志颖
王飞
范东睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Ruixin Integrated Circuit Technology Co ltd
Original Assignee
Suzhou Ruixin Integrated Circuit Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Ruixin Integrated Circuit Technology Co ltd filed Critical Suzhou Ruixin Integrated Circuit Technology Co ltd
Priority to CN202210459755.2A priority Critical patent/CN114706533B/zh
Publication of CN114706533A publication Critical patent/CN114706533A/zh
Application granted granted Critical
Publication of CN114706533B publication Critical patent/CN114706533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于GPT分区表的多文件多级启动加载方法及装置,该方法包括如下步骤:步骤S1:在每个分区入口中存放一个文件的名称、占用空间大小和补齐大小;步骤S2:在每个分区中存放文件数据;步骤S3:生成存储镜像。本发明对存储介质采用GPT格式分区,将每个启动文件的数据直接存放于各个分区,并且,将文件名作为分区名用于检索。依靠分区提高了灵活性和空间利用率,同时,未引入文件系统,因此降低了复杂度和计算量。

Description

一种基于GPT分区表的多文件多级启动加载方法及装置
技术领域
本发明涉及多文件多级启动加载方法技术领域,特别涉及一种基于GPT分区表的多文件多级启动加载方法及装置。
背景技术
系统启动通常需要多个文件(例如多级Bootloader文件,内核Image文件和配置文件),这些文件位于一个存储介质(例如Flash)当中。
目前对存储空间的管理方法有2类:
1、直接寻址:将每个启动文件的数据存放在固定地址。例如图1所示,为直接寻址的数据存放的示意图。
该方法的特点是:定位简单迅速,但是数据位置和大小受限,不够灵活。启动程序需要预知各个地址,一旦确定不能调整。不同数据之间需要预留一定空闲空间,以备将来扩展。
2、分区+文件系统:首先对存储介质进行分区(采用MBR格式或者GPT格式),然后在分区上建立文件系统(采用EFI格式或者EXT2格式),最后将所有启动文件存放于文件系统中。例如图2所示,为分区+文件系统的数据存放的示意图。
该方法的特点是:存放位置和数据大小可以灵活调整,但是寻址复杂耗时。启动程序需要集成文件系统的功能,增加了自身的代码体积和运行时的计算量。
因此,如何将上述问题加以解决,即为本领域技术人员的研究方向所在。
发明内容
发明所要解决的问题
本发明的主要目的是提供基于GPT分区表的多文件多级启动加载方法及装置,以解决上述技术中存在的分区问题。
用于解决问题的方案
为了达到上述目的,本发明提供一种基于GPT分区表的多文件多级启动加载方法,包括如下步骤:
步骤S1:在每个分区入口中存放一个文件的名称、占用空间大小和补齐大小;
步骤S2:在每个分区中存放文件数据;
步骤S3:生成存储镜像。
较佳的实施方式,还包括步骤S4:进行存储镜像的解析。
较佳的实施方式,步骤S3中的存储镜像的生成步骤具体包括:
步骤S31:获取需要存放的所有文件的描述信息,并且根据GPT的块对齐要求,计算其占用的块数量及补齐长度;
步骤S32:将文件名称作为分区名称;
步骤S33:将文件序号和补齐长度均转换为字符串形式的16进制数,与特定的前缀拼接,作为分区标识;
步骤S34:利用GPT工具依据每组<分区名称、分区标识、块数量>信息对存储介质进行分区;
步骤S35:按照文件序号,确定对应分区的起止地址,并将文件数据存放至对应分区内。
较佳的实施方式,所述步骤S4具体包括以下步骤:
步骤S41:获取GPT头部及所有有效分区的分区入口;
步骤S42:根据指定的文件名称,按照字符串匹配分区名称;
步骤S43:提取步骤S42中匹配分区的起始地址,占用块数和补齐长度,然后计算文件长度=占用块数*块大小-补齐长度;
步骤S44:从存储镜像的起始地址位置开始,读取长度为文件长度的数据。
为了达到上述目的,本发明还提供一种基于GPT分区表的多文件多级启动加载装置,包括:
第一存放单元,其在每个分区入口中存放一个文件的名称、占用空间大小和补齐大小;以及
第二存放单元,其在每个分区中存放文件数据;
镜像生成单元,其生成存储镜像。
较佳的实施方式,还包括:镜像解析单元,其进行存储镜像的解析。
较佳的实施方式,所述镜像生成单元包括:
第一计算单元,其获取需要存放的所有文件的描述信息,并且根据GPT的块对齐要求,计算其占用的块数量及补齐长度;
分区名称单元,其将文件名称作为分区名称;
分区标识单元,其将文件序号和补齐长度均转换为字符串形式的16进制数,与特定的前缀拼接,作为分区标识;
分区单元,其利用GPT工具依据每组<分区名称、分区标识、块数量>信息对存储介质进行分区;
存放单元,其按照文件序号,确定对应分区的起止地址,并将文件数据存放至对应分区内。
较佳的实施方式,所述镜像解析单元包括:
获取单元,其获取GPT头部及所有有效分区的分区入口;
匹配单元,其根据指定的文件名称,按照字符串匹配分区名称;
第二计算单元,其提取步骤S42中匹配分区的起始地址,占用块数和补齐长度,然后计算文件长度=占用块数*块大小-补齐长度;
读取单元,其从存储镜像的起始地址位置开始,读取长度为文件长度的数据。
为了达到上述目的,本发明还提供一种电子设备,所述电子设备存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
为了达到上述目的,本发明还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。
发明的效果
与现有技术相比,本发明具有如下有益效果:
本发明对存储介质采用GPT格式分区,将每个启动文件的数据直接存放于各个分区,并且,将文件名作为分区名用于检索。依靠分区提高了灵活性和空间利用率,同时,未引入文件系统,因此降低了复杂度和计算量。
附图说明
图1是现有技术中直接寻址的数据存放的示意图。
图2是现有技术中分区+文件系统的数据存放的示意图。
图3是GPT分区格式的示意图。
图4是GPT分区属性的示意图。
图5是本发明的基于GPT分区表的多文件多级启动加载方法流程图。
图6是本发明按照文件名排序分配分区的示意图。
图7为本发明的基于GPT分区表的多文件多级启动加载装置框图。
图8是本申请实施例提供的一种电子设备的结构示意图。
图9是本申请实施例提供的一种用于实现容量增量升级方法的程序产品的结构示意图。
具体实施方式
下面将结合本发明实施例中的图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。并且,在此处需要进一步强调的是,以下的具体实施例提供的优选的技术方案,各方案(实施例)之间是可以相互配合或结合使用的。
首先,对GPT分区背景知识做简单介绍,GPT(GUID Partition Table,全局唯一标识分区表),是一种全新的分区结构,它是硬盘分区表结构的升级标准。
如图3和4所示,分别为GPT分区格式的示意图、GPT分区属性的示意图。
LBA0就是存储设备的第0个逻辑存储块;
LBA1中存放的称为“主分区头(Primary GPT Header)”;
LBA2到LBA33,一共32个逻辑块,是用于存储分区表项的,每一个分区表项就描述了一个分区,
上述的逻辑存储块,是与物理存储块进行区分的,由于目前的工艺水平导致不论NAND还是机械硬盘都存在坏块的情况,在使用存储设备时,遇到损坏的存储块就会被驱动程序或固件自动跳过,因此坏块对于驱动程序以上的应用程序来说是透明的,感受不到坏块,也不关注坏块,对存储设备的存储块进行的编号称为逻辑块地址(也可以叫:逻辑块编号)。
GPT分区为了兼容传统的MBR分区,其第一个逻辑块数据格式与MBR分区一致,即:第一个逻辑块就是MBR(主引导记录)。
但为了与传统的MBR分区进行区分,GPT分区的分区类型为EE,在传统的MBR中,EE类型的分区表示保护类型,GPT以此来防止其数据被无意间篡改。
GPT工具是使用sgdisk,sgdisk为Linux系统中使用的开源免费的第三方工具。
如图5所示,为本发明的基于GPT分区表的多文件多级启动加载方法流程图,该方法提供了一种基于GPT分区表管理存储镜像,存放多个启动文件,并可根据文件名提取文件数据的启动加载方法。如图6所示,为本发明按照文件名排序分配分区的示意图。本发明是对存储介质采用GPT格式分区,将每个启动文件的数据直接存放于各个分区,并且,将文件名作为分区名用于检索。
本发明的基于GPT分区表的多文件多级启动加载方法具体包括如下步骤:
步骤S1:在每个分区入口(Partition Entry)中存放一个文件的名称、占用空间大小(数据块的数量)和补齐大小(无效数据的长度);
步骤S2:在每个分区(Partition)中存放文件数据;
步骤S3:生成存储镜像。
以下对一些参数进行定义,以下默认单位为字节Byte:
首先,进行定义GPT分区过程中使用的基本参数:
(1)数据块大小=1024(1K);
(2)扇区大小=512;
(3)存储设备Flash容量=32M(33554432)
(4)分区标识前缀73646669-726D-6470-7500-0000
其次,对个每个分区中的占用块数、分区长度、补齐长度以及分区起始位置进行计算。
由以下计算公式对占用块数、分区长度、补齐长度以及分区起始位置进行计算:
(1)占用块数=文件长度按照块长度向上取整/块大小
block_count=(file_size+1023)/1024
(2)分区长度=块大小*占用块数
partition_size=1024*block_count
(3)补齐长度=分区长度-文件长度
padding_size=partition_size-file_size
(4)分区起始位置:由sgdisk自动分配
如表1所示,为基于GPT分区表的多文件多级启动加载方法的一例,
在容量为32MB的存储设备上,在前3个分区(分区序号1、2、3)存放了3个启动文件Conf、Kernel和UBoot。此外,剩余的空闲空间作为第4个分区。
表1
文件名 Conf Kernel UBoot 空闲空间
分区序号 1 2 3 4
文件长度 123456 10361936 17473544 -
占用块数 121 10120 17065 -
分区长度 123904 10362880 17474560 31288832
补齐长度 448(0x01c0) 944(0x03b0) 1016(0x03f8) -
分区标识后缀 000101c0 000203b0 000303f8 -
分区起始位置 1048576 2097152 12582912
步骤S3中的存储镜像的生成步骤具体包括:
步骤S31:获取需要存放的所有文件的描述信息(文件序号file-num,名称file-name和文件长度file-size),并且根据GPT的块对齐要求(例如block-size=1KB),计算其占用的块数量(block-count)及补齐长度(padding-size)。
步骤S32:将文件名称(file-name)作为分区名称(partition-name);
步骤S33:将文件序号(file-num)和补齐长度(padding-size)均转换为字符串形式的16进制数,与特定的前缀拼接,作为分区标识(partition-guid);
步骤S34:利用GPT工具依据每组<分区名称(partition-name)、分区标识(partition-guid)、块数量(block-count)>信息对存储介质进行分区;
GPT工具
sgdisk--new 0:0:+$(block_count)KB\
--change-name 0:$(file-name)\
--partition-guid 0:${part_guid}\
gpt.img
步骤S35:按照文件序号,确定对应分区的起止地址,并将文件数据存放至对应分区内。
上述是使用Linux系统中提供的工具dd完成本过程。
本发明还包括步骤S4:进行存储镜像的解析,在此步骤中是指根据指定文件名,给出文件数据的存放地址和长度,具体包括以下步骤:
步骤S41:获取GPT头部及所有有效分区的partition-entry(GUID为全0的为无效分区);
步骤S42:根据指定的文件名称(file-name),按照字符串匹配分区名称(partition-name);
步骤S43:提取步骤S42中匹配分区的起始地址(partition-start),占用块数(block-count)和补齐长度(padding-size),然后计算文件长度(file-size)=占用块数*块大小-补齐长度;
步骤S44:从存储镜像的起始地址(partition-start)位置开始,读取长度为文件长度(file-size)的数据。
图7为发明的基于GPT分区表的多文件多级启动加载装置框图,本发明的基于GPT分区表的多文件多级启动加载装置1包括:
第一存放单元11,其在每个分区入口(Partition Entry)中存放一个文件的名称、占用空间大小(数据块的数量)和补齐大小(无效数据的长度);以及
第二存放单元12,其在每个分区(Partition)中存放文件数据;
镜像生成单元13,其生成存储镜像。
本发明还包括:
镜像解析单元,其进行存储镜像的解析,该镜像解析单元是根据指定文件名,给出文件数据的存放地址和长度。
镜像生成单元13包括:
第一计算单元,其获取需要存放的所有文件的描述信息(文件序号file-num,名称file-name和文件长度file-size),并且根据GPT的块对齐要求(例如block-size=1KB),计算其占用的块数量(block-count)及补齐长度(padding-size);
分区名称单元,其将文件名称(file-name)作为分区名称(partition-name);
分区标识单元,其将文件序号(file-num)和补齐长度(padding-size)均转换为字符串形式的16进制数,与特定的前缀拼接,作为分区标识(partition-guid);
分区单元,利用GPT工具依据每组<分区名称(partition-name)、分区标识(partition-guid)、块数量(block-count)>信息对存储介质进行分区;
存放单元,其按照文件序号,确定对应分区的起止地址,并将文件数据存放至对应分区内。
镜像解析单元包括:
获取单元,其获取GPT头部及所有有效分区的partition-entry(GUID为全0的为无效分区);
匹配单元,根据指定的文件名称(file-name),按照字符串匹配分区名称(partition-name);
第二计算单元,提取步骤S42中匹配分区的起始地址(partition-start),占用块数(block-count)和补齐长度(padding-size),然后计算文件长度(file-size)=占用块数*块大小-补齐长度;
读取单元,其从存储镜像的起始地址(partition-start)位置开始,读取长度为文件长度(file-size)的数据。
参见图8,本申请实施例还提供了一种电子设备200,电子设备200包括至少一个存储器210、至少一个处理器220以及连接不同平台系统的总线230。
存储器210可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)211和/或高速缓存存储器212,还可以进一步包括只读存储器(ROM)213。
其中,存储器210还存储有计算机程序,计算机程序可以被处理器220执行,使得处理器220执行本申请实施例中多文件多级启动加载方法的步骤,其具体实现方式与上述多文件多级启动加载方法的实施例中记载的实施方式、所达到的技术效果一致,部分内容不再赘述。
存储器210还可以包括具有至少一个程序模块215的实用工具214,这样的程序模块215包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
相应的,处理器220可以执行上述计算机程序,以及可以执行实用工具214。
总线230可以为表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备240例如键盘、指向设备、蓝牙设备等通信,还可与一个或者多个能够与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入输出接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,所述计算机程序被执行时实现本申请实施例中多文件多级启动加载方法的步骤,其具体实现方式与上述多文件多级启动加载方法的实施例中记载的实施方式、所达到的技术效果一致,部分内容不再赘述。
图9示出了本实施例提供的用于实现上述多文件多级启动加载方法的程序产品300,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品300不限于此,在本申请中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。程序产品300可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言诸如Java、C++等,还包括常规的过程式程序设计语言诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本申请从使用目的上,效能上,进步及新颖性等观点进行阐述,已符合专利法所强调的功能增进及使用要件,本申请以上的说明书及说明书附图,仅为本申请的较佳实施例而已,并非以此局限本申请,因此,凡一切与本申请构造,装置,特征等近似、雷同的,即凡依本申请专利申请范围所作的等同替换或修饰等,皆应属本申请的专利申请保护的范围之内。

Claims (10)

1.一种基于GPT分区表的多文件多级启动加载方法,其特征在于,包括如下步骤:
步骤S1:在每个分区入口中存放一个文件的名称、占用空间大小和补齐大小;
步骤S2:在每个分区中存放文件数据;
步骤S3:生成存储镜像。
2.根据权利要求1所示的一种基于GPT分区表的多文件多级启动加载方法,其特征在于,
还包括步骤S4:进行存储镜像的解析。
3.根据权利要求1所示的一种基于GPT分区表的多文件多级启动加载方法,其特征在于,
步骤S3中的存储镜像的生成步骤具体包括:
步骤S31:获取需要存放的所有文件的描述信息,并且根据GPT的块对齐要求,计算其占用的块数量及补齐长度;
步骤S32:将文件名称作为分区名称;
步骤S33:将文件序号和补齐长度均转换为字符串形式的16进制数,与特定的前缀拼接,作为分区标识;
步骤S34:利用GPT工具依据每组<分区名称、分区标识、块数量>信息对存储介质进行分区;
步骤S35:按照文件序号,确定对应分区的起止地址,并将文件数据存放至对应分区内。
4.根据权利要求2所示的一种基于GPT分区表的多文件多级启动加载方法,其特征在于,
所述步骤S4具体包括以下步骤:
步骤S41:获取GPT头部及所有有效分区的分区入口;
步骤S42:根据指定的文件名称,按照字符串匹配分区名称;
步骤S43:提取步骤S42中匹配分区的起始地址,占用块数和补齐长度,然后计算文件长度=占用块数*块大小-补齐长度;
步骤S44:从存储镜像的起始地址位置开始,读取长度为文件长度的数据。
5.一种基于GPT分区表的多文件多级启动加载装置,其特征在于,包括:
第一存放单元,其在每个分区入口中存放一个文件的名称、占用空间大小和补齐大小;以及
第二存放单元,其在每个分区中存放文件数据;
镜像生成单元,其生成存储镜像。
6.根据权利要求5所示的基于GPT分区表的多文件多级启动加载装置,其特征在于,
还包括:镜像解析单元,其进行存储镜像的解析。
7.根据权利要求5所示的基于GPT分区表的多文件多级启动加载装置,其特征在于,
所述镜像生成单元包括:
第一计算单元,其获取需要存放的所有文件的描述信息,并且根据GPT的块对齐要求,计算其占用的块数量及补齐长度;
分区名称单元,其将文件名称作为分区名称;
分区标识单元,其将文件序号和补齐长度均转换为字符串形式的16进制数,与特定的前缀拼接,作为分区标识;
分区单元,其利用GPT工具依据每组<分区名称、分区标识、块数量>信息对存储介质进行分区;
存放单元,其按照文件序号,确定对应分区的起止地址,并将文件数据存放至对应分区内。
8.根据权利要求5所示的基于GPT分区表的多文件多级启动加载装置,其特征在于,
所述镜像解析单元包括:
获取单元,其获取GPT头部及所有有效分区的分区入口;
匹配单元,其根据指定的文件名称,按照字符串匹配分区名称;
第二计算单元,其提取步骤S42中匹配分区的起始地址,占用块数和补齐长度,然后计算文件长度=占用块数*块大小-补齐长度;
读取单元,其从存储镜像的起始地址位置开始,读取长度为文件长度的数据。
9.一种电子设备,其特征在于,所述电子设备存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-4任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一项所述方法的步骤。
CN202210459755.2A 2022-04-24 2022-04-24 一种基于gpt分区表的多文件多级启动加载方法及装置 Active CN114706533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210459755.2A CN114706533B (zh) 2022-04-24 2022-04-24 一种基于gpt分区表的多文件多级启动加载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210459755.2A CN114706533B (zh) 2022-04-24 2022-04-24 一种基于gpt分区表的多文件多级启动加载方法及装置

Publications (2)

Publication Number Publication Date
CN114706533A true CN114706533A (zh) 2022-07-05
CN114706533B CN114706533B (zh) 2023-10-27

Family

ID=82176454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210459755.2A Active CN114706533B (zh) 2022-04-24 2022-04-24 一种基于gpt分区表的多文件多级启动加载方法及装置

Country Status (1)

Country Link
CN (1) CN114706533B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115221824A (zh) * 2022-07-18 2022-10-21 北京极光星通科技有限公司 异步重构方法、装置和计算机设备
CN116467015A (zh) * 2023-06-20 2023-07-21 荣耀终端有限公司 镜像生成方法、系统启动校验方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120191960A1 (en) * 2011-01-20 2012-07-26 Mark Piwonka Booting computing devices
CN102693283A (zh) * 2012-05-07 2012-09-26 深圳市共进电子股份有限公司 一种嵌入式系统的数据分区存储方法及系统引导启动方法
US20170085384A1 (en) * 2014-05-30 2017-03-23 Kabushiki Kaisha Toshiba Information processing device and version switching method of trusted platform module
JP2019153050A (ja) * 2018-03-02 2019-09-12 Necプラットフォームズ株式会社 起動制御装置、起動制御システム、起動制御方法、及び、起動制御プログラム
US20210064386A1 (en) * 2018-01-05 2021-03-04 Wayne Inc. Booting disc supporting file storage function
CN113157282A (zh) * 2021-03-31 2021-07-23 惠州华阳通用电子有限公司 一种烧录镜像文件生成方法
CN113687837A (zh) * 2021-08-17 2021-11-23 锐捷网络股份有限公司 启动方式的转换方法及系统、虚拟机运行方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120191960A1 (en) * 2011-01-20 2012-07-26 Mark Piwonka Booting computing devices
CN102693283A (zh) * 2012-05-07 2012-09-26 深圳市共进电子股份有限公司 一种嵌入式系统的数据分区存储方法及系统引导启动方法
US20170085384A1 (en) * 2014-05-30 2017-03-23 Kabushiki Kaisha Toshiba Information processing device and version switching method of trusted platform module
US20210064386A1 (en) * 2018-01-05 2021-03-04 Wayne Inc. Booting disc supporting file storage function
JP2019153050A (ja) * 2018-03-02 2019-09-12 Necプラットフォームズ株式会社 起動制御装置、起動制御システム、起動制御方法、及び、起動制御プログラム
CN113157282A (zh) * 2021-03-31 2021-07-23 惠州华阳通用电子有限公司 一种烧录镜像文件生成方法
CN113687837A (zh) * 2021-08-17 2021-11-23 锐捷网络股份有限公司 启动方式的转换方法及系统、虚拟机运行方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115221824A (zh) * 2022-07-18 2022-10-21 北京极光星通科技有限公司 异步重构方法、装置和计算机设备
CN116467015A (zh) * 2023-06-20 2023-07-21 荣耀终端有限公司 镜像生成方法、系统启动校验方法及相关设备
CN116467015B (zh) * 2023-06-20 2023-10-20 荣耀终端有限公司 镜像生成方法、系统启动校验方法及相关设备

Also Published As

Publication number Publication date
CN114706533B (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
CN114706533B (zh) 一种基于gpt分区表的多文件多级启动加载方法及装置
US8260818B1 (en) Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
EP1202168A2 (en) System and method for dynamically veryfying the compatibility of a user interface resource
CN100578505C (zh) 文件系统管理装置
CN108132890B (zh) 存储芯片的垃圾回收方法、装置、设备及存储介质
US10929149B2 (en) Method and system for updating firmware
US20230117105A1 (en) On-demand loading of dynamic scripting language code for reduced memory usage
CN104679540A (zh) 计算机系统与计算机系统启动方法
CN115543224B (zh) 基于zns ssd的文件系统控制方法、装置及设备
CN110659210A (zh) 一种信息获取方法、装置、电子设备及存储介质
CN110569218B (zh) 一种ext文件系统离线修改方法、装置及存储介质
US8196093B2 (en) Apparatus and method for componentizing legacy system
CN111104347B (zh) 堆内存块查找方法、装置、设备及存储介质
JP3731859B2 (ja) ハンドヘルド装置のデータ記憶およびデータ取出しのための方法および装置
EA001598B1 (ru) Переносимая защищенная система осуществления транзакций для программируемых устройств с микропроцессорами
CN112069189A (zh) 多层级映射表格的更新方法、系统、终端设备及存储介质
CN111782474A (zh) 日志处理方法、装置、电子设备和介质
CN108334453B (zh) 一种文件调试方法、装置、终端设备及存储介质
US20180032351A1 (en) Information processing method and storage device
CN114625372A (zh) 组件自动编译方法、装置、计算机设备及存储介质
CN112241141B (zh) Plc控制系统的硬件配置方法、系统、设备及介质
US8413114B1 (en) Method to simplify developing software having localization
US6357002B1 (en) Automated extraction of BIOS identification information for a computer system from any of a plurality of vendors
CN109656881B (zh) 一种基于fat16技术实现文件动态管理的方法和系统
US7543272B1 (en) Method and apparatus for finding terminal classes in a collection of programming language classes

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant