CN108415733A - 一种基于双镜像Flash的路由器的启动方法及装置 - Google Patents

一种基于双镜像Flash的路由器的启动方法及装置 Download PDF

Info

Publication number
CN108415733A
CN108415733A CN201810119291.4A CN201810119291A CN108415733A CN 108415733 A CN108415733 A CN 108415733A CN 201810119291 A CN201810119291 A CN 201810119291A CN 108415733 A CN108415733 A CN 108415733A
Authority
CN
China
Prior art keywords
mirror
router
file system
kernel
mirror image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810119291.4A
Other languages
English (en)
Inventor
林相乾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Kangfei Information Technology Co Ltd
Original Assignee
Shanghai Kangfei Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Kangfei Information Technology Co Ltd filed Critical Shanghai Kangfei Information Technology Co Ltd
Priority to CN201810119291.4A priority Critical patent/CN108415733A/zh
Publication of CN108415733A publication Critical patent/CN108415733A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于双镜像Flash的路由器的启动方法及装置,其中启动方法包括:在路由器uboot启动阶段,对路由器的硬件、内存及堆栈进行初始化;检验第一文件系统镜像的信息是否完整,若是,则设置启动参数中文件系统镜像为第一文件系统镜像;否则,设置启动参数中文件系统镜像为第二文件系统镜像;检验第一内核镜像的信息是否完整,若是,设置启动参数中内核镜像为第一内核镜像,否则设置启动参数中内核镜像为第二内核镜像;控制路由器进入内核启动及应用层启动,完成路由器的启动过程。本发明存储了路由器双份镜像文件,并且分别对内核以及文件系统镜像进行检测,一旦出现问题,便切换到备份分区,为路由器正常启动提供一种保障。

Description

