控制器的系统启动方法及装置与流程

文档序号:12662188阅读:282来源:国知局
控制器的系统启动方法及装置与流程

本发明涉及油气生产自动控制领域,特别涉及一种控制器的系统启动方法及装置。



背景技术:

随着油气生产自动控制技术的快速发展,在如今的油气生产过程中,人们可以通过控制器对生产现场的电机进行控制,以及对生产现场的各个设备进行信号采集,从而实现油气生产现场的远程测控。控制器中通常安装有用于管理和控制资源的系统,其中包括用于保证控制器基本运行的操作系统,以及用于管理和存储文件信息的文件系统,通过系统的正常启动,可以保证控制器的稳定运行,进而实现控制器的远程测控功能。

通常当控制器启动系统时,如果控制器的存储装置中用于存储系统启动信息的模块发生坏块,则会导致控制器启动系统时无法调用系统启动信息,从而使系统无法正常启动,因此,亟需一种方法,可以使控制器的系统正常启动。



技术实现要素:

为了解决控制器的存储装置中用于存储系统启动信息的模块发生坏块而导致的控制器系统无法正常启动的问题,本发明实施例提供了一种控制器的系统启动方法及装置。所述技术方案如下:

一方面,提供了一种控制器的系统启动方法,所述方法包括:

当检测到系统启动指令时,从存储的环境变量中获取第一存储地址和第二存储地址,所述第一存储地址为启动操作系统所需数据的存储地址,所述第二存储地址为启动文件系统所需数据的存储地址;

基于所述第一存储地址,获取第一操作系统的数据,以及基于所述第二存储地址,获取第一文件系统的数据;

基于所述第一操作系统的数据,对所述第一操作系统进行校验,基于所述第一文件系统的数据,对所述第一文件系统进行校验;

当所述第一操作系统和所述第一文件系统均校验成功时,启动所述第一操作系统和所述第一文件系统。

可选地,所述基于所述第一操作系统的数据,对所述第一操作系统进行校验,基于所述第一文件系统的数据,对所述第一文件系统进行校验,包括:

获取第一预设验证码和第二预设验证码,所述第一预设验证码为对所述第一操作系统预先设置的验证码,所述第二预设验证码为对所述第一文件系统预先设置的验证码;

对所述第一操作系统的数据进行完整性计算,得到第一计算验证码,对所述第一文件系统的数据进行完整性计算,得到第二计算验证码;

将所述第一计算验证码与所述第一预设验证码进行对比,以及将所述第二计算验证码与所述第二预设验证码进行对比;

当所述第一计算验证码与所述第一预设验证码一致时,确定所述第一操作系统校验成功,当所述第二计算验证码与所述第二预设验证码一致时,确定所述第一文件系统校验成功。

可选地,所述基于所述第一操作系统的数据,对所述第一操作系统进行校验,基于所述第一文件系统的数据,对所述第一文件系统进行校验之后,还包括:

当所述第一操作系统校验失败且所述第一操作系统不为镜像操作系统时,获取第二操作系统的数据,所述第二操作系统是对所述第一操作系统进行镜像得到;基于所述第二操作系统的数据,对所述第二操作系统进行校验;当所述第二操作系统校验成功且所述第一文件系统校验成功时,启动所述第二操作系统和所述第一文件系统;或者,

当所述第一文件系统校验失败且所述第一文件系统不为镜像文件系统时,获取第二文件系统的数据,所述第二文件系统是对所述第一文件系统进行镜像得到;基于所述第二文件系统的数据,对所述第二文件系统进行校验;当所述第一操作系统校验成功且所述第二文件系统校验成功时,启动所述第一操作系统和所述第二文件系统。

可选地,所述基于所述第一操作系统的数据,对所述第一操作系统进行校验,基于所述第一文件系统的数据,对所述第一文件系统进行校验之后,还包括:

当所述第一操作系统和所述第一文件系统均校验失败时,判断所述第一操作系统是否为镜像操作系统,以及判断所述第一文件系统是否为镜像文件系统;

