系统升级方法、装置、电子设备及存储介质制造方法及图纸

技术编号:33340308 阅读:9 留言:0更新日期:2022-05-08 09:25
本申请提供一种系统升级方法、装置、电子设备及存储介质,涉及升级技术领域,具体方案包括:获取待升级系统的第i个升级包,从处于挂载状态的临时文件中获取第一差异数据以及从用户只读空间中获取源版本的原始数据;根据所有第一差异数据、源版本的原始数据和第i个升级包,得到第二差异数据,存储第二差异数据至临时文件中;响应重启指令,根据临时文件中的所有差异数据和源版本的原始数据,启动待升级系统;响应待升级系统成功启动,将临时文件中的所有差异数据写入到用户只读空间中,所有差异数据和源版本的原始数据合并为待升级系统的目标数据,目标数据指向待升级系统的目标版本,实现一次重启升级多个升级包,降低耗时,从而提高升级效率。而提高升级效率。而提高升级效率。

【技术实现步骤摘要】
系统升级方法、装置、电子设备及存储介质


[0001]本申请涉及升级
,尤其涉及系统升级方法、装置、电子设备及存储介质。

技术介绍

[0002]电子设备的存储空间包括用户只读空间和用户空间,用户空间可以采用单分区,用户只读空间中的部分空间可以采用单分区或双分区,在电子设备运行时用户只读空间采用单分区,对于这种结构的电子设备,其系统升级方法可以根据snapshot(快照)机制对待升级系统进行升级,一个升级包对应一个临时文件,在临时文件中写入升级包对应的差异数据后对电子设备进行重启。电子设备如果对多个升级包进行升级处理需执行多次重启,使得待升级系统的升级会因为多次重启而增加耗时,从而降低升级效率。

技术实现思路

[0003]本申请提供的系统升级方法、装置、电子设备及存储介质,解决了多次重启升级多个升级包导致的升级效率低的问题。
[0004]为达到上述目的,本申请采用如下技术方案:
[0005]第一方面,本申请提供了一种系统升级方法,所述方法包括:获取待升级系统的第i个升级包,从处于挂载状态的临时文件中获取第一差异数据以及从用户只读空间中获取源版本的原始数据,每条所述第一差异数据用于指示所有版本中相邻两个版本之间存在差异的数据,所有版本是在第i个升级包对应版本之前出现的版本,i为大于或等于2的自然数;根据所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包,得到第二差异数据,存储所述第二差异数据至临时文件中,所述第二差异数据用于指示所述第i个升级包与第i