一种基于双镜像Flash的路由器的启动方法及装置
技术领域
本发明涉及路由器的启动技术领域,尤其涉及一种基于双镜像Flash的路由器的启动方法及装置。
背景技术
路由器的flash分区通常保存着uboot,内核和文件系统的镜像,以及用户数据、无线校准信息等。众所周知,路由器启动阶段分为uboot启动,内核启动和应用层启动,因此uboot,内核和文件系统在路由器启动阶段发挥着重要的作用。但大部分路由器每个镜像对应的仅仅只有一个,并无备份,这也就意味着用户的不当操作或者flash使用造成的坏块会导致路由器无法启动。另一方面,目前市面上少有的基于双镜像flash的路由器,其主要用于升级,在启动阶段仅仅利用了其中的一个特定的镜像,并没有切换功能。
具体的,路由器的启动过程都是从uboot启动开始,引导内核随后进入内核启动,内核启动挂载文件系统,最后进入应用层启动。上面所说的启动方案是所有路由器所采用的,因此就会出现以下几个明显的问题:
(1)对于单镜像flash的路由器,uboot、内核、文件系统任何一个镜像出现问题将导致路由器无法启动。
(2)对于少有的存在双镜像flash的路由器,目前在启动过程中没有对文件系统的检测以及分区切换的功能。使双镜像徒有其表,却没有真正利用起来。
发明内容
为了克服上述技术缺陷,本发明提供一种基于双镜像Flash的路由器的启动方法及装置,具体的,技术方案如下:
一方面,本发明公开了一种基于双镜像Flash的路由器的启动方法,包括:S100在路由器uboot启动阶段,对路由器的硬件、内存及堆栈进行初始化;S200检验第一文件系统镜像的信息是否完整,若是,则设置启动参数中文件系统镜像为所述第一文件系统镜像;否则,设置启动参数中文件系统镜像为第二文件系统镜像;S300检验第一内核镜像的信息是否完整,若是,设置启动参数中内核镜像为所述第一内核镜像,否则,设置启动参数中内核镜像为第二内核镜像;S400控制所述路由器进入内核启动及应用层启动,完成路由器的启动过程。
优选地,所述步骤S200包括:S210将路由器Flash中第一文件系统镜像拷贝到内存中;S220计算所述第一文件系统镜像的CRC值;S230比较所述第一文件系统镜像的CRC值是否与环境变量中预存的文件系统CRC值相同,若是进入步骤S240,否则进入步骤S250;S240将路由器启动参数中文件系统的镜像信息部分设置为所述第一文件系统镜像;S250将路由器启动参数中文件系统的镜像信息部分设置为第二文件系统镜像。
优选地,所述步骤S300包括:S310将路由器Flash中第一内核镜像拷贝到内存中;S320计算所述第一内核镜像的CRC值;S330比较所述第一内核镜像的CRC值是否与环境变量中预存的内核CRC值相同,若是进入步骤S340,否则进入步骤S350;S340将路由器启动参数中内核镜像信息部分设置为所述第一内核镜像;S350将路由器启动参数中内核镜像信息部分设置为第二内核镜像。
优选地,所述第一文件系统镜像、第二文件系统镜像、第一内核镜像、第二内核镜像存放于路由器Flash的不同的分区,其中,所述路由器Flash的不同的分区在路由器Flash中对应不同的起始地址。
优选地,所述步骤S400包括:S410根据设置的内核镜像信息,控制所述路由器进入内核启动;S420调用系统函数挂载启动参数中设置的文件系统镜像中的文件系统;S430根据挂载的相应的文件系统信息,控制路由器进入应用层启动,分别开启路由器的不同功能模块,完成路由器的启动。
另一方面,本发明还公开了一种基于双镜像Flash的路由器的启动装置,包括:初始化模块,用于在路由器uboot启动阶段,对路由器的硬件、内存及堆栈进行初始化;第一校验模块,与所述初始化模块相连,用于检验第一文件系统镜像的信息是否完整;第一参数设置模块,与所述第一校验模块相连,用于当所述第一校验模块检验所述第一文件系统镜像的信息完整时,设置启动参数中文件系统镜像为第一文件系统镜像;当所述第一校验模块检验所述第一文件系统镜像的信息不完整时,设置启动参数中文件系统镜像为第二文件系统镜像;第二校验模块,与所述初始化模块相连,用于检验第一内核镜像的信息是否完整;第二参数设置模块,与所述第二校验模块相连,用于当第二校验模块检验第一内核镜像的信息完整时,设置启动参数中内核镜像为第一内核镜像,当第二校验模块检验第一内核镜像的信息不完整时,设置启动参数中内核镜像为第二内核镜像;控制模块,分别与所述第一参数设置模块、第二参数设置模块及初始模块相连,用于控制路由器进入内核启动及应用层启动,完成路由器的启动过程。
优选地,所述第一校验模块包括:第一拷贝子模块,用于将路由器Flash中第一文件系统镜像拷贝到内存中;第一计算子模块,与所述第一拷贝子模块相连,用于计算所述第一文件系统镜像的CRC值;第一比较子模块,与所述第一计算子模块相连,用于比较所述第一文件系统镜像的CRC值是否与环境变量中预存的文件系统CRC值相同;当所述第一文件系统镜像的CRC值与环境变量中预存的文件系统CRC值相同时,所述第一参数设置模块将路由器启动参数中文件系统的镜像信息部分设置为第一文件系统镜像;当所述第一文件系统镜像的CRC值与环境变量中预存的文件系统CRC值不同时,所述第一参数设置模块将路由器启动参数中文件系统的镜像信息部分设置为第二文件系统镜像。
优选地,所述第二校验模块包括:第二拷贝子模块,用于将路由器Flash中第一内核镜像拷贝到内存中;第二计算子模块,与所述第二拷贝子模块相连,用于计算所述第一内核镜像的CRC值;第二比较子模块,与所述第二计算子模块相连,用于比较所述第一内核镜像的CRC值是否与环境变量中预存的内核CRC值相同,当所述第一内核镜像的CRC值与环境变量中预存的内核CRC值相同时,所述第二参数设置模块将路由器启动参数中内核镜像信息部分设置为所述第一内核镜像;当所述第一内核镜像的CRC值与环境变量中预存的内核CRC值不同时,所述第二参数设置模块将路由器启动参数中内核镜像信息部分设置为第二内核镜像。
优选地,所述第一文件系统镜像、第二文件系统镜像、第一内核镜像、第二内核镜像存放于路由器Flash的不同的分区,其中,所述路由器Flash的不同的分区在路由器Flash中对应不同的起始地址。
优选地,所述控制模块包括:内核启动子模块,用于根据设置的内核镜像信息,控制所述路由器进入内核启动;挂载子模块,与所述内核启动子模块相连,用于调用系统函数挂载启动参数中设置的文件系统镜像中的文件系统;应用层启动子模块,与所述挂载子模块相连,用于根据所述挂载子模块挂载的相应的文件系统信息,控制路由器进入应用层启动,分别开启路由器的不同功能模块,完成路由器的启动。
本发明至少具备以下一项技术效果:
(1)本发明相对于现有技术中的单一备份镜像文件,增加了一个备份镜像文件,即本发明基于双镜像备份,从而在其中一个内核或者文件系统出现问题的时候,还可以通过另一个相应的备份镜像进行设置启动,从而保证路由器可以正常启动。避免单镜像时,由于用户的不当操作或者flash使用造成的坏块会导致路由器无法启动。
(2)本发明在启动过程中,增加了对文件系统镜像和内核镜像的校验部分,以确保信息的完整性,并根据校验结果可进行相应的设置切换,一旦内核镜像之一或者文件系统镜像之一出现损坏,则可切换至另一内核镜像或文件系统镜像,使得路由器仍然可以启动,并且不会影响其任何功能。
(3)本发明在Flash的不同分区中存放不同的镜像文件,因此,可根据不同分区在路由器Flash中对应的不同的起始位置获取到相应的镜像文件,方面快捷。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于双镜像Flash的路由器的启动方法实施例的流程图;
图2为本发明基于双镜像Flash的路由器的启动方法另一实施例的流程图;
图3为本发明基于双镜像Flash的路由器的启动方法另一实施例的流程图;
图4为本发明基于双镜像Flash的路由器的启动方法另一实施例的流程图;
图5为本发明基于双镜像Flash的路由器的启动装置实施例的框图;
图6为本发明基于双镜像Flash的路由器的启动装置另一实施例的框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明公开了一种基于双镜像Flash的路由器的启动方法,实施例如图1所示,包括:
S100在路由器uboot启动阶段,对路由器的硬件、内存及堆栈进行初始化;
S200检验第一文件系统镜像的信息是否完整,若是,则设置启动参数中文件系统镜像为所述第一文件系统镜像;否则,设置启动参数中文件系统镜像为第二文件系统镜像;
S300检验第一内核镜像的信息是否完整,若是,设置启动参数中内核镜像为所述第一内核镜像,否则,设置启动参数中内核镜像为第二内核镜像;
S400控制所述路由器进入内核启动及应用层启动,完成路由器的启动过程。
路由器启动阶段分为uboot启动,内核启动和应用层启动,因此uboot,内核和文件系统在路由器启动阶段发挥着重要的作用。uboot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导,从而启动内核。对于flash中只有单一的内核和文件系统的路由器,一旦flash中它们对应的分区出现坏块或者它们当中的任何一个分区的数据出现问题,路由器就无法启动。因此,在flash中增加备份分区可以在一定程度上避免无法启动的问题。由于uboot是路由器通电所执行的第一个程序,具有唯一性。所谓双镜像flash,即flash中存在两个内核和两个文件系统的分区,他们具有相同的镜像内容,在其中一个内核镜像或者文件系统镜像出现问题的时候,可以通过代码实现再启动过程自动切换分区,切换到另一备份的镜像分区,从而保证路由器可以正常启动。
较佳的,上述实施例步骤S200中,当第一文件系统镜像信息不完整时,可增加步骤:检验第二文件系统镜像信息是否完整,若是,则设置启动参数中文件系统镜像为第二文件系统镜像;否则,进行重启或报错。
同样的,上述实施例步骤S300中,当第一内核镜像信息不完整时,可增加步骤:检验第二内核镜像信息是否完整,若是,则设置启动参数中内核镜像为第二内核镜像,否则,进行重启或报错。
上述实施例中,分别对文件系统镜像和内核镜像进行了校验,具体的,可分别采用CRC校验,CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。如果进行校验的镜像文件通过了校验,则可以采用该镜像文件,否则则采用另一备份区的镜像文件。以保证路由器能够正常启动。如图2所示,分别对文件系统镜像和内核镜像进行了校验,并根据校验结果设置相应的参数。具体的,包括:
S100在路由器uboot启动阶段,对路由器的硬件、内存及堆栈进行初始化;
S210将路由器Flash中第一文件系统镜像拷贝到内存中;
S220计算所述第一文件系统镜像的CRC值;
S230比较所述第一文件系统镜像的CRC值是否与环境变量中预存的文件系统CRC值相同,若是进入步骤S240,否则进入步骤S250;
S240将路由器启动参数中文件系统的镜像信息部分设置为所述第一文件系统镜像;
S250将路由器启动参数中文件系统的镜像信息部分设置为第二文件系统镜像;
S310将路由器Flash中第一内核镜像拷贝到内存中;
S320计算所述第一内核镜像的CRC值;
S330比较所述第一内核镜像的CRC值是否与环境变量中预存的内核CRC值相同,若是进入步骤S340,否则进入步骤S350;
S340将路由器启动参数中内核镜像信息部分设置为所述第一内核镜像;
S350将路由器启动参数中内核镜像信息部分设置为第二内核镜像;
S400控制所述路由器进入内核启动及应用层启动,完成路由器的启动过程。
上述实施例中,由于后续进入内核启动之后会调用系统的挂载函数,因此,一旦文件系统出现问题就会重新启动,无法完成切换,因此对镜像的检验与切换都必须放在uboot启动阶段。
在开机uboot阶段,会对文件系统镜像及内核镜像进行校验,具体的采用CRC校验方法。镜像校验需要头部提供CRC的值,但是在升级过程中,为了能够使用系统函数去挂载文件系统,文件系统的镜像头部信息在升级过程中被剥离。但在uboot环境变量中,单独保存了CRC的值,因此,可以直接对镜像数据进行CRC校验,计算出相应的值并与环境变量相应的值进行比较。
具体的,文件系统镜像校验过程为:uboot在进入内核启动之前会执行环境变量中的对应的命令,因此可以修改环境变量,增加对镜像的检验与切换的命令。镜像文件的检验需要将flash中的镜像拷贝到内存中,然后利用CRC校验算法进行校验,因此,可以在环境变量中对应的路由器启动命令中,加入对文件系统镜像的校验语句,并通过增加自定义uboot命令的方式实现镜像的切换。文件系统的检验与切换的命令应放在检验内核镜像之前,因为在检验内核镜像之后(校验过程与文件系统镜像校验类似)会进入内核启动,就需要挂载文件系统了。上述对内核镜像和文件系统镜像进行CRC校验,一旦无法通过,即进行镜像切换。即上述实施例中采用另一备份区的镜像文件进行相应的启动参数的设置。
上述任一实施例中,所述第一文件系统镜像、第二文件系统镜像、第一内核镜像、第二内核镜像存放于路由器Flash的不同的分区,其中,所述路由器Flash的不同的分区在路由器Flash中对应不同的起始地址。
也就是说,每个内核镜像和文件系统镜像存放在路由器Flash的不同分区,而不同的分区在路由器Flash中对应不同的起始地址,可以将不同的Flash地址值作为参数传给uboot命令,以此来实现不同镜像之间的切换。
较佳的,上述实施例中,当所述第一文件系统镜像的CRC值是否与环境变量中预存的文件系统CRC值不同时,还可以增加步骤:拷贝第二文件系统镜像至内存中,计算第二文件系统镜像的CRC值,并比较所述第二文件系统镜像的CRC值是否与环境变量中预存的文件系统CRC值相同,若是,将路由器启动参数中文件系统的镜像信息部分设置为第二文件系统镜像,否则,返回重启或进行报错(并给出错误诊断信息:比如文件系统双镜像文件出错等)。同样的,当所述第一内核镜像的CRC值与环境变量中预存的内核CRC值不同是,同样可以增加对第二内核镜像的CRC校验,校验过程与第二文件系统镜像的CRC校验类似,为减少重复,不再赘述。
本发明方法的另一实施例,如图3所示,包括:
S100在路由器uboot启动阶段,对路由器的硬件、内存及堆栈进行初始化;
S200检验第一文件系统镜像的信息是否完整,若是,则设置启动参数中文件系统镜像为所述第一文件系统镜像;否则,设置启动参数中文件系统镜像为第二文件系统镜像;
S300检验第一内核镜像的信息是否完整,若是,设置启动参数中内核镜像为所述第一内核镜像,否则,设置启动参数中内核镜像为第二内核镜像;
S410根据设置的内核镜像信息,控制所述路由器进入内核启动;
S420调用系统函数挂载启动参数中设置的文件系统镜像中的文件系统;
S430根据挂载的相应的文件系统信息,控制路由器进入应用层启动,分别开启路由器的不同功能模块,完成路由器的启动。
本实施例中,在实现在路由器启动阶段检测各个分区镜像的数据完整性后,一旦镜像的数据存在问题自动切换至另一个备份分区,获取相应数据,从而根据启动参数中设置的内核镜像信息,进入内核启动,调用系统函数挂载启动参数中设置的文件系统镜像中的文件系统,控制路由器进入应用层启动,开启路由器的不同功能模块,从而完成路由器的启动。
本发明方法的另一实施例,如图4所示,基于双镜像flash的路由器的启动过程可以描述为以下过程:
(1)uboot首先进行硬件初始化,然后初始化内存,堆栈等为执行下一过程的代码做准备。
(2)uboot将进行环境变量命令的初始化,然后设置相应的启动参数。首先在环境变量命令加入相应的命令,将flash中文件系统的镜像拷贝到内存中,进行CRC校验。对应的uboot命令需要自己编写代码。然后,将计算出的CRC的值与环境变量中储存的CRC值相比较,如果相等,则将启动参数中关于文件系统的镜像信息的部分设置为此文件系统的镜像信息,否则,设置为另一个备份镜像信息。
(3)随后将flash中内核的镜像拷贝到内存中,进行CRC校验,如果成功,则进入内核启动,否则,将执行环境变量命令中的下一个命令,因此,在其下一个命令(reset)之前,加入切换内核镜像的相应uboot命令,进行CRC校验并进入内核启动。
(4)内核启动将调用系统函数挂载相应的文件系统,最后进入应用层启动,分别开启路由器的不同功能模块,则路由器启动完毕。
本实施例的关键点在于基于双镜像flash的路由器在启动过程中对镜像进行检验并实现自动切换的功能,以此来为路由器能够正常启动提供一种保障。增加了启动过程中对文件系统的检验部分,可以在uboot阶段实现切换;具体的,增加了文件系统或内核的切换功能;一旦内核镜像之一或者文件系统镜像之一出现损坏,路由器仍然可以启动,并且不会影响其任何功能。
基于相同的技术构思,本发明还公开了一种基于双镜像Flash的路由器的启动装置,该启动装置可采用本发明的基于双镜像Flash的路由器的启动方法,具体的,该启动装置如图5所示,包括:初始化模块10,用于在路由器uboot启动阶段,对路由器的硬件、内存及堆栈进行初始化;第一校验模块20,与所述初始化模块10相连,用于检验第一文件系统镜像的信息是否完整;第一参数设置模块30,与所述第一校验模块20相连,用于当所述第一校验模块20检验所述第一文件系统镜像的信息完整时,设置启动参数中文件系统镜像为第一文件系统镜像;当所述第一校验模块20检验所述第一文件系统镜像的信息不完整时,设置启动参数中文件系统镜像为第二文件系统镜像;第二校验模块40,与所述初始化模块10相连,用于检验第一内核镜像的信息是否完整;第二参数设置模块50,与所述第二校验模块40相连,用于当第二校验模块40检验第一内核镜像的信息完整时,设置启动参数中内核镜像为第一内核镜像,当第二校验模块40检验第一内核镜像的信息不完整时,设置启动参数中内核镜像为第二内核镜像;控制模块60,分别与所述第一参数设置模块30、第二参数设置模块50及初始模块相连,用于控制路由器进入内核启动及应用层启动,完成路由器的启动过程。
uboot启动阶段,首先通过初始化模块进行硬件初始化,然后初始化内存,堆栈等为执行下一过程的代码做准备。此外,还可以进行环境变量命令的初始化等。然后再通过第一校验模块对文件系统镜像进行相应的校验,并根据校验结果通过第一参数设置模块进行启动参数中文件系统镜像的设置。同样的,第二校验模块在第一参数设置模块设置完毕后,对内核镜像进行相应的校验,并根据校验结果,通过第二参数设置模块进行启动参数中内核镜像的设置,最后,路由器根据第一参数设置模块、第二参数设置模块设置的参数,进入内核启动及应用层启动,从而完成路由器的完整启动过程。本实施例的启动装置,对文件系统镜像和内核镜像均进行了双份备份,避免一方损坏容易造成路由器无法启动的故障,此外,本发明装置也增加了自主切换功能,根据校验结果智能选择相应的镜像文件进行启动参数设置,从而保障了路由器的启动。
本发明装置的另一实施例,如图6所示,所述第一校验模块20包括:第一拷贝子模块21,用于将路由器Flash中第一文件系统镜像拷贝到内存中;第一计算子模块22,与所述第一拷贝子模块21相连,用于计算所述第一文件系统镜像的CRC值;第一比较子模块23,与所述第一计算子模块22相连,用于比较所述第一文件系统镜像的CRC值是否与环境变量中预存的文件系统CRC值相同;当所述第一文件系统镜像的CRC值与环境变量中预存的文件系统CRC值相同时,所述第一参数设置模块30将路由器启动参数中文件系统的镜像信息部分设置为第一文件系统镜像;当所述第一文件系统镜像的CRC值与环境变量中预存的文件系统CRC值不同时,所述第一参数设置模块30将路由器启动参数中文件系统的镜像信息部分设置为第二文件系统镜像。
上述装置实施例中,第一校验模块中,先通过第一拷贝子模块将其中一个文件系统镜像拷贝到内存中,然后对其进行CRC检验,看该及文件系统镜像的信息是否完整,如果信息完整那么就采样该文件系统镜像进行启动参数中文件系统镜像的设置,不然,采用另一文件系统镜像。镜像校验需要头部提供CRC的值,但是在升级过程中,为了能够使用系统函数去挂载文件系统,文件系统的镜像头部信息在升级过程中被剥离,不过在uboot环境变量中,单独保存了CRC的值,因此,可以直接对镜像数据进行CRC校验,计算出相应的值并与环境变量相应的值进行比较。
同样的,所述第二校验模块40包括:第二拷贝子模块41,用于将路由器Flash中第一内核镜像拷贝到内存中;第二计算子模块42,与所述第二拷贝子模块41相连,用于计算所述第一内核镜像的CRC值;第二比较子模块43,与所述第二计算子模块42相连,用于比较所述第一内核镜像的CRC值是否与环境变量中预存的内核CRC值相同,当所述第一内核镜像的CRC值与环境变量中预存的内核CRC值相同时,所述第二参数设置模块50将路由器启动参数中内核镜像信息部分设置为所述第一内核镜像;当所述第一内核镜像的CRC值与环境变量中预存的内核CRC值不同时,所述第二参数设置模块50将路由器启动参数中内核镜像信息部分设置为第二内核镜像。
上述任一装置实施例中,所述第一文件系统镜像、第二文件系统镜像、第一内核镜像、第二内核镜像存放于路由器Flash的不同的分区,其中,所述路由器Flash的不同的分区在路由器Flash中对应不同的起始地址。因此,可以根据不同镜像的Flash地址值来获取不同分区的内核镜像和文件系统镜像。
较佳的,上述任一装置实施例中,所述控制模块60包括:内核启动子模块61,用于根据设置的内核镜像信息,控制所述路由器进入内核启动;挂载子模块62,与所述内核启动子模块61相连,用于调用系统函数挂载启动参数中设置的文件系统镜像中的文件系统;应用层启动子模块63,与所述挂载子模块62相连,用于根据所述挂载子模块62挂载的相应的文件系统信息,控制路由器进入应用层启动,分别开启路由器的不同功能模块,完成路由器的启动。
本发明的装置实施例与本发明的方法实施例对应,本发明的方法实施例的技术细节同样适用于本发明的装置实施例,因此,本发明的装置为减少重复,不再赘述。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于双镜像Flash的路由器的启动方法,其特征在于,包括:
S100在路由器uboot启动阶段,对路由器的硬件、内存及堆栈进行初始化;
S200检验第一文件系统镜像的信息是否完整,若是,则设置启动参数中文件系统镜像为所述第一文件系统镜像;否则,设置启动参数中文件系统镜像为第二文件系统镜像;
S300检验第一内核镜像的信息是否完整,若是,设置启动参数中内核镜像为所述第一内核镜像;否则,设置启动参数中内核镜像为第二内核镜像;
S400控制所述路由器进入内核启动及应用层启动,完成路由器的启动过程。
2.根据权利要求1所述的一种基于双镜像Flash的路由器的启动方法,其特征在于,所述步骤S200包括:
S210将路由器Flash中第一文件系统镜像拷贝到内存中;
S220计算所述第一文件系统镜像的CRC值;
S230比较所述第一文件系统镜像的CRC值是否与环境变量中预存的文件系统CRC值相同,若是进入步骤S240,否则进入步骤S250;
S240将路由器启动参数中文件系统的镜像信息部分设置为所述第一文件系统镜像;
S250将路由器启动参数中文件系统的镜像信息部分设置为第二文件系统镜像。
3.根据权利要求1所述的一种基于双镜像Flash的路由器的启动方法,其特征在于,所述步骤S300包括:
S310将路由器Flash中第一内核镜像拷贝到内存中;
S320计算所述第一内核镜像的CRC值;
S330比较所述第一内核镜像的CRC值是否与环境变量中预存的内核CRC值相同,若是进入步骤S340,否则进入步骤S350;
S340将路由器启动参数中内核镜像信息部分设置为所述第一内核镜像;
S350将路由器启动参数中内核镜像信息部分设置为第二内核镜像。
4.根据权利要求1所述的一种基于双镜像Flash的路由器的启动方法,其特征在于,
所述第一文件系统镜像、第二文件系统镜像、第一内核镜像、第二内核镜像存放于路由器Flash的不同的分区,其中,所述路由器Flash的不同的分区在路由器Flash中对应不同的起始地址。
5.根据权利要求1-4任一项所述的一种基于双镜像Flash的路由器的启动方法,其特征在于,所述步骤S400包括:
S410根据设置的内核镜像信息,控制所述路由器进入内核启动;
S420调用系统函数挂载启动参数中设置的文件系统镜像中的文件系统;
S430根据挂载的相应的文件系统信息,控制路由器进入应用层启动,分别开启路由器的不同功能模块,完成路由器的启动。
6.一种基于双镜像Flash的路由器的启动装置,其特征在于,包括:
初始化模块,用于在路由器uboot启动阶段,对路由器的硬件、内存及堆栈进行初始化;
第一校验模块,与所述初始化模块相连,用于检验第一文件系统镜像的信息是否完整;
第一参数设置模块,与所述第一校验模块相连,用于当所述第一校验模块检验所述第一文件系统镜像的信息完整时,设置启动参数中文件系统镜像为第一文件系统镜像;当所述第一校验模块检验所述第一文件系统镜像的信息不完整时,设置启动参数中文件系统镜像为第二文件系统镜像;
第二校验模块,与所述初始化模块相连,用于检验第一内核镜像的信息是否完整;
第二参数设置模块,与所述第二校验模块相连,用于当第二校验模块检验第一内核镜像的信息完整时,设置启动参数中内核镜像为第一内核镜像,当第二校验模块检验第一内核镜像的信息不完整时,设置启动参数中内核镜像为第二内核镜像;
控制模块,分别与所述第一参数设置模块、第二参数设置模块及初始模块相连,用于控制路由器进入内核启动及应用层启动,完成路由器的启动过程。
7.根据权利要求6所述的一种基于双镜像Flash的路由器的启动装置,其特征在于,所述第一校验模块包括:
第一拷贝子模块,用于将路由器Flash中第一文件系统镜像拷贝到内存中;
第一计算子模块,与所述第一拷贝子模块相连,用于计算所述第一文件系统镜像的CRC值;
第一比较子模块,与所述第一计算子模块相连,用于比较所述第一文件系统镜像的CRC值是否与环境变量中预存的文件系统CRC值相同;当所述第一文件系统镜像的CRC值与环境变量中预存的文件系统CRC值相同时,所述第一参数设置模块将路由器启动参数中文件系统的镜像信息部分设置为第一文件系统镜像;当所述第一文件系统镜像的CRC值与环境变量中预存的文件系统CRC值不同时,所述第一参数设置模块将路由器启动参数中文件系统的镜像信息部分设置为第二文件系统镜像。
8.根据权利要求6所述的一种基于双镜像Flash的路由器的启动装置,其特征在于,所述第二校验模块包括:
第二拷贝子模块,用于将路由器Flash中第一内核镜像拷贝到内存中;
第二计算子模块,与所述第二拷贝子模块相连,用于计算所述第一内核镜像的CRC值;
第二比较子模块,与所述第二计算子模块相连,用于比较所述第一内核镜像的CRC值是否与环境变量中预存的内核CRC值相同,当所述第一内核镜像的CRC值与环境变量中预存的内核CRC值相同时,所述第二参数设置模块将路由器启动参数中内核镜像信息部分设置为所述第一内核镜像;当所述第一内核镜像的CRC值与环境变量中预存的内核CRC值不同时,所述第二参数设置模块将路由器启动参数中内核镜像信息部分设置为第二内核镜像。
9.根据权利要求6所述的一种基于双镜像Flash的路由器的启动装置,其特征在于,
所述第一文件系统镜像、第二文件系统镜像、第一内核镜像、第二内核镜像存放于路由器Flash的不同的分区,其中,所述路由器Flash的不同的分区在路由器Flash中对应不同的起始地址。
10.根据权利要求6-9任一项所述的一种基于双镜像Flash的路由器的启动装置,其特征在于,所述控制模块包括:
内核启动子模块,用于根据设置的内核镜像信息,控制所述路由器进入内核启动;
挂载子模块,与所述内核启动子模块相连,用于调用系统函数挂载启动参数中设置的文件系统镜像中的文件系统;
应用层启动子模块,与所述挂载子模块相连,用于根据所述挂载子模块挂载的相应的文件系统信息,控制路由器进入应用层启动,分别开启路由器的不同功能模块,完成路由器的启动。
CN201810119291.4A 2018-02-06 2018-02-06 一种基于双镜像Flash的路由器的启动方法及装置 Pending CN108415733A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810119291.4A CN108415733A (zh) 2018-02-06 2018-02-06 一种基于双镜像Flash的路由器的启动方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810119291.4A CN108415733A (zh) 2018-02-06 2018-02-06 一种基于双镜像Flash的路由器的启动方法及装置

