一种虚拟动态分区镜像文件生成方法及系统与流程

文档序号:11828663阅读:450来源:国知局

本发明涉及计算机应用领域,具体涉及一种虚拟动态分区镜像文件生成方法及系统。



背景技术:

在计算机领域,独立的系统镜像是十分必要的,日常生活中,大家一般会接触的系统装机,一般属于发行版,需用人手动去分区去进行相关的设置,适用于个人,然而当企业需要为上千台设备甚至于上万台设备装系统时,是不会采取此类办法的,此类方法相当耗费人力和时间,所以企业必须使用单独完整的磁盘镜像文件直接烧写存储介质,从而提高效率和简便性。然而在制作操作系统磁盘镜像时,必须对将来需要存放的存储介质进行分区和分区大小的设定,当系统开发或者制作过程,可能需要经常改变分区个数与大小,甚至分区类型,为了能模拟将来要烧写的存储介质,需要在制作过程中提供真实的存储介质,某些时候可以通过使用单个文件来模拟设备,由于通过文件模拟真实的存储介质,所以当系统需要多个分区时,在对分区进行偏移挂载时会将后面的分区误认为一个分区导致整个分区错误。



技术实现要素:

本发明提供了一种虚拟动态分区镜像文件生成方法及系统,以简化操作系统磁盘镜像的制作,降低开发成本与错误率。

为解决上述技术问题,本发明的虚拟动态分区镜像文件生成方法包括:

1)设置分区个数,并为每个分区配置分区信息,所述分区信息包括分区大小、分区类型和分区状态;

2)根据各个分区的分区配置信息,生成分区表;所述分区表包括分区个数、各个分区的引导标识、起始磁头号、起始扇区号、起始柱面号、分区类型、结束磁头号、结束扇区号、结束柱面号,各分区之前已用的扇区号及各个分区的总扇区数;

3)根据步骤2)中的分区表,模拟出大小与各个分区大小相同的虚拟分区,并格式化此虚拟分区,然后在各个虚拟分区上设置表明分区作用的标签及用于标示唯一性的标识;

4)将虚拟分区进行挂载,并根据虚拟分区的标签及标识,将烧制系统所需文件放入对应的虚拟分区中;

5)将步骤2)中生成的分区表、步骤4)中已放入烧制系统所需文件的虚拟分区及系统引导程序进行合并,压缩后生成虚拟动态分区镜像文件。

步骤2)中分区表的起始磁头号、起始扇区号和起始柱面号根据所用的系统引导程序来确定。

步骤2)中分区表的结束磁头号、结束扇区号和结束柱面号根据起始磁头号、起始扇区号、起始柱面号及分区大小确定。

所述的分区个数为4个。

所述标识为一串16进制数。

所述烧制系统所需文件包括内核文件、根文件系统中所需库文件和可执行程序及配置文件。

本发明的虚拟动态分区镜像文件生成系统包括分区信息配置模块、分区表生成模块、虚拟分区生成模块及磁盘镜像生成模块,分区信息配置模块用于设置分区个数,并为每个分区配置分区信息;分区表生成模块用于根据各个分区的分区配置信息,生成分区表;虚拟分区生成模块用于根据各个分区的总扇区数,模拟出大小与各个分区大小相同的虚拟分区,并在各个虚拟分区上设置表明分区作用的标签及用于标示唯一性的标识;磁盘镜像生成模块用于将虚拟分区进行挂载,并根据虚拟分区的标签及标识,将烧制系统所需文件放入对应的虚拟分区中,并将步骤2)中生成的分区表、步骤4)中已放入烧制系统所需文件的虚拟分区及系统引导程序进行合并,压缩后生成虚拟动态分区镜像文件。

步骤2)中分区表的起始磁头号、起始扇区号和起始柱面号根据所用的系统引导程序来确定。

步骤2)中分区表的结束磁头号、结束扇区号和结束柱面号根据起始磁头号、起始扇区号、起始柱面号及分区大小确定。

所述烧制系统所需文件包括内核文件、根文件系统中所需库文件、可执行程序及配置文件。

本发明的有益效果是:本发明通过分区配置信息自动生成分区表,然后根据分区表模拟虚拟分区,在虚拟分区中放入系统配置文件,然后将虚拟分区、系统引导程序及分区表进行合并压缩处理最终生成磁盘镜像文件,利用该磁盘镜像文件可以直接烧写存储介质,实现系统装机时的分区设置,该方法提高了系统装机过程中分区的高效性和简便性。

附图说明

图1为磁盘镜像示意图。

具体实施方式

下面结合附图,对本发明的技术方案作进一步详细说明。

本发明的虚拟动态分区镜像文件生成方法实施例

本实施例的方法包括如下步骤:

1)设置分区个数,并为每个分区配置分区信息,所述分区信息包括分区大小、分区类型、分区磁头、分区柱面、分区扇区和分区逻辑区块地址;

2)根据各个分区的分区配置信息,生成分区表;所述分区表包括分区个数、各个分区的引导标识、起始磁头号、起始扇区号、起始柱面号、分区类型、结束磁头号、结束扇区号、结束柱面号,各分区之前已用的扇区号及各个分区的总扇区数;

