修改ISO镜像文件的方法、装置和设备与流程

文档序号:16535955发布日期:2019-01-08 19:54阅读:873来源:国知局
修改ISO镜像文件的方法、装置和设备与流程

本公开涉及操作系统技术领域,尤其是涉及一种修改iso镜像文件的方法、装置和设备。



背景技术:

当前操作系统提供的安装镜像均为iso(internationalorganizationforstandardization,国际标准化组织)类型的文件,在本文中,iso是国际标准化组织指定的一种镜像文件格式。正常情况下,直接使用iso镜像文件安装操作系统时,需要用户输入一些必需的信息,比如选择语言、时区,选择磁盘,设置用户名、密码等。为了更加便捷地安装操作系统,需要对iso镜像文件进行订制修改,以使其带有自动安装的功能。修改的方法是:在原始iso镜像文件中增加一个自动应答文件,同时在原始iso镜像文件中的bootloader(引导)配置文件里增加对应的参数,以便在安装操作系统时使用该自动应答文件。



技术实现要素:

有鉴于此,本公开的目的在于提供一种修改iso镜像文件的方法、装置和设备,可以提高处理速度,节约存储空间。

为了实现上述目的,本公开采用的技术方案如下:

第一方面,本公开提供了一种修改iso镜像文件的方法,应用于制作iso镜像文件的设备,所述方法包括:

将目标iso镜像文件对应的自动应答文件存储至所述目标iso镜像文件的系统保留区的第一区域;

根据所述自动应答文件的文件名,修改所述目标iso镜像文件的引导配置文件;

将修改后的引导配置文件存储至所述系统保留区的第二区域;

分别根据所述自动应答文件和所述修改后的引导配置文件的文件大小和起始位置,修改对应的文件描述结构中的参数,得到带有自动应答功能的iso镜像文件;其中,所述文件描述结构用于记录文件的大小参数和文件的起始位置参数。

第二方面,本公开提供了一种修改iso镜像文件的装置,应用于制作iso镜像文件的设备,所述装置包括:

第一存储模块,用于将目标iso镜像文件的自动应答文件存储至所述目标iso镜像文件的系统保留区的第一区域;

配置文件修改模块,用于根据所述自动应答文件的文件名,修改所述目标iso镜像文件的引导配置文件;

第二存储模块,用于将修改后的引导配置文件存储至所述系统保留区的第二区域;

参数修改模块,用于分别根据所述自动应答文件和所述修改后的引导配置文件的文件大小和起始位置,修改对应的文件描述结构中的参数,得到带有自动应答功能的iso镜像文件;其中,所述文件描述结构用于记录文件的大小参数和文件的起始位置参数。

第三方面,本公开提供了一种修改iso镜像文件的设备,包括处理器和与所述处理器连接的存储器;所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现第一方面所述的方法。

第四方面,本公开提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现第一方面所述的方法。

上述修改iso镜像文件的方法、装置和设备,只需修改目标iso镜像文件,即可得到带有自动应答功能的iso镜像文件,而无需重新打包制作iso镜像文件,因此可以提高处理速度。同时,与现有技术相比,无需生成临时目录,所以节约了存储空间。

本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。

附图说明

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

图1为本公开实施方式提供的一种修改iso镜像文件的方法的流程图;

图2为本公开实施方式提供的另一种修改iso镜像文件的方法的流程图;

图3为本公开实施方式中使用的一种目标iso镜像文件的结构示意图;

图4为通过本公开实施方式提供的方法修改后的带有自动应答功能的iso镜像文件的结构示意图;

图5为本公开实施方式提供的一种修改iso镜像文件的装置的结构框图;

图6为本公开实施方式提供的另一种修改iso镜像文件的装置的结构框图;

图7为本公开实施方式提供的一种修改iso镜像文件的设备的结构框图。

具体实施方式

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

目前,制作带有自动安装功能的iso镜像文件,一般包括以下步骤:将原始iso文件中的内容提取到一个临时目录;把自动应答文件放入这个临时目录,同时修改该临时目录下的bootloader配置文件;将临时目录下的内容重新打包制作成一个新的iso镜像文件。上述提取并解析iso镜像文件,再重新打包制作iso镜像文件的过程较慢,且临时目录会额外占用空间。基于此,本公开实施方式提供了一种修改iso镜像文件的方法、装置和设备。以下首先对本公开实施方式提供了修改iso镜像文件的方法进行详细介绍。