当所述第一操作系统不为镜像操作系统时,获取第二操作系统的数据,基于所述第二操作系统的数据,对所述第二操作系统进行校验;

当所述第一文件系统不为镜像文件系统时,获取第二文件系统的数据,基于所述第二文件系统的数据,对所述第二文件系统进行校验;

当所述第二操作系统和所述第二文件系统均校验成功时,启动所述第二操作系统和所述第二文件系统。

可选地,所述方法还包括:

当所述第一操作系统校验失败且所述第二操作系统校验成功时,将所述环境变量中包括的所述第一存储地址替换为启动所述第二操作系统所需数据的存储地址;

当所述第一文件系统校验失败且所述第二文件系统校验成功时,将所述环境变量中包括的所述第二存储地址替换为启动所述第二文件系统所需数据的存储地址。

另一方面,提供了一种控制器的系统启动装置,所述装置包括:

第一获取模块,用于当检测到系统启动指令时,从存储的环境变量中获取第一存储地址和第二存储地址,所述第一存储地址为启动操作系统所需数据的存储地址,所述第二存储地址为启动文件系统所需数据的存储地址;

第二获取模块,用于基于所述第一存储地址,获取第一操作系统的数据,以及基于所述第二存储地址,获取第一文件系统的数据;

校验模块,用于基于所述第一操作系统的数据,对所述第一操作系统进行校验,基于所述第一文件系统的数据,对所述第一文件系统进行校验;

第一启动模块,用于当所述第一操作系统和所述第一文件系统均校验成功时,启动所述第一操作系统和所述第一文件系统。

可选地,所述校验模块包括:

获取单元,用于获取第一预设验证码和第二预设验证码,所述第一预设验证码为对所述第一操作系统预先设置的验证码,所述第二预设验证码为对所述第一文件系统预先设置的验证码;

计算单元,用于对所述第一操作系统的数据进行完整性计算,得到第一计算验证码,对所述第一文件系统的数据进行完整性计算,得到第二计算验证码;

对比单元,用于将所述第一计算验证码与所述第一预设验证码进行对比,以及将所述第二计算验证码与所述第二预设验证码进行对比;

确定单元,用于当所述第一计算验证码与所述第一预设验证码一致时,确定所述第一操作系统校验成功,当所述第二计算验证码与所述第二预设验证码一致时,确定所述第一文件系统校验成功。

可选地,所述装置还包括:

第二启动模块,用于当所述第一操作系统校验失败且所述第一操作系统不为镜像操作系统时,获取第二操作系统的数据,所述第二操作系统是对所述第一操作系统进行镜像得到;基于所述第二操作系统的数据,对所述第二操作系统进行校验;当所述第二操作系统校验成功且所述第一文件系统校验成功时,启动所述第二操作系统和所述第一文件系统;或者,

第三启动模块,用于当所述第一文件系统校验失败且所述第一文件系统不为镜像文件系统时,获取第二文件系统的数据,所述第二文件系统是对所述第一文件系统进行镜像得到;基于所述第二文件系统的数据,对所述第二文件系统进行校验;当所述第一操作系统校验成功且所述第二文件系统校验成功时,启动所述第一操作系统和所述第二文件系统。

可选地,所述装置还包括:

判断模块,用于当所述第一操作系统和所述第一文件系统均校验失败时,判断所述第一操作系统是否为镜像操作系统,以及判断所述第一文件系统是否为镜像文件系统;

第三获取模块,用于当所述第一操作系统不为镜像操作系统时,获取第二操作系统的数据,基于所述第二操作系统的数据,对所述第二操作系统进行校验;

第四获取模块,用于当所述第一文件系统不为镜像文件系统时,获取第二文件系统的数据,基于所述第二文件系统的数据,对所述第二文件系统进行校验;

第四启动模块,用于当所述第二操作系统和所述第二文件系统均校验成功时,启动所述第二操作系统和所述第二文件系统。