Publications (1)

Publication Number Publication Date
CN108415733A true CN108415733A (zh) 2018-08-17

Family

ID=63127794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810119291.4A Pending CN108415733A (zh) 2018-02-06 2018-02-06 一种基于双镜像Flash的路由器的启动方法及装置

Country Status (1)

Country Link
CN (1) CN108415733A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737481A (zh) * 2019-09-25 2020-01-31 浙江万胜智能科技股份有限公司 基于多重备份引导程序的嵌入式linux操作系统的启动方法
CN112433772A (zh) * 2020-12-10 2021-03-02 福州创实讯联信息技术有限公司 一种嵌入式uboot识别启动文件系统的方法与终端
CN112601075A (zh) * 2020-12-07 2021-04-02 上海商米科技集团股份有限公司 一种基于双镜像的网络摄像机升级故障恢复系统及方法
CN113127262A (zh) * 2020-01-13 2021-07-16 北京地平线机器人技术研发有限公司 镜像文件的生成方法、装置、电子设备及存储介质
CN113721943A (zh) * 2021-09-03 2021-11-30 青岛海信宽带多媒体技术有限公司 一种路由器及镜像自升级方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050005102A1 (en) * 2003-07-03 2005-01-06 Meggitt Adam E. Memory data copying system for devices
CN103677947A (zh) * 2014-01-03 2014-03-26 深圳英飞拓科技股份有限公司 基于linux的设备双系统保护及升级方法
CN107656765A (zh) * 2017-08-31 2018-02-02 深圳英飞拓科技股份有限公司 一种设备初始化的方法、系统及终端设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050005102A1 (en) * 2003-07-03 2005-01-06 Meggitt Adam E. Memory data copying system for devices
CN103677947A (zh) * 2014-01-03 2014-03-26 深圳英飞拓科技股份有限公司 基于linux的设备双系统保护及升级方法
CN107656765A (zh) * 2017-08-31 2018-02-02 深圳英飞拓科技股份有限公司 一种设备初始化的方法、系统及终端设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737481A (zh) * 2019-09-25 2020-01-31 浙江万胜智能科技股份有限公司 基于多重备份引导程序的嵌入式linux操作系统的启动方法
CN113127262A (zh) * 2020-01-13 2021-07-16 北京地平线机器人技术研发有限公司 镜像文件的生成方法、装置、电子设备及存储介质
CN113127262B (zh) * 2020-01-13 2024-05-14 北京地平线机器人技术研发有限公司 镜像文件的生成方法、装置、电子设备及存储介质
CN112601075A (zh) * 2020-12-07 2021-04-02 上海商米科技集团股份有限公司 一种基于双镜像的网络摄像机升级故障恢复系统及方法
CN112601075B (zh) * 2020-12-07 2023-06-20 上海商米科技集团股份有限公司 一种基于双镜像的网络摄像机升级故障恢复系统及方法
CN112433772A (zh) * 2020-12-10 2021-03-02 福州创实讯联信息技术有限公司 一种嵌入式uboot识别启动文件系统的方法与终端
CN113721943A (zh) * 2021-09-03 2021-11-30 青岛海信宽带多媒体技术有限公司 一种路由器及镜像自升级方法

