基于kexec的固件升级方法和固件升级装置制造方法

文档序号:6639190阅读:355来源:国知局
基于kexec的固件升级方法和固件升级装置制造方法
【专利摘要】本发明涉及网络设备安全领域,公开了基于kexec的固件升级方法和固件升级装置。该方法包括:生成支持kexec升级的固件和基于kexec进行固件升级;通过下载正常固件并检校,将所述正常固件拷入initramfs根文件系统中的特定路径下,重新编译支持所述initramfs的Linux内核,得到支持kexec升级的固件;利用所述kexec加载Linux kernel,所述kernel运行进入initramfs,检校所述支持kexec升级的固件,进行升级。本发明提供了一种基于kexec的固件升级方法,利用kexec快速启动Linux系统的新内核,构建一个新的、干净的环境升级固件,可以完全规避由于Linux系统之前潜在的问题导致固件升级失败的风险,简单快速完成固件升级,保证了固件升级的健壮性和安全性。
【专利说明】基于kexec的固件升级方法和固件升级装置

【技术领域】
[0001]本发明涉及网络设备安全领域,特别涉及一种基于kexec的固件升级方法和固件升级装置。

【背景技术】
[0002]近年来,计算机网络快速普及,网络时代正式来临,不仅一家一户要安装网络,甚至公共场合,包括电影院、公交车和大型商场等都铺设有无线网络。因此,用于网络互连的路由器显得尤为重要。Linux操作系统是路由器采用的主流操作系统,目前,基于Linux操作系统的路由器采用的升级固件的方式有两种:下载升级和bootloader升级。采用下载升级包括步骤:
[0003]1、将固件下载到内存中;
[0004]2、检校固件;
[0005]3、升级固件,
[0006]使用这种方式对固件进行升级时,Linux内核通常已经存在内存泄露、内存越界或正在发生一些毁坏性动作,这些问题通常都是未知的,可能会导致固件升级失败,进而导致路由器无法正常使用;采用bootloader升级包括步骤:
[0007]1、标识需要进行固件升级;
[0008]2、重启路由器;
[0009]3、Bootloader 通过 tftp 下载固件;
[0010]4、检校固件;
[0011]5、升级固件,
[0012]使用这种方式对固件进行升级时,固件在bootloader中升级,虽然保证固件在一个新的、干净的环境中升级,不会导致固件升级失败,但这种方式需要用户参与重新启动路由器、设置IP、固件和tftp server,以保证bootloader可以通过tftp下载固件,这对普通用户而言,是不可能完成的。


【发明内容】

[0013]针对现有技术的缺陷,本发明所要解决的技术问题是,提供一种基于kexec的固件升级方法,以规避Linux系统内核中的潜在风险,并解决升级复杂、用户体验差等问题。
[0014]为解决上述问题,本发明提供了基于kexec的固件升级方法,所述基于kexec的固件升级方法包括步骤:
[0015]S1、生成支持kexec升级的固件;
[0016]S2、基于kexec进行固件升级。
[0017]优选地,所述步骤SI包括步骤:
[0018]S101、生成并检校正常固件;
[0019]S102、将所述正常固件拷入initramfs根文件系统的特定路径下;
[0020]S103、重新编译支持所述initramfs的Linux kernel,得到所述支持kexec升级的固件。
[0021 ] 优选地,所述步骤S2包括步骤:
[0022]S201、所述 kexec 加载 Linux kernel ;
[0023]S202、所述Linux kernel运行加载所述initramfs根文件系统;
[0024]S203、在所述initramfs根目录系统的特定路径下找到所述支持kexec升级的固件;
[0025]S204、检校并升级所述支持kexec升级的固件。
[0026]优选地,所述正常固件通过自动编译拷入所述initramfs根文件系统的特定路径下。
[0027]优选地,所述Linux kernel是一个新的Linux内核,形成的环境是干净的。
[0028]为了实现上述目的,根据本发明的另一方面,提供了基于kexec的固件升级装置,所述的基于kexec的固件升级装置包括:
[0029]生成固件模块,用于生成支持kexec升级的固件;
[0030]固件升级模块,用于基于kexec进行固件升级。
[0031]优选地,所述生成固件模块包括:
[0032]第一生成固件子模块,用来生成并检校正常固件;
[0033]第二生成固件子模块,用来将所述正常固件拷入initramfs根文件系统的特定路径下;
[0034]第三生成固件子模块,用来重新编译支持所述initramfs的Linux kernel,得到所述支持kexec升级的固件。
[0035]优选地,所述固件升级模块包括:
[0036]第一固件升级子模块,用于利用所述kexec加载Linux kernel ;
[0037]第二固件升级子模块,用于利用所述Linux kernel运行加载所述initramfs根文件系统;
[0038]第三固件升级子模块,用于在所述initramfs根目录系统的特定路径下找到所述支持kexec升级的固件;
[0039]第四固件升级子模块,用于检校并升级所述支持kexec升级的固件
[0040]优选地,所述正常固件通过自动编译拷入所述initramfs根文件系统的特定路径下。
[0041]优选地,所述Linux kernel是一个新的Linux内核,形成的环境是干净的。
[0042]与现有技术相比,本发明提供了基于kexec的固件升级方法和固件升级装置,通过将下载到的正常固件自动编译,拷入到initramfs根文件系统的特定路径下,重新编译,得到支持kexec升级的固件,保证了 Linux kernel能够找到对应固件,并进行升级,完全满足了内核升级全程自动化,不需要用户操作的要求,用户体验好,真正实现了安全简单的升级固件;kexec加载一个新的Linux kernel,为固件升级构建一个新的、干净的环境,完全规避了直接在Linux系统中升级内核所存在的风险,保证了固件升级的健壮性和安全性。