可选地,所述装置还包括:

第一替换模块,用于当所述第一操作系统校验失败且所述第二操作系统校验成功时,将所述环境变量中包括的所述第一存储地址替换为启动所述第二操作系统所需数据的存储地址;

第二替换模块,用于当所述第一文件系统校验失败且所述第二文件系统校验成功时,将所述环境变量中包括的所述第二存储地址替换为启动所述第二文件系统所需数据的存储地址。

本发明实施例提供的技术方案带来的有益效果是:在本发明实施例中,当控制器检测到系统启动指令时,可以从存储的环境变量中获取第一存储地址和第二存储地址,也即是获取启动操作系统所需数据的存储地址和启动文件系统所需数据的存储地址,然后基于第一存储地址,获取第一操作系统的数据,以及基于第二存储地址,获取第一文件系统的数据,进而可以对第一操作系统和第一文件系统进行校验,当第一操作系统和第一文件系统均校验成功时,说明第一操作系统和第一文件系统的存储模块均未发生坏块,从而第一操作系统和第一文件系统可以正常启动,进而保证控制器的稳定运行。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种控制器的系统启动方法的流程图;

图2A是本发明实施例提供的另一种控制器的系统启动方法的流程图;

图2B是本发明实施例提供的一种控制器存储装置的分区示意图;

图3A是本发明实施例提供的一种控制器的系统启动装置的框图;

图3B是本发明实施例提供的校验模块的框图;

图3C是本发明实施例提供的另一种控制器的系统启动装置的框图;

图3D是本发明实施例提供的第三种控制器的系统启动装置的框图;

图3E是本发明实施例提供的第四种控制器的系统启动装置的框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种控制器的系统启动方法,参见图1,该方法包括:

步骤101:当检测到系统启动指令时,从存储的环境变量中获取第一存储地址和第二存储地址,第一存储地址为启动操作系统所需数据的存储地址,第二存储地址为启动文件系统所需数据的存储地址。

步骤102:基于第一存储地址,获取第一操作系统的数据,以及基于第二存储地址,获取第一文件系统的数据。

步骤103:基于第一操作系统的数据,对第一操作系统进行校验,基于第一文件系统的数据,对第一文件系统进行校验。

步骤104:当第一操作系统和第一文件系统均校验成功时,启动第一操作系统和第一文件系统。

在本发明实施例中,当控制器检测到系统启动指令时,可以从存储的环境变量中获取第一存储地址和第二存储地址,也即是获取启动操作系统所需数据的存储地址和启动文件系统所需数据的存储地址,然后基于第一存储地址,获取第一操作系统的数据,以及基于第二存储地址,获取第一文件系统的数据,进而可以对第一操作系统和第一文件系统进行校验,当第一操作系统和第一文件系统均校验成功时,说明第一操作系统和第一文件系统的存储模块均未发生坏块,从而第一操作系统和第一文件系统可以正常启动,进而保证控制器的稳定运行。

可选地,基于第一操作系统的数据,对第一操作系统进行校验,基于第一文件系统的数据,对第一文件系统进行校验,包括:

获取第一预设验证码和第二预设验证码,第一预设验证码为对第一操作系统预先设置的验证码,第二预设验证码为对第一文件系统预先设置的验证码;

对第一操作系统的数据进行完整性计算,得到第一计算验证码,对第一文件系统的数据进行完整性计算,得到第二计算验证码;

将第一计算验证码与第一预设验证码进行对比,以及将第二计算验证码与第二预设验证码进行对比;

当第一计算验证码与第一预设验证码一致时,确定第一操作系统校验成功,当第二计算验证码与第二预设验证码一致时,确定第一文件系统校验成功。

可选地,基于第一操作系统的数据,对第一操作系统进行校验,基于第一文件系统的数据,对第一文件系统进行校验之后,还包括:

当第一操作系统校验失败且第一操作系统不为镜像操作系统时,获取第二操作系统的数据,第二操作系统是对第一操作系统进行镜像得到;基于第二操作系统的数据,对第二操作系统进行校验;当第二操作系统校验成功且第一文件系统校验成功时,启动第二操作系统和第一文件系统;或者,

当第一文件系统校验失败且第一文件系统不为镜像文件系统时,获取第二文件系统的数据,第二文件系统是对第一文件系统进行镜像得到;基于第二文件系统的数据,对第二文件系统进行校验;当第一操作系统校验成功且第二文件系统校验成功时,启动第一操作系统和第二文件系统。

可选地,基于第一操作系统的数据,对第一操作系统进行校验,基于第一文件系统的数据,对第一文件系统进行校验之后,还包括:

当第一操作系统和第一文件系统均校验失败时,判断第一操作系统是否为镜像操作系统,以及判断第一文件系统是否为镜像文件系统;

当第一操作系统不为镜像操作系统时,获取第二操作系统的数据,基于第二操作系统的数据,对第二操作系统进行校验;

当第一文件系统不为镜像文件系统时,获取第二文件系统的数据,基于第二文件系统的数据,对第二文件系统进行校验;

当第二操作系统和第二文件系统均校验成功时,启动第二操作系统和第二文件系统。

可选地,该方法还包括:

当第一操作系统校验失败且第二操作系统校验成功时,将环境变量中包括的第一存储地址替换为启动第二操作系统所需数据的存储地址;

当第一文件系统校验失败且第二文件系统校验成功时,将环境变量中包括的第二存储地址替换为启动第二文件系统所需数据的存储地址。

上述所有可选技术方案,均可按照任意结合形成本公开的可选实施例,本发明实施例对此不再一一赘述。

本发明实施例提供了一种控制器的系统启动方法,参见图2A,该方法包括:

步骤201:当检测到系统启动指令时,从存储的环境变量中获取第一存储地址和第二存储地址,第一存储地址为启动操作系统所需数据的存储地址,第二存储地址为启动文件系统所需数据的存储地址。

需要说明的是,该环境变量包括控制器的系统运行环境的多个参数,比如系统数据的存储地址、应用安装路径等,因此,当控制器检测到系统启动指令时,可以从存储的环境变量中获取第一存储地址和第二存储地址。

另外,该系统启动指令用于启动控制器的操作系统和文件系统,且该系统启动指令可以由用户通过按压控制器的开关按钮触发。

再者,油气生产的工作人员可以事先通过与控制器连接的终端,将控制器运行所需的程序、对控制器当前的操作系统进行镜像得到的镜像操作系统、对控制器当前的文件系统进行镜像得到的镜像文件系统等存储在控制器中,当控制器出厂时自带的操作系统和文件系统发生故障而无法正常启动时,可以通过镜像操作系统和镜像文件系统使控制器正常启动。当然,在实际应用中,当控制器在启动之前已经与工作人员的终端连接时,工作人员还可以在打开控制器启动开关之后触发中断系统启动的操作,从而通过连接控制器的终端,手动选择启动控制器出厂自带的操作系统和文件系统,或者镜像操作系统和镜像文件系统。当在预设时长内未检测到中断系统启动的操作时,控制器将自动按照环境变量中的第一存储地址和第二存储地址启动操作系统和文件系统。

此外,在实际应用中,工作人员可以对控制器的存储装置进行分区,并将控制器出厂时自带的操作系统、镜像操作系统、出厂时自带的文件系统和镜像文件系统分别存储在存储装置的不同区域,从而当控制器出厂时自带的操作系统和文件系统的数据所在的区域发生坏块时,控制器可以通过镜像操作系统和镜像文件系统,从而启动控制器。

