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

技术编号:39042931 阅读:7 留言:0更新日期:2023-10-10 11:55
本申请的实施方式提供了一种终端设备的系统升级方法、装置、电子设备及存储介质。该方法包括:在内存中构建根文件系统,并基于根文件系统和物理系统分区构建系统虚拟分区,使得在系统虚拟分区之内能够运行根文件系统;响应于系统升级指令接收服务器发送的系统升级包,并基于系统升级包和物理系统分区创建运行虚拟分区和升级虚拟分区;将根文件系统由系统虚拟分区切换至运行虚拟分区;分别将系统升级包写入运行虚拟分区和升级虚拟分区,以完成系统升级并得到原始数据备份文件。本申请技术方案能够实现终端设备的无感知升级,避免了挤占用户的可用存储空间的问题,同时具有升级失败恢复的能力,提升用户的使用体验感。提升用户的使用体验感。提升用户的使用体验感。

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


[0001]本申请的实施方式一般地涉及计算机领域,更具体地,本申请的实施方式涉及终端设备的系统升级方法、装置、电子设备及存储介质。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
[0003]在终端设备的传统系统升级过程中,通常是系统自动检测更新并下载升级包,然后通知用户进行更新安装,接着用户等待更新安装结束后即可开始使用新版本系统。但传统系统升级过程中用户必须停止使用终端设备。
[0004]无感知升级是指在用户使用过程中进行终端设备的系统升级,期间用户可以正常使用终端设备的升级方式。在终端设备进行重启之后,用户即可使用新版本系统,升级过程不会对用户的使用造成干扰。现有的无感知升级方案通常采用双分区升级方案,具体来说该方案是在终端设备上设置两个存储区域,这两个存储区域存储着同样的系统数据,当系统运行在一个存储区域时,另一个存储区域则作为备份。双分区升级方案的升级过程为:首先系统自动检测更新并下载升级包,然后对作为备份的存储区域中的系统数据进行升级,接着在终端设备重启后以经过系统数据升级的存储区域作为系统运行的存储区域,而另一存储区域则变更为备份,从而完成系统升级。但是采用双分区升级方案会占用终端设备的双倍系统存储空间,挤占用户的可用存储空间,降低用户的使用体验感。
[0005]有鉴于此,亟需提出一种在只有一个系统存储区域的情况下实现无感知升级的终端设备的系统升级方法,以避免挤占用户的可用存储空间的问题,同时具有升级失败恢复的能力,提升用户的使用体验感。

技术实现思路

[0006]为克服相关技术中存在的问题,本申请的实施方式期望提供一种终端设备的系统升级方法、装置、电子设备及存储介质。该终端设备的系统升级方法能够实现终端设备的无感知升级,避免了挤占用户的可用存储空间的问题,同时具有升级失败恢复的能力,提升用户的使用体验感。
[0007]在本申请实施方式的第一方面中,提供了一种终端设备的系统升级方法,包括:在内存中构建根文件系统,并基于根文件系统和物理系统分区构建系统虚拟分区,使得在系统虚拟分区之内能够运行根文件系统;响应于系统升级指令接收服务器发送的系统升级包,并基于系统升级包和物理系统分区创建运行虚拟分区和升级虚拟分区;将根文件系统由系统虚拟分区切换至运行虚拟分区;分别将系统升级包写入运行虚拟分区和升级虚拟分区,以完成系统升级并得到原始数据备份文件。
[0008]在本申请的一个实施例中,在内存中构建根文件系统,并基于根文件系统和物理系统分区构建系统虚拟分区包括:基于initramfs将系统描述文件释放到内存中形成根文件系统;系统描述文件包含根文件系统的系统文件和系统目录;在根文件系统中将物理系统分区挂载为snapshot

origin类型,形成初始虚拟分区;通过switch