1个升级包之间的差异;响应重启指令,根据临时文件中的所有差异数据和所述源版本的原始数据,启动所述待升级系统;响应所述待升级系统成功启动,将临时文件中的所有差异数据写入到所述用户只读空间中,所述所有差异数据和所述源版本的原始数据合并为待升级系统的目标数据,所述目标数据指向所述待升级系统的目标版本。
[0006]本申请所提供的系统升级方法,电子设备响应重启指令之前,临时文件中存储有多个升级包对应的差异数据,如第1个升级包的差异数据至第i个升级包的差异数据。电子设备在响应重启指令且验证待升级系统成功启动时,电子设备可将临时文件中的所有差异数据写入到用户只读空间中,写入到用户只读空间中的所有差异数据与用户只读空间中的源版本的原始数据可以合并为待升级系统的目标数据,目标数据指向待升级系统的目标版本,使得用户只读空间中存储有待升级系统的目标版本,从而实现一次重启升级多个升级包,降低耗时,从而提高升级效率。并且第i个升级包的差异数据可以根据其之前版本对应的数据得到,第i个升级包是在之前版本基础上得到,以之前版本对应的数据为基准得到第i个升级包的第二差异数据可以保证差异数据的准确度,电子设备以之前版本对应的数据为基准时升级包的处理不会因用户只读空间中没有写入差异数据而中断升级包的处理,从而可以降低耗时,提高升级效率。
[0007]在第一种可能的实现方式中,所述根据所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包,得到第二差异数据,存储所述第二差异数据至临时文件中,包括:根据所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包中的每条升级数据,对每条升级数据进行差分还原处理,以得到每条升级数据对应的第二差异数据;将所述每条升级数据对应的第二差异数据暂存至用户空间中;响应还原处理完成指令,将所述用户空间中的第二差异数据存储至所述临时文件中。
[0008]在本实施例中,在存储差异数据至临时文件之前,电子设备将差异数据暂存在用户空间中,避免临时文件中的数据被替换,以保证对升级数据差分还原处理时读取到的数据是正确的,提高还原准确度。多个升级包的差异数据可共用一个临时文件,降低电子设备中临时文件的数量,且向临时文件存储任一升级包的差异数据时,可将存在区别的差异数据写入到临时文件中,减少临时文件中写入的数据量。当电子设备完成对多个升级包的差分还原处理后,执行一次重启操作即完成待升级系统的升级,且多个升级包的差分还原处理不会因用户只读空间中没有写入差异数据而中断升级包的处理,从而可以降低耗时,提高升级效率。
[0009]在第二种可能的实现方式中,所述根据所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包,得到第二差异数据,存储所述第二差异数据至临时文件中,包括:根据所述第i个升级包中每条升级数据的地址,确定所述第i个升级包的特定地址集合,所述特定地址集合中的每个地址是任意两条升级数据中一条升级数据中的源地址与另一条升级数据的目标地址重合的地址;从所述所有第一差异数据和所述原始数据中获取所述特定地址集合中每个地址对应的数据,将所述每个地址和每个地址对应的数据暂存至用户空间中;根据所述所有第一差异数据、所述用户空间中的数据、所述源版本的原始数据和所述第i个升级包中的每条升级数据,对每条升级数据进行差分还原处理,以得到每条升级数据对应的第二差异数据;存储所述第二差异数据至所述临时文件中。
[0010]在本实施例中,电子设备预先将特定地址集合中每个地址和每个地址对应的数据暂存至用户空间中,在对升级包进行差分还原处理时如果需要使用这些地址中的数据,可以从用户空间中读取,即便在这些地址中写入数据仍能够从用户空间中读取到正确的数据,提高还原准确度,且相对于暂存差异数据来说,用户空间中暂存的数据量被降低。并且电子设备得到第二差异数据后可直接写入到临时文件中,省去从用户空间向临时文件搬移的过程,提高处理效率。
[0011]例如升级数据有:源地址是1至5和目标地址是1至8的数据A,源地址是6至12和目标地址是50至70的数据B,数据A的目标地址与数据B的源地址重合,则可以将地址6至8对应的数据暂存至用户空间中。在对数据A进行差分还原处理后,地址6至8中的数据被修改,但是电子设备可以从用户空间中读取地址6至8没有修改前的数据(即前一个版本中写入的数据),然后利用没有修改前的数据对数据B进行差分还原处理。
[0012]结合第二种可能的实现方式,在一种可能实现方式中,所述方法还包括:根据第一排序条件和第二排序条件,对所述第i个升级包中的每条升级数据进行排序,得到所述第i个升级包的排序结果,所述第一排序条件指示所述特定地址集合对应的升级数据的排序在其他升级数据之前,所述第二排序条件指示特定地址集合中地址作为目标地址的写入操作晚于其作为源地址的读取操作;所述根据所述所有第一差异数据、所述用户空间中的数据、
所述源版本的原始数据和所述第i个升级包中的每条升级数据,对每条升级数据进行差分还原处理,以得到每条升级数据对应的第二差异数据,包括:按照所述第i个升级包的排序结果,根据所述所有第一差异数据、所述用户空间中的数据、所述源版本的原始数据和所述第i个升级包中的每条升级数据,对每条升级数据进行差分还原处理,以得到每条升级数据对应的第二差异数据。
[0013]在本实施例中,电子设备按照第i个升级包的排序结果,对第i个升级包的每条升级数据进行差分还原处理,使第i个升级包的差分还原处理是一个有序处理过程。
...

【技术保护点】