比如,当控制器的存储装置为NAND Flash(NAND型闪速存储器)时,工作人员可以对NAND Flash进行分区,分区结果如图2B所示,其中,第一区域的大小可以为256KB(千字节),用于存储BPS(Board Support Package,板级支持包),该BPS中包括本发明实施例提供的系统启动方法所对应的程序,第二区域的大小可以为128KB,用于存储环境变量,第三区域的大小可以为2MB(兆字节),用于存储控制器出厂自带的操作系统数据,第四区域的大小可以为2MB,用于存储镜像操作系统数据,第五区域的大小可以为10MB,用于存储控制器出厂自带的文件系统数据,第六区域的大小可以为10MB,用于存储镜像文件系统数据,剩余空间为第七区域,用于存储应用和应用数据等其他数据。在实际应用中,控制器的存储装置可以为NAND Flash,当然,也可以为NOR Flash(NOR型闪速存储器)等其他存储装置。

对于控制器的每次启动,当控制器本次启动的操作系统和文件系统与上次启动的操作系统和文件系统不一致时,说明上次启动的操作系统和文件系统存在故障,此时控制器会将环境变量中包括的第一存储地址替换为本次启动操作系统所需数据的存储地址,将环境变量中包括的第二存储地址替换为本次启动文件系统所需数据的存储地址,也即是第一存储地址对应的操作系统是控制器在当前时间之前最近一次能够正常启动的操作系统,第二存储地址对应的文件系统是控制器在当前时间之前最近一次能够正常启动的文件系统,从而可以使控制器下一次启动时,能够直接对第一存储地址对应的操作系统和第二存储地址对应的文件系统进行校验,而无需对之前已经确定存在故障的操作系统和文件系统进行校验,从而节约了控制器的启动时间,提高了控制器的启动效率。

对于控制器的每次启动,由于控制器启动的操作系统可以为出厂时自带的操作系统,也可以为镜像操作系统,因此该第一存储地址对应的数据可以为启动出厂时自带的操作系统所需的数据,也可以为启动镜像操作系统所需的数据,同样地,由于控制器启动的文件系统可以为出厂时自带的文件系统,也可以为镜像文件系统,因此该第二存储地址对应的数据可以为启动出厂时自带的文件系统所需的数据,也可以为启动镜像文件系统所需的数据。

步骤202:基于第一存储地址,获取第一操作系统的数据,以及基于第二存储地址,获取第一文件系统的数据。

由于第一存储地址为启动操作系统所需数据的存储地址,相应地,该第一操作系统的数据为启动操作系统所需数据,同样地,由于第二存储地址为启动文件系统所需数据的存储地址,相应地,该第一文件系统的数据为启动文件系统所需数据。

步骤203:获取第一预设验证码和第二预设验证码,该第一预设验证码为对第一操作系统预先设置的验证码,该第二预设验证码为对第一文件系统预先设置的验证码。

其中,控制器可以从启动操作系统所需数据中获取第一预设验证码,从启动文件系统所需数据中获取第二预设验证码,该第一预设验证码为对控制器能够正常启动的操作系统数据进行完整性计算后得到并存储在本地的验证码,该第二预设验证码为对控制器能够正常启动的文件系统数据进行完整性计算后得到并存储在本地的验证码。

需要说明的是,在实际应用中,对操作系统数据和文件系统数据的完整性计算可以通过MD5(Message Digest Algorithm 5,信息摘要算法第五版)、SHA(Secure Hash Algorithm,安全哈希算法)等完整性算法实现,得到的第一预设验证码和第二预设验证码均可以为一个字符串。

步骤204:对第一操作系统的数据进行完整性计算,得到第一计算验证码,对第一文件系统的数据进行完整性计算,得到第二计算验证码。

控制器通过存储的完整性算法对第一操作系统的数据进行完整性计算,可以得到第一计算验证码,对第一文件系统的数据进行完整性计算,可以得到第二计算验证码。

步骤205:将第一计算验证码与第一预设验证码进行对比,以及将第二计算验证码与第二预设验证码进行对比。