【专利附图】

【附图说明】
[0043]图1为本发明的一个优选实施例中基于kexec的固件升级方法的流程示意图;
[0044]图2为本发明的一个优选实施例中生成支持kexec升级的固件的流程示意图;
[0045]图3为本发明的一个优选实施例中基于kexec进行固件升级的流程示意图;
[0046]图4为本发明的一个优选实施例中基于kexec的固件升级装置的框图。

【具体实施方式】
[0047]以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。说明书后续描述为实施本发明的较佳实施方式,然所述描述仍以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
[0048]参见图1,本发明实施例提供了基于kexec的固件升级方法,该方法包括步骤:
[0049]S1、生成支持kexec升级的固件;
[0050]S2、基于kexec进行固件升级。
[0051]在本发明中,基于kexec的固件升级方法通过将固件拷入initramfs根文件系统的特定路径下,重新编译initramfs根文件系统对应的Linux kernel,将正常固件转化为支持kexec升级的固件,确保Linux kernel能够找到固件并升级,完全满足简单快速完成固件升级的要求;利用kexec快速启动一个新内核,为固件升级提供一个新的、干净的环境,可以完全规避Linux系统中可能存在一些毁坏性行为和未知风险,保证固件升级的健壮性和安全性。
[0052]进一步地,参见图2,步骤SI包括步骤:
[0053]S101、生成并检校正常固件;
[0054]S102、将正常固件拷入initramfs根文件系统的特定路径下;
[0055]S103、重新编译支持initramfs的Linux kernel,得到支持kexec升级的固件。
[0056]步骤SlOl和步骤S102之间,kexec快速启动一个新的Linux kernel ;步骤S102中,通过自动编译的方式,将正常固件自动拷入initramfs根文件系统的特定路径下;步骤S103中,加载initramfs根文件系统,Linux kernel找到支持kexec升级的固件。
[0057]在本发明中,步骤SI将正常固件转变为支持kexec升级的固件,不需要用户参与,系统可以自动编译完成,确保用户不需要参与过于复杂的操作;将固件拷入initramfs根文件系统中,确保Linux kernel加载根文件系统即可找到相应固件,简单快速完成固件升级。
[0058]更进一步地,参见图3,步骤S2包括步骤:
[0059]S201、kexec 加载 Linux kernel ;
[0060]S202、Linux kernel 运行加载 initramfs 根文件系统;
[0061]S203、在initramfs根目录系统的特定路径下找到支持kexec升级的固件;
[0062]S204、检校并升级支持kexec升级的固件。
[0063]步骤S201中,kexec快速启动一个新的Linux kernel,并进行相应的初始化操作;步骤S202中,加载initramfs根文件系统,启动Linux操作系统。
[0064]本发明中,步骤S2实现了对支持kexec的固件的升级,通过kexec快速启动一个新的Linux kernel,确保内核升级在干净的环境中进行,完全规避了 Linux系统中可能存在的破坏性行为和未知风险,确保固件升级的健壮性和安全性。
[0065]图4是本实施例中基于kexec的固件升级装置的框图,如图4所示,该装置包括:生成固件模块和固件升级模块,其中,
[0066]生成固件模块包括第一生成固件子模块、第二生成固件子模块和第三生成固件子模块;固件升级模块包括第一固件升级子模块、第二固件升级子模块和第三固件升级子模块。
[0067]生成固件模块通过第一生成固件子模块生成并检校正常固件,第二生成固件子模块将正常固件拷入initramfs根文件系统的特定路径下,第三生成固件子模块重新编译支持initramfs的Linux kernel从而,得到支持kexec升级的固件。
[0068]固件升级模块通过第一固件升级子模块利用kexec加载Linux kernel,第二固件升级子模块利用Linux kernel运行加载initramfs根文件系统,第三固件升级子模块在initramfs根目录系统的特定路径下找到支持kexec升级的固件,第四固件升级子模块检校并升级支持kexec升级的固件。
[0069]本实施例中,生成固件模块完成自动将正常固件转变成支持kexec升级的固件,将固件放在initramfs根文件系统的特定路径下,文件系统启动即可加载,全程不需要用户参与,内核会自动加载,方便快捷;固件升级模块生成新的Linux内核,该内核找到initramfs根文件系统下的支持kexec升级的固件,对其进行升级,保证了升级环境的干净,防止内核中存在潜在风险导致的升级失败,大大提高了固件升级的成功率。
[0070]与现有技术相比,本发明提供了一种基于kexec的固件升级方法,利用kexec快速启动新的Linux kernel,为固件提供干净的升级环境,完全规避固件升级中由于Linux系统的潜在破坏性行为和未知风险导致升级失败的风险,保证固件升级的健壮性和安全性;将下载的正常固件自动转变为支持kexec升级的固件,整个过程不需要用户参与,实现固件的简单快速升级,这种固件升级方法非常适合对路由器内部运行并不熟悉的用户,可以完全实现快速简单的升级固件,最大程度上保证固件升级成功,即使路由器升级频繁,也不会对用户造成影响。
[0071]虽然以上结合优选实施例对本发明进行了描述,但本领域的技术人员应该理解,本发明所述的方法和系统并不限于【具体实施方式】中所述的实施例,在不背离由所附权利要求书限定的本发明精神和范围的情况下,可对本发明作出各种修改、增加、以及替换。
【权利要求】
1.基于kexec的固件升级方法,其特征在于,所述基于kexec的固件升级方法包括步骤: 51、生成支持kexec升级的固件; 52、基于kexec进行固件升级。
2.如权利要求1所述的基于kexec的固件升级方法,其特征在于,所述步骤S1包括步骤: 5101、生成并检校正常固件; 5102、将所述正常固件拷入initramfs根文件系统的特定路径下; 5103、重新编译支持所述initramfs的Linuxkernel,得到所述支持kexec升级的固件。
3.如权利要求1所述的基于kexec的固件升级方法,其特征在于,所述步骤S2包括步骤: 5201、所述kexec 加载 Linux kernel ; 5202、所述Linuxkernel运行加载所述initramfs根文件系统; 5203、在所述initramfs根目录系统的特定路径下找到所述支持kexec升级的固件; 5204、检校并升级所述支持kexec升级的固件。
4.如权利要求2所述的基于kexec的固件升级方法,其特征在于,所述正常固件通过自动编译拷入所述initramfs根文件系统的特定路径下。
5.如权利要求3所述的基于kexec的固件升级方法,其特征在于,所述Linuxkernel是一个新的Linux内核,形成的环境是干净的。
6.基于kexec的固件升级装置,其特征在于,所述基于kexec的固件升级装置包括: 生成固件模块,用于生成支持kexec升级的固件; 固件升级模块,用于基于kexec进行固件升级。
7.如权利要求6所述的基于kexec的固件升级装置,其特征在于,所述生成固件模块包括: 第一生成固件子模块,用来生成并检校正常固件; 第二生成固件子模块,用来将所述正常固件拷入initramfs根文件系统的特定路径下; 第三生成固件子模块,用来重新编译支持所述initramfs的Linux kernel,得到所述支持kexec升级的固件。
8.如权利要求6所述的基于kexec的固件升级装置,其特征在于,所述固件升级模块包括: 第一固件升级子模块,用于利用所述kexec加载Linux kernel ; 第二固件升级子模块,用于利用所述Linux kernel运行加载所述initramfs根文件系统; 第三固件升级子模块,用于在所述initramfs根目录系统的特定路径下找到所述支持kexec升级的固件; 第四固件升级子模块,用于检校并升级所述支持kexec升级的固件。
9.如权利要求7所述的基于kexec的固件升级装置,其特征在于,所述正常固件通过自动编译拷入所述initramfs根文件系统的特定路径下。
10.如权利要求8所述的基于kexec的固件升级装置,其特征在于,所述Linux kernel是一个新的Linux内核,形成的环境是干净的。
【文档编号】G06F9/445GK104461645SQ201410788434
【公开日】2015年3月25日 申请日期:2014年12月17日 优先权日:2014年12月17日
【发明者】冷优军 申请人:北京极科极客科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1