一种保障linux系统安全升级的方法、设备和存储介质技术方案

技术编号:24010111 阅读:39 留言:0更新日期:2020-05-02 01:27
本发明专利技术提供一种保障linux系统安全升级的方法,包括,启动系统,Bootloader依次计算kernel、rootfs和appfs的hash值,然后和系统中的hash值进行比较;加载kernel_recovery,在传递给kernel的启动参数中将rootfs_recovery分区设置为正常启动的rootfs分区,运行加载的kernel_recovery固件,recovery系统启动完成,然后再重新写入升级程序,系统再次启动,直至系统正常启动完成,升级成功。本发明专利技术在系统原有分区的基础上增加kernel和rootfs的备用分区kernel_recovery和rootfs_recovery,用于恢复和还原,可以防止升级文件写入过程中断电或写入被破坏的升级文件而导致系统无法正常启动,需要返厂重新刷机的问题。将rootfs中可能需要频繁升级的内容放到一个独立分区appfs中,用于减少对rootfs的升级次数。本发明专利技术还同时提供应用上述方法的设备和存储介质。

A method, device and storage medium for security upgrade of Linux system

【技术实现步骤摘要】
一种保障linux系统安全升级的方法、设备和存储介质
本专利技术属于嵌入式linux系统的
,具体涉及一种保障linux系统安全升级的方法、设备和存储介质。
技术介绍
嵌入式linux系统在电子设备中有着较为广泛的应用,电子设备出厂后可能因为修复Bug或增加功能而需要对固件文件进行升级,而在写入升级文件的过程中如果出现设备断电或者写入的固件文件自身已经被破坏了,会导致写入到系统中的固件文件有错误而引起系统无法正常启动,需要返维修点重新刷机,增加售后成本。
技术实现思路
针对上述现有技术存在的不足,本专利技术的目的是提供一种保障linux系统安全升级的方法、设备和存储介质,可以解决现有技术中linux系统固件文件升级完成后不能正常启动的问题。为了实现上述目的,本专利技术提首先供一种保障linux系统安全升级的方法,包括:S1,启动系统;S2,Bootloader依次计算kernel、rootfs和appfs的hash值,然后和系统中的hash值进行比较是否一致,若全部一致则正常运行加载kernel固件,系统正常启动,升级成功;若其中有一个不一致,则进入步骤S3;S3,加载kernel_recovery,在传递给kernel的启动参数中将rootfs_recovery分区设置为正常启动的rootfs分区,运行加载的kernel_recovery固件,recovery系统启动完成,重新写入升级文件,写入完成后进入步骤S1。进一步地,步骤S2中,若rootfs的hash值和保存在系统中的hash值一致,则在传递给kernel的启动参数中将rootfs分区设置为正常启动的rootfs分区。进一步地,kernel_recovery和rootfs_recovery为在系统原有分区的基础上增加的kernel和rootfs的备用恢复分区。进一步地,appfs为将rootfs中多次修改和升级的部分独立出来的分区,可以减少rootfs的升级次数。进一步地,步骤S3中,升级文件通过webserver上传,或通过U盘或SD卡拷贝输入到系统中。进一步地,步骤S3中还包括对升级文件是否可以用于升级进行判断校验:升级程序计算升级文件的hash值,并和升级文件中保存的hash值进行比对,若一致则再对升级文件的hash值进行签名验证,若验证通过则进入步骤S2,若hash值比对不一致或者签名验证不通过,则不进行升级。进一步地,升级文件写入完成后将升级文件的hash保存在系统中,用于Bootloader启动时进行比对。本专利技术同时提供一种设备,包括处理器和存储器;存储器用于存储升级程序,处理器调用升级程序,以执行上述的保障linux系统安全升级的方法。本专利技术还提供一种机器可读的存储介质,其上存储有指令,当由处理器执行指令时,以执行上述的保障linux系统安全升级的方法。与现有技术相比,本专利技术提供的保障linux系统安全升级的方法、设备和存储介质,在原有系统分区的基础上增加了kernel和rootfs的备用恢复分区kernel_recovery和rootfs_recovery,这样当系统升级写入升级文件的过程中发生断电或者原升级文件被破坏,而导致系统无法正常启动时,可以启用备用的kernel_recovery和rootfs_recovery,使系统恢复,然后再对系统进行升级,最后系统正常启动,升级成功,这样保障了linux系统可以安全升级。另外,以及将rootfs中需要频繁升级的内容一个独立设置分区appfs,这样可以减少对rootfs升级的次数,从而减少rootfs被升级失败的概率。附图说明图1是本专利技术实施例一保障linux系统安全升级的方法流程图;图2是本专利技术实施例二设备的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。首先对本专利技术实施例中系统总共的分区做如下说明:Bootloader:系统Bootloader固件;kernel:系统正常启动的kernel固件;kernel_recovery:紧急kernel固件,在正常固件校验不过时加载,出厂时保证基本功能稳定,出厂后不做升级,仅用于系统恢复用;rootfs:系统正常启动的rootfs固件;rootfs_recovery:紧急rootfs固件,在正常固件校验不过时加载,出厂时保证基本功能稳定,出厂后不做升级,仅用于系统恢复用;appfs:从rootfs中将需要频繁修改和升级的部分独立出来的分区,从而减少对rootfs的升级频次。实施例一:本专利技术实施例一提供一种保障linux系统安全升级的方法,包括如下步骤,如图1所示:S1,启动系统;S2,Bootloader依次计算kernel、rootfs和appfs的hash值,然后和系统中的hash值进行比较是否一致,若全部一致则正常运行加载kernel固件,系统正常启动,升级成功;若其中有一个不一致,则进入步骤S3;S3,加载kernel_recovery,在传递给kernel的启动参数中将rootfs_recovery分区设置为正常启动的rootfs分区,运行加载的kernel_recovery固件,recovery系统启动完成,重新写入升级文件,写入完成后进入步骤S1;本实施例中linux系统的固件文件分为bootloader、kernel、rootfs三部分,bootloader主要负责上电后将kernel加载到内存,并将rootfs所在的分区路径等启动参数传递给kernel然后启动kernel;kernel即为linux系统底层的主体,负责整个系统的运行调度和外设的驱动等;rootfs为linux系统上层的主体,负责系统上层文件系统加载及命令的解析和UI的呈现及所有应用程序。当系统写入升级文件完成后,系统启动,进入步骤S2;若升级文件若没有被破坏,则系统正常完成启动,升级成功;升级文件在写入过程中发生断电或者升级文件已被破坏,则导致系统无法正常启动,则进入步骤S3,启用备用的kernel_recovery和rootfs_recovery使系统恢复,在系统重新写入升级文件后,再进入步骤S2,直至系统正常启动完成升级。这样在系统固件文件升级不成功时,系统依旧可以正常启动,而不需要去返厂维修,重新刷机。本实施例中,kernel_recovery和rootfs_recovery为在系统原有分区的基础上增加的kernel和rootfs的备用恢复分区,以便kernel和rootfs出现问题时,可以从kernel_recovery和rootfs_recovery进行恢复还原。Appfs是从rootfs中将需要频繁修改和升级的部分独立出来的分区,这样可以减少对r本文档来自技高网...