如果当前第一操作系统的数据具备完整性,则通过完整性计算得到的第一计算验证码与第一预设验证码一致,如果当前第一操作系统的数据不具备完整性,则通过完整性计算得到的第一计算验证码与第一预设验证码不一致。同样地,如果当前第一文件系统的数据具备完整性,则通过完整性计算得到的第二计算验证码与第二预设验证码一致,如果当前第一文件系统的数据不具备完整性,则通过完整性计算得到的第二计算验证码与第二预设验证码不一致。

步骤206:当第一计算验证码与第一预设验证码一致时,确定第一操作系统校验成功,当第二计算验证码与第二预设验证码一致时,确定第一文件系统校验成功。

当第一计算验证码与第一预设验证码不一致时,确定第一操作系统校验失败,当第二计算验证码与第二预设验证码不一致时,确定第一文件系统校验失败。

至此,控制器可以通过上述步骤203至步骤206,实现基于第一操作系统的数据,对第一操作系统进行校验,基于第一文件系统的数据,对第一文件系统进行校验的过程。

步骤207:当第一操作系统和第一文件系统均校验成功时,启动第一操作系统和第一文件系统。

当第一操作系统校验成功时,可以确定第一操作系统能够正常启动,当第一文件系统校验成功时,可以确定第一文件系统能够正常启动,从而控制器可以启动第一操作系统和第一文件系统,进而稳定运行。

进一步地,在对第一操作系统和第一文件系统进行校验之后,控制器还可以执行下述步骤(1)、步骤(2)和步骤(3)中的任一步骤,包括:

步骤(1):当第一操作系统校验失败且第一操作系统不为镜像操作系统时,获取第二操作系统的数据,第二操作系统是对第一操作系统进行镜像得到;基于第二操作系统的数据,对第二操作系统进行校验;当第二操作系统校验成功且第一文件系统校验成功时,启动第二操作系统和第一文件系统。

当第一操作系统校验失败且第一操作系统不为镜像操作系统时,也即是控制器出厂自带的操作系统出现故障时,可以启动第二操作系统,也即镜像操作系统,从而启动控制器。在启动镜像操作系统之前,同样需要对镜像操作系统进行校验,当镜像操作系统校验成功时,说明镜像操作系统能够正常启动。

另外,当第一操作系统校验失败且第二操作系统也校验失败时,也即是控制器出厂自带的操作系统和镜像操作系统均出现故障时,控制器可以进行警报提示,比如使警报LED(Light Emitting Diode,发光二极管)灯闪烁、显示警报提示窗口等,进而工作人员在查看到警报提示后可以对控制器进行检修。

再者,当第一操作系统校验失败且第一操作系统为镜像操作系统时,说明控制器出厂自带的操作系统在当前时间之前已经被校验出存在故障,且第一存储地址已被替换为启动镜像操作系统所需数据的存储地址,而当前控制器中出厂自带的操作系统和镜像操作系统均出现故障,即使文件系统正常,控制器也无法正常启动,因此控制器可以直接进行警报提示。

步骤(2):当第一文件系统校验失败且第一文件系统不为镜像文件系统时,获取第二文件系统的数据,第二文件系统是对第一文件系统进行镜像得到;基于第二文件系统的数据,对第二文件系统进行校验;当第一操作系统校验成功且第二文件系统校验成功时,启动第一操作系统和第二文件系统。

当第一文件系统校验失败且第一文件系统不为镜像文件系统时,也即是控制器出厂自带的文件系统出现故障时,可以启动第二文件系统,也即镜像文件系统,从而启动控制器。在启动镜像文件系统之前,同样需要对镜像文件系统进行校验,当镜像文件系统校验成功时,说明镜像文件系统能够正常启动。

另外,当第一文件系统校验失败且第二文件系统也校验失败时,也即是控制器出厂自带的文件系统和镜像文件系统均出现故障时,控制器可以进行警报提示,比如使警报LED(Light Emitting Diode,发光二极管)灯闪烁、显示警报提示窗口等,进而工作人员在查看到警报提示后可以对控制器进行检修。