Similar Documents

Publication Publication Date Title
CN108415733A (zh) 一种基于双镜像Flash的路由器的启动方法及装置
US6625754B1 (en) Automatic recovery of a corrupted boot image in a data processing system
CN111049696B (zh) 用于区块链系统的节点管理的方法、节点和计算设备
CN111046110B (zh) 用于区块链系统的节点管理的方法、节点和计算设备
US20050047326A1 (en) System and method for remotely updating a network device
CN106775610A (zh) 一种电子设备启动方法及一种电子设备
CN110007971A (zh) 一种信息处理方法及装置、设备、存储介质
CN109062786A (zh) 测试用例的运行方法、装置及终端
CN108228215A (zh) 终端设备的ota升级包的推送方法及装置
WO2020097814A1 (zh) 一种容器编排引擎的安装方法、装置及电子设备
CN113448844B (zh) 用于回归测试的方法及装置、电子设备
US8072907B2 (en) Method and system to restart IS-IS when LSP wraps
JP2006113754A (ja) ソフトウェア更新装置及び方法
CN109634778A (zh) 一种恢复出厂设置的方法、装置和电子设备
CN112667313B (zh) 进程启动方法、装置及系统
JPWO2016051573A1 (ja) 分散型制御システム用制御機器及びユニット
Cisco System Error Messages
Cisco System Error Messages
Cisco System Error Messages
Cisco System Image, Microcode Image, and Configuration File Load Commands
Cisco System Error Messages Software Release 9.21
Cisco System Error Messages Cisco Internetwork Operating System Release 11.1
Cisco System Error Messages
Cisco Release Notes for Cisco IOS Release 11.2(3) Software Feature Packs---Cisco 2500 Series Routers
Cisco Release Notes for Cisco IOS Release 11.2(3) Software Feature Packs---Cisco 2500 Series Routers

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180817

WD01 Invention patent application deemed withdrawn after publication