1.本发明涉及嵌入式技术领域,尤其涉及一种防死机的系统启动方法、装置、设备及存储介质。
背景技术:2.现有的嵌入式设备(如网关、路由器,组网ap等),为了保证系统稳定性和可靠性,一般都有双备份系统,每一个系统备份包括内核,文件系统,配置等。目前双备份系统只能在升级过程中掉电导致升级固件写入不完整或失败时,保证系统不切换到升级异常的分区,使升级前的分区系统保证设备可以正常工作。对于当前运行系统的内核损坏,文件系统关键数据损坏等还是不能自动切换到备份系统,所以还是会出现死机。
技术实现要素:3.有鉴于此,本发明实施例提供一种防死机的系统启动方法、装置、设备及存储介质,以实现在系统出现异常导致死机故障时,在重启时自动识别并进行修复,快速使设备恢复正常使用。
4.第一方面,本发明实施例提供了一种防死机的系统启动方法,包括:
5.根据用户的开机操作启动系统进入内核引导程序,并由内核引导程序校验第一校验码和第二校验码是否一致;
6.若不一致,则引导进入修复程序,以通过所述修复程序修复系统;
7.生成第一随机码,在修复完成后将所述第一校验码和所述第二校验码替换为所述第一随机码,并重启系统;
8.若一致,则由内核引导系统引导正常启动,并生成第二随机码,将所述第一校验码替换为所述第二随机码;
9.在系统正常启动成功后,将所述第二校验码替换为所述第二随机码。
10.可选的,在一些实施例中,所述根据用户的开机操作启动系统进入内核引导程序之前,还包括:
11.烧录入修复程序,并预先设置相同的第一校验码和第二校验码。
12.可选的,在一些实施例中,所述通过所述修复程序修复系统包括:
13.调用预设的备份系统以覆盖的方式对当前系统进行更新。
14.可选的,在一些实施例中,所述通过所述修复程序修复系统包括:
15.启动httpd服务,以通过预设的页面获取系统固件,基于所述系统固件对当前系统进行更新。
16.第二方面,本发明实施例还提供了一种防死机的系统启动装置,包括:
17.校验码比对模块,用于根据用户的开机操作启动系统进入内核引导程序,并由内核引导程序校验第一校验码和第二校验码是否一致;
18.修复模块,用于若不一致,则引导进入修复程序,以通过所述修复程序修复系统;
19.重启模块,用于生成第一随机码,在修复完成后将所述第一校验码和所述第二校验码替换为所述第一随机码,并重启系统;
20.正常启动模块,用于若一致,则由内核引导系统引导正常启动,并生成第二随机码,将所述第一校验码替换为所述第二随机码。
21.可选的,在一些实施例中,防死机的系统启动装置还包括:
22.烧录模块,用于烧录入修复程序,并预先设置相同的第一校验码和第二校验码。
23.可选的,在一些实施例中,防死机的系统启动装置还包括:
24.所述修复模块,用于调用预设的备份系统以覆盖的方式对当前系统进行更新。
25.可选的,在一些实施例中:
26.所述修复模块,用于启动httpd服务,以通过预设的页面获取系统固件,基于所述系统固件对当前系统进行更新。
27.第三方面,本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明任一实施例提供的防死机的系统启动方法。
28.第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被执行时实现如本发明任一实施例提供的防死机的系统启动方法。
29.本发明实施例提供的技术方案,根据系统是否成功正常启动或正常修复调整第一校验码和第二校验码,以通过第一校验码和第二校验码是否一致标志是否出现启动异常,使得用户在系统出现异常重启时,系统能够自动识别异常并启动修复程序进行修复,有效地避免了系统进入死机循环,并且无需用户手动进行复杂的操作完成系统修复,优化了用户的使用体验。
附图说明
30.图1是本发明实施例一中的防死机的系统启动方法的流程图;
31.图2是本发明实施例二中的另一种防死机的系统启动方法的流程图;
32.图3是本发明实施例三中的防死机的系统启动装置的结构示意图;
33.图4是本发明实施例三中的另一种防死机的系统启动装置的结构示意图;
34.图5是本发明实施例四中的电子设备示意图。
具体实施方式
35.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
36.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
37.此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一速度差值为第二速度差值,且类似地,可将第二速度差值称为第一速度差值。第一应用和第二应用两者都是应用,但其不是同一应用。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。需要说明的是,当部被称为“固定于”另一个部,它可以直接在另一个部上也可以存在居中的部。当一个部被认为是“连接”到另一个部,它可以是直接连接到另一个部或者可能同时存在居中部。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述,只是为了说明的目的,并不表示是唯一的实施方式。
38.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
39.实施例一
40.图1为本发明实施例一提供的一种防死机的系统启动方法的流程图,本实施例适用于各种具备操作系统的电子设备尤指嵌入式设备,例如具备嵌入式系统的网关设备,该方法能够在用户开启设备是自动检测是否存在启动异常,以在出现死机异常时修复系统,无需用户完成特殊的恢复操作。具体的,如图1所示该方法包括如下步骤:
41.s110、根据用户的开机操作启动系统进入内核引导程序,并由内核引导程序校验第一校验码和第二校验码是否一致。
42.本实施例中,电子设备上设置有用于开机的开机按键,开机操作即用户触发开机按键的操作。本实施例中系统所指的是嵌入式系统中的操作系统,主流的嵌入式操作系统有windows ce、palm:os、linux、vxworks等,本实施例中优选的为基于linux的嵌入式操作系统,该系统在启动时按照预设的顺序逐步完成上电启动,其首先启动的是内核引导程序,由内核引导程序拉起内核(boot)、init进程等一系列程序,这也是正常启动的方式。与正常启动方式不同的是,本实施例中在进入内核引导程序率先进行的是校验码验证:本实施例所提供的电子设备中预先设置有两种校验码,分别为第一校验码和第二校验码,第一校验码和第二校验码在初始时是一样的,随着系统的启动二者会改变,对于正常启动成功的情况,第一校验码和第二校验码会更新为同一个值,对于正常启动失败的情况,二者只有一个会发生更新,也即在系统出现故障导致正常启动失败时会导致两个校验码不一致,本实施例据此判断是否需要进行系统修复。
43.s120、若不一致,则引导进入修复程序,以通过所述修复程序修复系统。
44.修复程序也即recovery程序,是预先烧录进系统中用于对系统进行修复的程序,其能够启动系统恢复过程恢复损坏的系统,针对不同的操作系统,修复程序也有所不同,例如对于存储空间较大且长期处于离网状态的电子设备,其修复程序通常是启动一个正常操
作系统对应的镜像操作系统来完成修复,而对于存储空间较小且能够联网的电子设备,其修复程序通常是联网远程获取一个正常的镜像操作系统来进行远程修复,此处不作限制。
45.s130、生成第一随机码,在修复完成后将所述第一校验码和所述第二校验码替换为所述第一随机码,并重启系统。
46.第一随机码能够在修复完成前生成也能够在修复完成后生成,但是将第一校验码和第二校验码替换为第一随机码必须在修复完成后,这是因为将第一校验码和第二校验码同步替换是为了在修复完成后能够进入正常启动流程,而修复程序也是有可能出现故障的,若是在修复程序修复完成前就进行两个校验码的同步替换会出现修复失败也进入正常启动的情况。更具体的,在一些实施例中,第一校验码和第二校验码也能够分开进行替换,即在修复完成前先完成其中一个(例如第一校验码)的替换,在修复完成后再完成另一个(对应为第二校验码)的替换,这样即使修复失败,下次启动也会再次判断两个校验码不同从而再次进行修复。
47.s140、若一致,则由内核引导系统引导正常启动,并生成第二随机码,将所述第一校验码替换为所述第二随机码。
48.第二随机码和第一随机码相同,都是一个随机生成的标识码,二者可以是同一个随机值也可以是不同的随机值(二者实际能够是由同一个程序生成也能够由不同的程序生成),二者能够采用相同的随机算法生成,也能够采用不同的随机算法生成,对于采用不同算法生成的随机码,还能够根据随机码反推系统启动过程中是否进行过修复,当判断第一校验码和第二校验码一致时,说明系统未出现启动失败的情况,因此此次启动不需要进行修复,按照执行正常启动的过程即可。应当明确的是,第二随机值的生成可以在正常启动之前,也可以在正常启动之后,在一些实施例中,第一随机值和第二随机值实际是同一个随机值,此时第一随机值和第二随机值是为了区分两种情况生成的随机值而非表示是由两个不同的程序生成的随机值。
49.s150、在系统正常启动成功后,将所述第二校验码替换为所述第二随机码。
50.本实施例中,在系统正常启动成功后同样会将第一校验码更新为第二随机码,也就是说在系统正常启动后通过统一第一校验码和第二校验码表示启动未出现问题,即在系统正常启动失败时,两个校验码中有一个会被替换出现不一致的情况,简单而言就是第一校验码和第二校验码其中的一个在正常启动之前就会被替换第二随机码,另一个只有在正常启动成功后才会被替换为第二随机码。
51.以一个具体示例说明本实施例提供的防死机的系统启动方法:系统中预先烧录有recovery程序和一个用于生成随机码的小程序,内置有引导码和系统码,引导码和系统码的初始值都为a,在未出现死机异常时其启动过程为:内核引导程序启动,校验引导码和系统码是否一致,二者都是a,一致,则生成随机码b,将引导码替换为b,并进入正常启动,正常启动有两种情况,在正常启动成功后,系统码会被替换为b,在正常启动失败后,则系统码仍然为a,此时用户发现启动异常(开不了机),手动关机重启,内核引导程序再次启动,校验引导码和系统码是否一致,此时一个为a,另一个为b,不一致,则随机生成随机码c,将引导码替换为c,并启动recovery程序,recovery程序修复系统,在修复完毕后将系统码替换为c,并自动重启系统,内核引导程序第三次启动,此时引导码和系统码都为c,通过验证后执行正常启动程序,故障已经被修复。
52.本发明实施例一提供了一种防死机的系统启动方法,根据系统是否成功正常启动或正常修复调整第一校验码和第二校验码,以通过第一校验码和第二校验码是否一致标志是否出现启动异常,使得用户在系统出现异常重启时,系统能够自动识别异常并启动修复程序进行修复,有效地避免了系统进入死机循环,并且无需用户手动进行复杂的操作完成系统修复,优化了用户的使用体验。
53.实施例二
54.本发明实施例二在实施例一的基础上对部分内容作了更详细的解释和补充,例如根据终端连接信息中的终端识别信息和无线信号强度判断是否满足开锁条件的过程,以及,具体包括:
55.如图2所示,在根据用户的开机操作启动系统进入内核引导程序这一步骤之前,还包括步骤s210:
56.s210、烧录入修复程序,并预先设置相同的第一校验码和第二校验码。
57.修复程序在嵌入式设备生产时就已经烧录进存储器,并且在系统中设置好相同的第一校验码和第二校验码,这样系统在初次启动时就会按照正常启动的流程完成启动。应当理解的是,本实施例中修复程序应当包括能够实现修复系统的完整文件,例如对于需要镜像系统进行修复的修复程序,应当将镜像系统一同烧录,此处不再一一举例。
58.s220、根据用户的开机操作启动系统进入内核引导程序,并由内核引导程序校验第一校验码和第二校验码是否一致;
59.s230、若不一致,则引导进入修复程序,以通过所述修复程序修复系统;
60.s240、生成第一随机码,在修复完成后将所述第一校验码和所述第二校验码替换为所述第一随机码,并重启系统;
61.s250、若一致,则由内核引导系统引导正常启动,并生成第二随机码,将所述第一校验码替换为所述第二随机码;
62.s260、在系统正常启动成功后,将所述第二校验码替换为所述第二随机码。
63.更具体的,在一些实施例中,如图3所示,步骤s230中通过修复程序修复系统分为两种情况:
64.第一种为在设备中预先设置有备份系统的修复方式,在修复时,修复程序会调用预设的备份系统以覆盖的方式对当前系统进行更新,使用备份系统对原系统进行替换修复,以修复原系统中故障的部分。但是这种修复方式备份系统在设备中占据了较大的存储空间,在嵌入式设备中往往不具备大容量的存储空间,因此其不作为最优选择。
65.第二种为针对能够联网的设备使用的联网更新方式:
66.修复程序启动httpd服务,以通过预设的页面获取系统固件,基于所述系统固件对当前系统进行更新。该方式针对能够联网的设备可以在系统无法启动的情况下使用一个单独设置的修复系统联网获取数据,该修复系统仅用于通过httpd服务拉取系统固件,对于设备的存储空间要求小,该方式对于能够联网的嵌入式设备例如网关设备为优选方案。
67.本实施例在前述实施例的基础上提供了防死机的系统启动方法,其进一步提供了通过修复程序在不同设备中的修复方案,能够根据实际需求自行设置。
68.实施例三
69.图3所示为本发明实施例三提供的一种基于无线网络的开锁装置300的结构示意
图,该基于无线网络的开锁装置300的具体结构如下:
70.校验码比对模块310,用于根据用户的开机操作启动系统进入内核引导程序,并由内核引导程序校验第一校验码和第二校验码是否一致;
71.修复模块320,用于若不一致,则引导进入修复程序,以通过所述修复程序修复系统;
72.重启模块330,用于生成第一随机码,在修复完成后将所述第一校验码和所述第二校验码替换为所述第一随机码,并重启系统;
73.正常启动模块340,用于若一致,则由内核引导系统引导正常启动,并生成第二随机码,将所述第一校验码替换为所述第二随机码;
74.成功校验模块350,用于在系统正常启动成功后,将所述第二校验码替换为所述第二随机码。
75.可选的,在一些实施例中,如图4所示防死机的系统启动装置300还包括:
76.烧录模块360,用于烧录入修复程序,并预先设置相同的第一校验码和第二校验码。
77.可选的,在一些实施例中,所述修复模块320,具体用于调用预设的备份系统以覆盖的方式对当前系统进行更新,和/或,启动httpd服务,以通过预设的页面获取系统固件,基于所述系统固件对当前系统进行更新。
78.本发明实施例所提供了一种防死机的系统启动装置,根据系统是否成功正常启动或正常修复调整第一校验码和第二校验码,以通过第一校验码和第二校验码是否一致标志是否出现启动异常,使得用户在系统出现异常重启时,系统能够自动识别异常并启动修复程序进行修复,有效地避免了系统进入死机循环,并且无需用户手动进行复杂的操作完成系统修复,优化了用户的使用体验。
79.实施例四
80.图5为本发明实施例四提供的一种电子设备400的结构示意图,如图5所示,该种电子设备包括存储器410、处理器420,电子设备中处理器420的数量可以是一个或多个,图5中以一个处理器420为例;电子设备中的存储器410、处理器420可以通过总线或其他方式连接,图5中以通过总线连接为例。
81.总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
82.电子设备400典型地包括多种计算机可读存储介质。这些介质可以是任何能够被电子设备400访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
83.存储器410可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)和/或高速缓存存储器。电子设备400可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储器410可以用于读写不可移动的、非易失性磁介质。可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器410可以
包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
84.存储器410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
85.所述处理器420用于运行存储在存储器410中的计算机可执行程序,以实现如下步骤:步骤110、根据用户的开机操作启动系统进入内核引导程序,并由内核引导程序校验第一校验码和第二校验码是否一致;步骤120、若不一致,则引导进入修复程序,以通过所述修复程序修复系统;步骤130、生成第一随机码,在修复完成后将所述第一校验码和所述第二校验码替换为所述第一随机码,并重启系统;步骤140、若一致,则由内核引导系统引导正常启动,并生成第二随机码,将所述第一校验码替换为所述第二随机码;步骤150、在系统正常启动成功后,将所述第二校验码替换为所述第二随机码。
86.当然,本发明实施例所提供的一种电子设备,该电子设备不限于执行如上所述的方法操作,还可以执行本发明实施例任意实施例所提供的防死机的系统启动方法中的相关操作。
87.上述设备可执行本发明任意实施例所提供的防死机的系统启动方法,具备执行方法相应的功能模块和有益效果。
88.实施例五
89.本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种防死机的系统启动方法,该防死机的系统启动方法包括:
90.根据用户的开机操作启动系统进入内核引导程序,并由内核引导程序校验第一校验码和第二校验码是否一致;
91.若不一致,则引导进入修复程序,以通过所述修复程序修复系统;
92.生成第一随机码,在修复完成后将所述第一校验码和所述第二校验码替换为所述第一随机码,并重启系统;
93.若一致,则由内核引导系统引导正常启动,并生成第二随机码,将所述第一校验码替换为所述第二随机码;
94.在系统正常启动成功后,将所述第二校验码替换为所述第二随机码。
95.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述的方法。
96.值得注意的是,上述基于无线网络的开锁装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
97.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。