再者,当第一文件系统校验失败且第一文件系统为镜像文件系统时,说明控制器出厂自带的文件系统在当前时间之前已经被校验出存在故障,且第二存储地址已被替换为启动镜像文件系统所需数据的存储地址,而当前控制器中出厂自带的文件系统和镜像文件系统均出现故障,即使操作系统正常,控制器也无法正常启动,因此控制器可以直接进行警报提示。

步骤(3):当第一操作系统和第一文件系统均校验失败时,判断第一操作系统是否为镜像操作系统,以及判断第一文件系统是否为镜像文件系统;当第一操作系统不为镜像操作系统时,获取第二操作系统的数据,基于第二操作系统的数据,对第二操作系统进行校验;当第一文件系统不为镜像文件系统时,获取第二文件系统的数据,基于第二文件系统的数据,对第二文件系统进行校验;当第二操作系统和第二文件系统均校验成功时,启动第二操作系统和第二文件系统。

当第一操作系统和第一文件系统均校验失败时,需要判断第一操作系统是否为镜像操作系统,以及第一文件系统是否为镜像文件系统,当第一操作系统不为镜像操作系统且第一文件系统不为镜像文件系统时,说明控制器出厂自带的操作系统和文件系统均出现故障,之后当对第二操作系统和第二文件系统,也即镜像操作系统和镜像文件系统校验成功时,可以启动镜像操作系统和镜像文件系统,从而使控制器正常启动。

另外,当对第二操作系统和第二文件系统均校验失败时,说明当前控制器中出产自带的操作系统和文件系统,以及镜像操作系统和镜像文件系统均存在故障,此时控制器可以进行警报提示,进而工作人员在查看到警报提示后可以对控制器进行检修。

再者,当第一操作系统为镜像操作系统,且第一文件系统为镜像文件系统时,说明控制器出厂自带的操作系统和文件系统在当前时间之前已经被校验出存在故障,且第一存储地址已被替换为启动镜像操作系统所需数据的存储地址,第二存储地址已被替换为启动镜像文件系统所需数据的存储地址,而当前控制器中出厂自带的文件系统和镜像文件系统,以及镜像操作系统和镜像文件系统均出现故障,此时控制器可以直接进行警报提示。

此外,在控制器执行上述步骤(1)、步骤(2)和步骤(3)之后,还可以执行下述步骤(4)和步骤(5)中的至少一者。

步骤(4):当第一操作系统校验失败且第二操作系统校验成功时,将环境变量中包括的第一存储地址替换为启动第二操作系统所需数据的存储地址。

步骤(5):当第一文件系统校验失败且第二文件系统校验成功时,将环境变量中包括的第二存储地址替换为启动第二文件系统所需数据的存储地址。

通过执行上述步骤(4)和步骤(5)中的至少一者,控制器可以将第一存储地址对应的操作系统替换为本次能够正常启动的操作系统,或者将第二存储地址对应的文件系统替换为本次能够正常启动的文件系统,从而当下次启动控制器时,可以直接对替换后的操作系统或文件系统进行校验,从而节约了控制器的启动时间,提高了控制器的启动效率。

在本发明实施例中,当控制器检测到系统启动指令时,可以从存储的环境变量中获取第一存储地址和第二存储地址,也即是获取启动操作系统所需数据的存储地址和启动文件系统所需数据的存储地址,然后基于第一存储地址,获取第一操作系统的数据,以及基于第二存储地址,获取第一文件系统的数据,进而可以对第一操作系统和第一文件系统进行校验,当第一操作系统和第一文件系统均校验成功时,说明第一操作系统和第一文件系统的存储模块均未发生坏块,从而第一操作系统和第一文件系统可以正常启动,进而保证控制器的稳定运行。

参见图3A,本发明实施例提供了一种控制器的系统启动装置300,该装置包括:第一获取模块301、第二获取模块302、校验模块303和第一启动模块304。