【技术特征摘要】
1.一种系统升级方法,其特征在于,所述方法包括:获取待升级系统的第i个升级包,从处于挂载状态的临时文件中获取第一差异数据以及从用户只读空间中获取源版本的原始数据,每条所述第一差异数据用于指示所有版本中相邻两个版本之间存在差异的数据,所有版本是在第i个升级包对应版本之前出现的版本,i为大于或等于2的自然数;根据所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包,得到第二差异数据,存储所述第二差异数据至临时文件中,所述第二差异数据用于指示所述第i个升级包与第i

1个升级包之间的差异;响应重启指令,根据临时文件中的所有差异数据和所述源版本的原始数据,启动所述待升级系统;响应所述待升级系统成功启动,将临时文件中的所有差异数据写入到所述用户只读空间中,所述所有差异数据和所述源版本的原始数据合并为待升级系统的目标数据,所述目标数据指向所述待升级系统的目标版本。2.根据权利要求1所述的方法,其特征在于,所述根据所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包,得到第二差异数据,存储所述第二差异数据至临时文件中,包括:根据所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包中的每条升级数据,对每条升级数据进行差分还原处理,以得到每条升级数据对应的第二差异数据;将所述每条升级数据对应的第二差异数据暂存至用户空间中;响应还原处理完成指令,将所述用户空间中的第二差异数据存储至所述临时文件中。3.根据权利要求1所述的方法,其特征在于,所述根据所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包,得到第二差异数据,存储所述第二差异数据至临时文件中,包括:根据所述第i个升级包中每条升级数据的地址,确定所述第i个升级包的特定地址集合,所述特定地址集合中的每个地址是任意两条升级数据中一条升级数据中的源地址与另一条升级数据的目标地址重合的地址;从所述所有第一差异数据和所述原始数据中获取所述特定地址集合中每个地址对应的数据,将所述每个地址和每个地址对应的数据暂存至用户空间中;根据所述所有第一差异数据、所述用户空间中的数据、所述源版本的原始数据和所述第i个升级包中的每条升级数据,对每条升级数据进行差分还原处理,以得到每条升级数据对应的第二差异数据;存储所述第二差异数据至所述临时文件中。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:根据第一排序条件和第二排序条件,对所述第i个升级包中的每条升级数据进行排序,得到所述第i个升级包的排序结果,所述第一排序条件指示所述特定地址集合对应的升级数据的排序在其他升级数据之前,所述第二排序条件指示特定地址集合中地址作为目标地址的写入操作晚于其作为源地址的读取操作;所述根据所述所有第一差异数据、所述用户空间中的数据、所述源版本的原始数据和所述第i个升级包中的每条升级数据,对每条升级数据进行差分还原处理,以得到每条升级
数据对应的第二差异数据,包括:按照所述第i个升级包的排序结果,根据所述所有第一差异数据、所述用户空间中的数据、所述源版本的原始数据和所述第i个升级包中的每条升级数据,对每条升级数据进行差分还原处理,以得到每条升级数据对应的第二差异数据。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:根据排序结果,从暂存至用户空间中的数据中确定第一类型数据和第二类型数据,将所述第一类型数据保留在所述用户空间中,将所述第二类型数据从所述用户空间中删除;所述第一类型数据表示在第一类型数据的地址中写入数据影响其他数据从第一类型数据的地址中读取数据,所述第二类型数据表示在第二类型数据对应的地址中写入数据不影响其他数据从第二类型数据的地址中读取的数据。6.根据权利要求1所述的方法,其特征在于,所述根据所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包,得到第二差异数据,存储所述第二差异数据至临时文件中包括:根据所述第i个升级包中每条升级数据的地址,对每条升级数据进行排序,得到排序结果,所述排序结果使存在相同地址的升级数据排序在没有相同地址的升级数据之前,所述存在相同地址的升级数据是源地址和目标地址存在重合的地址所属升级数据,所述源地址和所述目标地址位于不同的升级数据中,存在相同地址的不同升级数据的排序是所述地址作为目标地址的写入操作晚于其作为源地址的读取操作;根据所述排序结果、所述所有第一差异数据、所述源版本的原始数据和所述第i个升级包中的每条升级数据,对每条升级数据进行差分还原处理,以得到每条升级数据对应的...

【专利技术属性】
技术研发人员:李树彬王艳召
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1