【技术保护点】
1.一种保障linux系统安全升级的方法,其特征在于,包括:/nS1,启动系统;/nS2,Bootloader依次计算kernel、rootfs和appfs的hash值,然后和系统中的hash值进行比较是否一致,若全部一致则正常运行加载kernel固件,系统正常启动,升级成功;若其中有一个不一致,则进入步骤S3;/nS3,加载kernel_recovery,在传递给kernel的启动参数中将rootfs_recovery分区设置为正常启动的rootfs分区,运行加载的kernel_recovery固件,recovery系统启动完成,重新写入升级文件,写入完成完成后进入步骤S1。/n

【技术特征摘要】
1.一种保障linux系统安全升级的方法,其特征在于,包括:
S1,启动系统;
S2,Bootloader依次计算kernel、rootfs和appfs的hash值,然后和系统中的hash值进行比较是否一致,若全部一致则正常运行加载kernel固件,系统正常启动,升级成功;若其中有一个不一致,则进入步骤S3;
S3,加载kernel_recovery,在传递给kernel的启动参数中将rootfs_recovery分区设置为正常启动的rootfs分区,运行加载的kernel_recovery固件,recovery系统启动完成,重新写入升级文件,写入完成完成后进入步骤S1。


2.根据权利要求1所述的保障linux系统安全升级的方法,其特征在于,所述步骤S2中,若所述rootfs的hash值和保存在系统中的hash值一致,则在传递给kernel的启动参数中将所述rootfs分区设置为正常启动的rootfs分区。


3.根据权利要求1所述的保障linux系统安全升级的方法,其特征在于,所述kernel_recovery和所述rootfs_recovery为在系统原有分区的基础上增加的kernel和rootfs的备用恢复分区。


4.根据权利要求3所述的保障linux系统安全升级的方法,其特征在于,所述appfs为所述将所述rootfs中多...

【专利技术属性】
技术研发人员:缪志华
申请(专利权)人:深圳市桑格尔科技股份有限公司
类型:发明
国别省市:广东;44

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

1