第一获取模块301,用于当检测到系统启动指令时,从存储的环境变量中获取第一存储地址和第二存储地址,第一存储地址为启动操作系统所需数据的存储地址,第二存储地址为启动文件系统所需数据的存储地址;

第二获取模块302,用于基于第一存储地址,获取第一操作系统的数据,以及基于第二存储地址,获取第一文件系统的数据;

校验模块303,用于基于第一操作系统的数据,对第一操作系统进行校验,基于第一文件系统的数据,对第一文件系统进行校验;

第一启动模块304,用于当第一操作系统和第一文件系统均校验成功时,启动第一操作系统和第一文件系统。

可选地,参见图3B,校验模块303包括:

获取单元3031,用于获取第一预设验证码和第二预设验证码,第一预设验证码为对第一操作系统预先设置的验证码,第二预设验证码为对第一文件系统预先设置的验证码;

计算单元3032,用于对第一操作系统的数据进行完整性计算,得到第一计算验证码,对第一文件系统的数据进行完整性计算,得到第二计算验证码;

对比单元3033,用于将第一计算验证码与第一预设验证码进行对比,以及将第二计算验证码与第二预设验证码进行对比;

确定单元3034,用于当第一计算验证码与第一预设验证码一致时,确定第一操作系统校验成功,当第二计算验证码与第二预设验证码一致时,确定第一文件系统校验成功。

可选地,参见图3C,该装置还包括:

第二启动模块305,用于当第一操作系统校验失败且第一操作系统不为镜像操作系统时,获取第二操作系统的数据,第二操作系统是对第一操作系统进行镜像得到;基于第二操作系统的数据,对第二操作系统进行校验;当第二操作系统校验成功且第一文件系统校验成功时,启动第二操作系统和第一文件系统;或者,

第三启动模块306,用于当第一文件系统校验失败且第一文件系统不为镜像文件系统时,获取第二文件系统的数据,第二文件系统是对第一文件系统进行镜像得到;基于第二文件系统的数据,对第二文件系统进行校验;当第一操作系统校验成功且第二文件系统校验成功时,启动第一操作系统和第二文件系统。

可选地,参见图3D,该装置还包括:

判断模块307,用于当第一操作系统和第一文件系统均校验失败时,判断第一操作系统是否为镜像操作系统,以及判断第一文件系统是否为镜像文件系统;

第三获取模块308,用于当第一操作系统不为镜像操作系统时,获取第二操作系统的数据,基于第二操作系统的数据,对第二操作系统进行校验;

第四获取模块309,用于当第一文件系统不为镜像文件系统时,获取第二文件系统的数据,基于第二文件系统的数据,对第二文件系统进行校验;

第四启动模块310,用于当第二操作系统和第二文件系统均校验成功时,启动第二操作系统和第二文件系统。

可选地,参见图3E,该装置还包括:

第一替换模块311,用于当第一操作系统校验失败且第二操作系统校验成功时,将环境变量中包括的第一存储地址替换为启动第二操作系统所需数据的存储地址;

第二替换模块312,用于当第一文件系统校验失败且第二文件系统校验成功时,将环境变量中包括的第二存储地址替换为启动第二文件系统所需数据的存储地址。

综上所述,在本发明实施例中,当控制器检测到系统启动指令时,可以从存储的环境变量中获取第一存储地址和第二存储地址,也即是获取启动操作系统所需数据的存储地址和启动文件系统所需数据的存储地址,然后基于第一存储地址,获取第一操作系统的数据,以及基于第二存储地址,获取第一文件系统的数据,进而可以对第一操作系统和第一文件系统进行校验,当第一操作系统和第一文件系统均校验成功时,说明第一操作系统和第一文件系统的存储模块均未发生坏块,从而第一操作系统和第一文件系统可以正常启动,进而保证控制器的稳定运行。

需要说明的是:上述实施例提供的控制器的系统启动装置在启动控制器的系统时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的控制器的系统启动装置与控制器的系统启动方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1