图1示出了本公开实施方式提供的一种修改iso镜像文件的方法的流程图。该方法应用于制作iso镜像文件的设备,例如计算机或服务器等设备。如图1所示,该方法包括如下步骤:

步骤s102,将目标iso镜像文件对应的自动应答文件存储至目标iso镜像文件的系统保留区的第一区域。

其中,第一区域可以是随机选择或用户指定的用于存储自动应答文件的区域。第一区域的大小可以根据自动应答文件的大小而定。目标iso镜像文件为不具备自动安装功能的iso镜像文件。例如,目标iso镜像文件可以是iso9660的格式(如linux系统、vmware系统、xen系统等的安装文件)。iso9660是由国际标准化组织制定的通用光盘文件系统。

将目标iso镜像文件修改为带有自动安装功能的iso镜像文件,需要在目标iso镜像文件中增加一个配置文件,称为自动应答文件。自动应答文件是预先设定好的,也可以从现有的自动应答文件中选择。不同的操作系统对应的自动应答文件的格式也不相同,因此要选择与目标iso镜像文件对应的自动应答文件存储至目标iso镜像文件的系统保留区的第一区域。iso镜像文件的系统保留区一般位于iso镜像文件的开头部分。

步骤s104,根据自动应答文件的文件名,修改目标iso镜像文件的引导配置文件。

引导配置文件也称为bootloader配置文件,为安装操作系统时的引导文件。在目标iso镜像文件的系统保留区添加自动应答文件之后,修改目标iso镜像文件的bootloader配置文件,包括在bootloader配置文件中增加自动应答文件对应的参数,参数中包括自动应答文件的文件名。对于不同的操作系统,自动应答文件的格式不一样,在bootloader配置文件中增加的参数也有所不同。例如,对于linux系统,在bootloader配置文件中增加的参数可以是:ks=/isolinux/splash.png。其中,splash.png为自动应答文件的文件名。

步骤s106,将修改后的引导配置文件存储至系统保留区的第二区域。

由于在目标iso镜像文件中直接覆盖bootloader配置文件是困难的,因此可以将修改后的bootloader配置文件存储至系统保留区中的第二区域。其中,第二区域与第一区域是不重叠的两个区域。第二区域的大小根据bootloader配置文件的大小而定。

步骤s108,分别根据自动应答文件和修改后的引导配置文件的文件大小和起始位置,修改对应的文件描述结构中的参数,以使iso镜像文件具有自动应答功能;其中,该文件描述结构用于记录文件的大小参数和文件的起始位置参数。

上述文件描述结构也表示为directoryrecord结构,是文件的目录记录,其中的参数包括文件名、文件大小和起始位置等。系统在解析iso镜像文件时,将根据文件对应的directoryrecord结构确定该文件的起始位置,去该起始位置对应的存储空间读取文件的具体数据。

可以根据自动应答文件的文件大小和起始位置,修改自动应答文件的directoryrecord结构中的大小参数和起始位置参数;根据修改后的bootloader配置文件的文件大小和起始位置,修改bootloader配置文件的directoryrecord结构中的大小参数和起始位置参数。

上述修改iso镜像文件的方法,只需修改目标iso镜像文件,即可得到带有自动应答功能的iso镜像文件,而无需重新打包制作iso镜像文件,因此可以提高处理速度。同时,与现有技术相比,无需生成临时目录,所以节约了存储空间。

以下通过修改iso9660格式的iso镜像文件为例,进一步说明本公开实施方式提供的修改iso镜像文件的方法。如图2所示,该方法包括如下步骤:

步骤s202,解析目标iso镜像文件。

在iso9660格式的iso镜像文件中,一般最开始的32kb字节的内容是系统保留区。大部分iso镜像文件的系统保留区中的内容都是0。一小部分iso镜像文件的系统保留区中会记录一些信息,如isohybrid功能信息等。这些信息一般记录在最开始的一部分区域(小于10kb),系统保留区的剩余部分的内容都是0。

解析目标iso镜像文件,可以得到目标iso镜像文件的结构。图3示出了解析得到的一个目标iso镜像文件的结构示意图。如图3所示,该目标iso镜像文件的系统保留区(32kb)中的内容都是0,不存在被占用区域。目标iso镜像文件中的bootloader配置文件包括isolinux.cfg文件和grub.cfg文件,两个文件分别在不同模式下使用。其中,在legacybios模式下使用isolinux.cfg文件,在uefi模式下使用grub.cfg文件。图3中的splash.png文件是目标iso镜像文件中的一个非功能性的临时文件。目标iso镜像文件中的非功能性的临时文件还包括releasenotes、版权说明文件、iso描述文件、背景图片文件等。在目标iso镜像文件中,文件的directoryrecord结构和该文件的具体数据可以不保存在一起,directoryrecord结构中指明了对应的文件的文件大小和起始位置。