root指令将根文件系统由内存切换至初始虚拟分区中,得到系统虚拟分区。
[0009]在本申请的一个实施例中,运行虚拟分区和升级虚拟分区均为snapshot虚拟设备;基于系统升级包和物理系统分区创建运行虚拟分区和升级虚拟分区包括:根据系统升级包的数据量创建备份cow文件;基于备份cow文件和物理系统分区创建运行虚拟分区;通过第一访问模式将系统升级包写入升级cow文件;第一访问模式为访问snapshot虚拟设备的模式;基于升级cow文件和物理系统分区创建升级虚拟分区。
[0010]在本申请的一个实施例中,根据系统升级包的数据量创建备份cow文件包括:创建与系统升级包的数据量相同的空文件作为备份cow文件。
[0011]在本申请的一个实施例中,分别将系统升级包写入运行虚拟分区和升级虚拟分区包括:将升级cow文件中的系统升级数据写入物理系统分区;通过第二访问模式访问将物理系统分区中与系统升级数据对应的原始系统数据写入备份cow文件;第二访问模式为访问snapshot虚拟设备的base部分的模式。
[0012]在本申请的一个实施例中,在分别将系统升级包写入运行虚拟分区和升级虚拟分区,以完成系统升级并得到原始数据备份文件之后,还包括:重启终端设备;若终端设备启动失败,则在initramfs对应的虚拟内存盘中基于备份cow文件和物理系统分区构建回滚虚拟分区;回滚虚拟分区为snapshot虚拟设备;将备份cow文件中的原始系统数据写入物理系统分区。
[0013]在本申请的一个实施例中,在重启终端设备之后,还包括:若终端设备启动成功,则删除备份cow文件。
[0014]在本申请实施方式的第二方面中,提供了一种终端设备的系统升级方法,包括:基于原始系统镜像和更新系统镜像构建升级虚拟设备;将更新系统镜像写入升级虚拟设备中,得到系统升级数据;基于系统升级数据形成系统升级包,并生成系统升级指令;将系统升级包和系统升级指令发送至终端设备。
[0015]在本申请的一个实施例中,基于原始系统镜像和更新系统镜像构建升级虚拟设备包括:将原始系统镜像和更新系统镜像分别挂载到服务器的第一文件路径和第二文件路径;通过数据镜像备份工具rsync比对第一文件路径和第二文件路径中的数据差异,得到原始系统镜像和更新系统镜像之间的差异数据量;根据差异数据量创建空镜像文件;基于空镜像文件和原始系统镜像构建升级虚拟设备。
[0016]在本申请的一个实施例中,将更新系统镜像写入升级虚拟设备中包括:通过第二访问模式以及rsync命令将更新系统镜像写入升级虚拟设备中,使得原始系统镜像和更新系统镜像之间的差异数据能够写入空镜像文件中。
[0017]在本申请的一个实施例中,基于系统升级数据形成系统升级包包括:通过device mapper工具对升级虚拟设备进行拆除,得到存储有系统升级数据的空镜像文件;将存储有系统升级数据的空镜像文件作为系统升级包。
[0018]在本申请实施方式的第三方面中,提供了一种系统升级装置,用于执行如第一方
面中任一项所述的终端设备的系统升级方法,包括:
[0019]系统启动模块,用于在终端设备的内存中构建根文件系统,并基于根文件系统和物理系统分区构建系统虚拟分区;
[0020]升级分区创建模块,用于响应于系统升级指令接收服务器发送的系统升级包,并基于系统升级包和物理系统分区创建运行虚拟分区和升级虚拟分区;
[0021]分区切换模块,用于将根文件系统由系统虚拟分区切换至运行虚拟分区;
[0022]数据写入模块,用于分别将系统升级包写入运行虚拟分区和升级虚拟分区,以完成系统升级并得到原始数据备份文件。
[0023]在本申请实施方式的第四方面中,提供了一种系统升级装置,用于执行如第二方面中任一项所述的终端设备本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种终端设备的系统升级方法,其特征在于,包括:在内存中构建根文件系统,并基于所述根文件系统和物理系统分区构建系统虚拟分区,使得在所述系统虚拟分区之内能够运行所述根文件系统;响应于系统升级指令接收服务器发送的系统升级包,并基于所述系统升级包和所述物理系统分区创建运行虚拟分区和升级虚拟分区;将所述根文件系统由所述系统虚拟分区切换至所述运行虚拟分区;分别将所述系统升级包写入所述运行虚拟分区和所述升级虚拟分区,以完成系统升级并得到原始数据备份文件。2.根据权利要求1所述的终端设备的系统升级方法,其特征在于,所述在内存中构建根文件系统,并基于所述根文件系统和物理系统分区构建系统虚拟分区包括:基于initramfs将系统描述文件释放到所述内存中形成所述根文件系统;所述系统描述文件包含所述根文件系统的系统文件和系统目录;在所述根文件系统中将所述物理系统分区挂载为snapshot

origin类型,形成初始虚拟分区;通过switch

root指令将所述根文件系统由所述内存切换至所述初始虚拟分区中,得到所述系统虚拟分区。3.根据权利要求2所述的终端设备的系统升级方法,其特征在于,所述运行虚拟分区和升级虚拟分区均为snapshot虚拟设备;所述基于所述系统升级包和所述物理系统分区创建运行虚拟分区和升级虚拟分区包括:根据所述系统升级包的数据量创建备份cow文件;基于所述备份cow文件和所述物理系统分区创建所述运行虚拟分区;通过第一访问模式将所述系统升级包写入升级cow文件;所述第一访问模式为访问所述snapshot虚拟设备的模式;基于所述升级cow文件和所述物理系统分区创建所述升级虚拟分区。4.根据权利要求3所述的终端设备的系统升级方法,其特征在于,所述根据所述系统升级包的数据量创建备份cow文件包括:创建与所述系统升级包的数据量相同的空文件作为所述备份cow文件。5.一种终端设备的系统升级方法,其特征在于,包括:基于原始系统镜像和更新系统镜像构建升级虚拟设备;将所述更新系统镜像写入所述升级虚拟设备中,得到系统升级数据;基于所述系统升级数据形成系统升级包,并生成系统升级指令;将所述系统升级包和所述系统升级指令发送至终端设备。6.根据权利要求5所述的终端设...

【专利技术属性】
技术研发人员:张睿博
申请(专利权)人:网易有道杭州智能科技有限公司
类型:发明
国别省市:

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

1