3)根据步骤2)中的分区表,模拟出大小与各个分区大小相同的虚拟分区,并在各个虚拟分区上设置表明分区作用的标签及用于标示唯一性的标识;

4)将虚拟分区进行挂载,并根据虚拟分区的标签及标识,将烧制系统所需文件放入对应的虚拟分区中;

5)将步骤2)中生成的分区表、步骤4)中已放入烧制系统所需文件的虚拟分区及系统引导程序进行合并,压缩后生成虚拟动态分区镜像文件。

下面对上述步骤进行详细阐述:

首先详细介绍分区表的结构。为简化说明,实施例的存储介质选取为硬盘,表1给出了硬盘的标准主引导记录(Master Boot Record,一般简称为MBR)。硬盘中的分区表位于第一扇区(512字节)偏移446字节处,大小为64字节,这64字节由4个分区组成,每个分区16字节,本实施例将4个分区统一处理成主分区,每个分区的16字节由以下几个部分组成,即分区状态、分区启示磁头号、分区起始扇区号、起始磁柱号、文件系统标志位、分区结束磁头号、分区结束扇区号、结束磁柱号、分区起始相对扇区号、分区总得扇区数,具体内容如表2所示。

表1标准MBR结构

表2硬盘分区结构信息

对于上述步骤1),我们需要根据上述分区表的结构来配置各个分区信息,各个分区的信息包括分区大小、分区类型、分区CHS(CHS表示磁头Heads、柱面Cylinder、扇区Sector)、分区LBA(LBA,Logical Block Address,中文名称:逻辑区块地址。主要用来当存储介质超过8G时,来描述逻辑地址),一般情况下,分区磁头、分区柱面、分区扇区和分区逻辑区块地址是可选信息,系统会根据分区大小自动生成,基本只需要配置分区的大小和分区类型即可。以下是某个配置文件的示例:

对于上述步骤2),根据上述的配置文件,来生成总共64字节的分区表,具体的生成过程如下:

a.根据PartitionStatus可以计算出对应的分区活动状态,并生成对应的二进制,如上述分区1的PartitionStatus为80H,那么分区1为活动分区,而分区3的PartitionStatus为00H,那么分区3为非活动分区。

b.根据PartitionType可以计算出对应的分区类型,并生成对应的比特位

c.根据PartitionSize,可以计算出对应的CHS,CHS的起始位置根据所用的系统引导程序(如GRUB,LILO)来确定,CHS的结束位置根据CHS的起始位置及分区大小来确定,即CHS的起始位置加上分区的大小所得到的位置就是CHS的结束位置。

假如超过CHS所能描述的大小(通常情况下中的柱面位置最大值C_MAX=1023,磁头位置最大值H_MAX=255,扇区位置最大值S_MAX=512,所以最大一般是8G,当然也有特殊的,比如S_MAX=4K的),那么CHS用0来代替。并根据上述的比特位关系,在对应的位置生成对应的比特位。

另外,本实施例还需要使用PartitionSize来生成对应的LBA地址,LBA的起始地址与CHS起始地址类似,需要根据实际使用的系统引导程序来计算,从而来生成对应的比特位。

d.将上述生成的对应的比特位组装成一个16字节的分区比特位,如表1所示。

e.按照上述步骤依次类推生成4个16字节的分区比特位。

f.将4个16字节的分区比特位,依次组合成一个64字节的分区比特位,也就是上述中的分区表。

保留每个分区所占用的扇区数,以备它用。

上述配置文件中配置了四个分区的配置信息,而根据实际需要,可以根据上述配置方法配置5个、6个分区等等。

对于上述步骤3),根据步骤2)最后生成的每个分区所占用的扇区数,分别模拟一个同样大小的分区,所谓的模拟,也就是生成一个对应大小的文件,然后格式化对应的文件,格式化所使用的文件系统根据自身的实际情况来决定,这个没有规定一定要使用何种文件系统,格式化完成以后打上对应的LABLE,也就是标签,表明此分区留作何用,类似注释,同时打上UUID,UUID是具备唯一性的一串16进制数,主要是用来标示唯一性,这样在系统挂载分区时才能识别需要加载哪个分区。假设按照步骤1)所展示的配置文件,那么将会有4个模拟的分区。

对于步骤4),根据步骤3)生成的几个模拟分区,对此模拟分区进行挂载,所谓的挂载,类似U盘插到windows上,然后会出现一个对应的盘,这样可以往这个盘符中存放东西,挂载的作用类似。模拟分区挂载后,将对应的文件内容拷贝到各个模拟分区中,此处的文件内容为最终烧制的系统所应具备的文件,比如内核文件、根文件系统中所需要库文件、可执行程序、配置文件等等。根据模拟分区的类型,对应放入即可。放入以后卸载即可,类似于拔出U盘。

对于步骤5),将步骤4)中的模拟分区、步骤2)中生成的分区表、预备好的系统引导程序按照对应的方式进行合并。合并后的文件是一个完整的磁盘映像,本发明会对磁盘映像进行压缩,然后制作成iso映像文件,以供镜像直接烧写和cd/dvd安装。

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