步骤s204,判断目标iso镜像文件的系统保留区是否有被占用区域;如果是,执行步骤s208,如果否,执行步骤s206。

为了避免在保存自动应答文件时,将系统保留区已存在的信息覆盖或存储空间发生冲突,可以从解析后的目标iso镜像文件中,判断其系统保留区是否有被占用区域。如果系统保留区内存在非0信息,说明系统保留区内存在被占用区域,如果系统保留区内不存在非0信息,说明系统保留区内不存在被占用区域。

步骤s206,从系统保留区选择第一区域和第二区域。

步骤s208,从被占用区域之外的系统保留区选择第一区域和第二区域。

如果目标iso镜像文件的系统保留区中不存在被占用区域,则可以从整个系统保留区选择第一区域和第二区域。如果目标iso镜像文件的系统保留区中存在被占用区域,则可以从被占用区域之外的系统保留区选择第一区域和第二区域。

其中,第一区域用于存储自动应答文件,第一区域的大小为第一指定值,第一指定值大于或等于自动应答文件的大小。第二区域用于存储bootloader配置文件,第二区域的大小为第二指定值。如果bootloader配置文件包括isolinux.cfg文件和grub.cfg文件,则第二区域可以包括用于存储bootloader配置文件中的isolinux.cfg文件的第一子区域和grub.cfg文件的第二子区域。第二指定值的大小大于或等于isolinux.cfg文件和grub.cfg文件的大小之和。

选择第一区域和第二区域的顺序不限定,可以先选择第一区域再选择第二区域,也可以先选择第二区域再选择第一区域,还可以同时选择第一区域和第二区域。

例如,如果目标iso镜像文件的系统保留区的最前面的10kb存在非0信息,可以使用系统保留区的后22kb的存储空间来保存修改之后的isolinux.cfg文件、grub.cfg文件和自动应答文件,其中isolinux.cfg文件、grub.cfg文件各占2kb,自动应答文件占18kb。在自动安装的情况下,isolinux.cfg文件和grub.cfg文件都比较简单,每个文件只需要几行代码即可,2kb的存储空间可以保证足够存放上述文件。一个自动应答文件一般包括100行左右的代码,18kb的存储空间可以保证足够存放自动应答文件。

步骤s210,将目标iso镜像文件对应的自动应答文件存储至目标iso镜像文件的系统保留区的第一区域。

步骤s212,根据自动应答文件的文件名,修改目标iso镜像文件的引导配置文件。

在iso9660格式的iso镜像文件中,directoryrecord结构相互之间有类似于文件树一样的组织关系,在一个iso镜像文件中修改一个现有的directoryrecord结构是简单的,而新增加一个directoryrecord结构是困难的。对于目标iso镜像文件,自动应答文件是新增文件,所以需要新增一个directoryrecord结构。而新增一个directoryrecord结构是非常困难的,因此可以使用目标iso镜像文件中的一个现有的directoryrecord结构作为自动应答文件的directoryrecord结构。

考虑到目标iso镜像文件中包含非功能性的临时文件,在安装操作系统的过程中不会使用这些临时文件,改变这些文件的directoryrecord结构不会影响操作系统的安装。因此,可以指定一个临时文件的directoryrecord结构作为自动应答文件的directoryrecord结构,将该指定临时文件的文件名作为自动应答文件的文件名。在目标iso镜像文件的bootloader配置文件中增加文件名对应的访问参数。例如,可以选择一背景图片文件作为指定临时文件。将指定临时文件的文件名splash.png作为自动应答文件的文件名。在isolinux.cfg文件和grub.cfg文件中增加参数ks=/isolinux/splash.png。

步骤s214,将修改后的引导配置文件存储至系统保留区的第二区域。

步骤s216,分别根据自动应答文件和修改后的引导配置文件的文件大小和起始位置,修改对应的directoryrecord结构中的参数,以使iso镜像文件具有自动应答功能。

根据自动应答文件的文件大小和起始位置,修改上述指定临时文件的directoryrecord结构中的大小参数和起始位置参数。修改后,安装操作系统时,该directoryrecord结构将引导至自动应答文件,从而完成系统的自动安装。

根据修改后的isolinux.cfg文件的文件大小和起始位置,修改isolinux.cfg文件的directoryrecord结构中的大小参数和起始位置参数。

根据修改后的grub.cfg文件的文件大小和起始位置,修改grub.cfg文件的directoryrecord结构中的大小参数和起始位置参数。

图4示出了一个修改后的iso镜像文件的结构示意图,如图4所示,自动应答文件存储于系统保留区中的第一区域,其起始位置为0x3200,大小为10kb。自动应答文件使用指定临时文件splash.png的文件名,自动应答文件的directoryrecord结构为原临时文件splash.png的directoryrecord结构,其中的大小参数已修改为10240,起始位置参数已修改为0x3200。修改后的isolinux.cfg文件的起始位置为0x2800,大小为1kb。修改后的grub.cfg文件的起始位置为0x3000,大小为1kb。原isolinux.cfg文件、原grub.cfg文件和原splash.png依然保留在原来位置。

上述修改iso镜像文件的方法,只需修改目标iso镜像文件,即可得到带有自动应答功能的iso镜像文件,而无需重新打包制作iso镜像文件,因此可以提高处理速度。例如,当前各操作系统的iso镜像文件都接近4gb大小,有的甚至接近8gb大小,在这种情况下,如果按照现有的方法制作带有自动应答功能的iso镜像文件,在普通配置的pc机上需要将近10分钟的时间。通过本公开实施例提供的修改iso镜像文件的方法,生成带有自动应答功能的iso镜像文件,可以在几秒钟之内完成。

同时,与现有技术相比,本公开实施例提供的修改iso镜像文件的方法,无需生成临时目录,所以节约了存储空间。并且,修改后的iso镜像文件保留了原有的bootloader配置文件(即isolinux.cfg文件和grub.cfg文件),如果不需要自动安装功能时,还可以将iso镜像文件恢复如初。

需要说明的是,上述各方法实施方式均采用递进的方式描述,每个实施方式重点说明的都是与其他实施方式的不同之处,各个实施方式之间相同相似的部分互相参见即可。

对应于上述方法实施方式,参见图5所示的一种修改iso镜像文件的装置,该装置应用于制作iso镜像文件的设备,包括:

第一存储模块51,用于将目标iso镜像文件的自动应答文件存储至所述目标iso镜像文件的系统保留区的第一区域;

配置文件修改模块52,用于根据所述自动应答文件的文件名,修改所述目标iso镜像文件的引导配置文件;

第二存储模块53,用于将修改后的引导配置文件存储至所述系统保留区的第二区域;

参数修改模块54,用于分别根据所述自动应答文件和所述修改后的引导配置文件的文件大小和起始位置,修改对应的文件描述结构中的参数,以使iso镜像文件具有自动应答功能;其中,所述文件描述结构用于记录文件的大小参数和文件的起始位置参数。

其中,配置文件修改模块52还可以用于:将所述目标iso镜像文件中的指定临时文件的文件名作为所述自动应答文件的文件名;在所述目标iso镜像文件的引导配置文件中增加所述文件名对应的访问参数。

参数修改模块54还可以用于:根据所述自动应答文件的文件大小和起始位置,修改所述指定临时文件的文件描述(directoryrecord)结构中的大小参数和起始位置参数;根据修改后的引导配置文件的文件大小和起始位置,修改所述引导配置文件的directoryrecord结构中的大小参数和起始位置参数。

在一可选的实施例中,如图6所示,上述装置还包括文件解析模块61,文件解析模块61与第一存储模块51连接。文件解析模块61用于:解析目标iso镜像文件的系统保留区是否有被占用区域(例如非0信息);如果有,从所述被占用区域之外的系统保留区选择所述第一区域和所述第二区域。

上述修改iso镜像文件的装置,只需修改目标iso镜像文件,即可得到带有自动应答功能的iso镜像文件,而无需重新打包制作iso镜像文件,因此可以提高处理速度。同时,与现有技术相比,无需生成临时目录,所以节约了存储空间。

本实施方式提供了一种与上述方法实施方式相对应的修改iso镜像文件的设备。图7为该设备的结构示意图,如图7所示,该设备包括处理器701和存储器702;其中,存储器702用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述修改iso镜像文件的方法。

图7所示的设备还包括总线703,处理器701和存储器702通过总线703连接。该修改iso镜像文件的设备可以是计算机等。

其中,存储器702可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。总线703可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成前述实施方式的方法的步骤。

本公开实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述修改iso镜像文件的方法,具体实现可参见方法实施方式,在此不再赘述。

在本申请所提供的几个实施方式中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

最后应说明的是:以上所述实施方式,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施方式对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施方式技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

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