CN109933374B - 一种计算机启动方法 - Google Patents
一种计算机启动方法 Download PDFInfo
- Publication number
- CN109933374B CN109933374B CN201910065070.8A CN201910065070A CN109933374B CN 109933374 B CN109933374 B CN 109933374B CN 201910065070 A CN201910065070 A CN 201910065070A CN 109933374 B CN109933374 B CN 109933374B
- Authority
- CN
- China
- Prior art keywords
- loading
- bios
- operating system
- environment variable
- codes
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种计算机启动方法,基于三冗余的FLASH存储方式,实现了BIOS加载的数据高可靠性,可以确保BIOS可靠加载;同时采用基于冗余的BIOS加载校验方式实现了环境变量校验的数据高可靠性,可以确保环境变量参数可靠准确,又对操作系统镜像进行分段加载校验实现了操作系统镜像的数据高可靠性,可以确保加载到内存中的操作系统镜像程序可靠准确。从而确保加载到计算机内存中运行的程序为真实可靠的数据,加载目标灵活、加载成功率高,可以确保计算机可靠运行。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种计算机启动方法。
背景技术
目前,通用计算机的BIOS加载方式为处理器直接从FLASH器件中读取BIOS数据并执行,然后BIOS软件根据环境变量设置,采用基于网络或者硬盘的加载方式,把操作系统镜像从网络或者硬盘直接复制到内存,然后直接跳转到内存相应的入口处执行操作系统镜像。BIOS对加载到内存中的操作系统镜像不进行校验,无法保证加载到内存的操作系统镜像和外部存储的操作系统镜像完全相同,存在镜像在复制到内存过程中由于数据出现异常导致的系统执行失败风险。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种计算机启动方法,确保加载到计算机内存中运行的程序为真实可靠的数据,适用于国产化计算机处理平台,加载目标灵活、加载成功率高,提高系统加载的可靠性。
本发明采用以下技术方案:
一种计算机启动方法,包括以下步骤:
S1、采用三冗余FLASH存储方式存储BIOS,启动时自加载三份代码并校验;
S2、采用三冗余存储方式,基于冗余的BIOS加载校验对环境变量参数进行检测;
S3、采用基于冗余的BIOS加载校验,对操作系统镜像进行分段加载校验;
S4、步骤S3加载异常,进行加载异常处理机制,然后步骤S1。
具体的,步骤S1中,上电启动时首先加载主份BIOS代码,主份代码自解压后读取另两份备份代码并进行比对,当三份代码一致或其中两份代码校验一致时执行校验一致的代码,如果三份代码均不一致,则进入相应的异常处理过程。
具体的,步骤S2中,在存储设备中存储三份相同的环境变量,BIOS启动后对主份环境变量进行有效性检测,当三份环境变量一致或其中两份环境变量校验一致时采用校验一致的环境变量。
进一步的,如果主份环境变量设置有效,则根据环境变量的设置进行镜像加载;如果主份环境变量设置无效,对备份环境变量采用三种取二的方式进行有效性检测,当三份环境变量一致或其中两份环境变量校验一致时采用校验一致的环境变量;如果备份环境变量设置有效,则根据环境变量的设置进行镜像加载;如果备份环境变量设置无效,则进入相应的异常处理过程。
具体的,步骤S3中,准备两份相同的操作系统镜像和MD5校验码,如果环境变量的设置有效,BIOS对环境变量指向的主份操作系统镜像进行分段加载;BIOS将操作系统镜像的各段数据分别加载到内存中,在加载的同时进行MD5校验;将实时计算的MD5校验码和事先保存的校验码进行比较。
进一步的,如果校验码一致,镜像加载正常;否则按相同的方式加载备份操作系统镜像,同时进行MD5校验;如果校验码一致,则认为镜像加载正常,否则进行相应的异常处理。
具体的,步骤S4中,异常处理包括对BIOS自身的异常处理、环境变量设置异常处理和对镜像加载异常处理。
进一步的,如果BIOS三份代码均不一致,停止BIOS加载,提示错误。
进一步的,如果主份环境变量参数加载异常,自动加载备份环境变量参数;如果备份环境变量参数仍异常,停止自动加载,提示加载错误。
进一步的,如果主份操作系统镜像加载异常,自动加载备份操作系统镜像,如果备份操作镜像加载还存在异常,停止自动加载操作系统镜像,提示加载错误。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种计算机启动方法,基于三冗余的FLASH存储方式,实现了BIOS加载的数据高可靠性,可以确保BIOS可靠加载;基于冗余的BIOS加载校验实现了环境变量校验的数据高可靠性,可以确保环境变量参数可靠准确,对操作系统镜像进行分段加载校验实现了操作系统镜像的数据高可靠,可以确保加载到内存中的操作系统镜像程序可靠准确。
进一步的,通过采用三冗余FLASH存储方式存储BIOS代码,启动时自加载三份代码并采用三取二方式校验,可以避免由于FLASH中存储的BIOS代码自身出现错误时导致加载到内存中的代码错误。
进一步的,通过采用三冗余存储方式,启动过程中对所加载的环境变量参数进行三取二方式校验,可以避免由于环境变量参数出现错误时导致加载到内存中的代码错误。
进一步的,采用基于冗余的BIOS加载校验,对操作系统镜像进行分段加载并采用MD5码方式校验,可以确保加载到内存中的操作系统镜像代码正确可靠,避免操作系统错误导致的系统执行失败风险。
进一步的,加载过程中如果判断结果异常,则进入加载异常处理机制,提示用户进行确认,确认无误后继续进行加载或停止执行,确保加载过程受控。
综上所述,本发明基于三冗余的FLASH存储方式,实现了BIOS加载的数据高可靠性,可以确保BIOS可靠加载;同时采用基于冗余的BIOS加载校验方式实现了环境变量校验的数据高可靠性,可以确保环境变量参数可靠准确,又对操作系统镜像进行分段加载校验实现了操作系统镜像的数据高可靠性,从而确保加载到计算机内存中运行的程序为真实可靠的数据,加载目标灵活、加载成功率高,可以确保计算机可靠运行。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为BIOS和操作系统镜像加载及校验示意图;
图2为BIOS自身加载及校验示意图;
图3为环境变量加载及校验示意图;
图4为操作系统镜像加载及校验示意图;
图5为本发明启动示意图。
具体实施方式
请参阅图1和图5,本发明一种计算机启动方法,包括以下步骤:
S1、BIOS自加载并校验
相同的BIOS代码存储采用三冗余的FLASH存储方式,上电启动时首先加载主份BIOS代码,主份代码自解压后读取另两份备份代码并进行比对,当三份代码一致或其中两份代码校验一致时执行校验一致的代码,如果三份代码均不一致,则进入相应的异常处理过程,给出提示,让操作人员进行处理,如图2所示。
S2、环境变量参数检测
采用基于冗余的BIOS加载校验方法时,同样采用主备三冗余的存储方式,在两个存储设备中分别存储三份相同的环境变量,BIOS启动后首先对主份环境变量采用三种取二的方式进行有效性检测,当三份环境变量一致或其中两份环境变量校验一致时采用校验一致的环境变量,如果主份环境变量设置有效,则根据环境变量的设置进行镜像加载。如果主份环境变量设置无效,对备份环境变量采用三种取二的方式进行有效性检测,当三份环境变量一致或其中两份环境变量校验一致时采用校验一致的环境变量。如果备份环境变量设置有效,则根据环境变量的设置进行镜像加载。如果备份环境变量设置无效,则进入相应的异常处理过程,给出提示,让操作人员进行处理,如图3所示。
S3、操作系统镜像分段加载校验
采用基于冗余的BIOS加载校验方法时,首先要准备两份相同的操作系统镜像和MD5校验码。如果环境变量的设置有效,BIOS对环境变量指向的主份操作系统镜像进行分段加载;BIOS把操作系统镜像的各段数据分别加载到内存中,在加载的同时进行MD5校验。把实时计算的MD5校验码和事先保存的校验码进行比较;如果校验码一致,则认为镜像加载正常。否则按相同的方式加载备份操作系统镜像,同时进行MD5校验,如果校验码一致,则认为操作系统镜像加载正常;否则进入相应的异常处理过程,给出提示,让操作人员进行处理。
S4、加载异常处理机制
请参阅图4,采用基于冗余的BIOS加载校验方法时,异常处理包括对BIOS自身的异常处理、环境变量设置异常处理和对镜像加载异常处理。
S401、如果BIOS三份代码均不一致,则停止BIOS加载,提示BIOS校验错误,让用户选择重新加载还是终止加载;
S402、如果主份环境变量参数加载异常(三取二方式实现),则自动加载备份环境变量参数(三取二方式实现);如果备份环境变量参数仍异常,则停止自动加载,提示加载环境变量错误,让用户选择重新加载还是终止加载。
S403、如果主份操作系统镜像加载异常,则自动加载备份操作系统镜像。如果备份操作镜像加载还存在异常,则停止自动加载操作系统镜像,提示加载操作系统错误,让用户选择重新加载还是终止加载。
通过以上加载过程,可以确保BIOS自身加载、环境变量加载及操作系统镜像加载过程均正确可靠,加载完成操作系统镜像后BIOS将计算机控制权交给操作系统,操作系统接管计算机系统的全部硬件资源后控制软件正常运行。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明已经成功应用到项目中。在项目中应用时,计算机硬件基于国产化龙芯2H平台,主频800MHz,内存1GB,PMON基础版本采用龙芯官方开发板使用的PMON,配置双硬盘,环境变量设置操作系统启动路径和网络MAC地址等参数,操作系统采用风河公司VxWorks6.7操作系统。
由于PMON(即通用计算机中的BIOS)进行了三冗余设计,且启动阶段时主份PMON需要去进行读取其它两份PMON,因此硬件需要做相应的修改,主要是将存储PMON的FLASH存储器容量变大,以便能够存储3份PMON代码。本方案其它主要功能均通过修改PMON代码实现。
PMON的主要修改如下:
1)实现三份PMON读取及烧录功能;
2)实现PMON自身三取二校验功能;
3)实现三份环境变量设置功能;
4)实现环境变量三取二校验功能;
5)实现VxWorks镜像MD5码生成功能;
6)实现VxWorks镜像校验功能;
7)实现加载异常处理功能。
修改完成后的PMON烧录到产品中,采用本发明的启动校验方法,避免了PMON、环境变量及操作系统镜像出错导致加载失败的可能性,提高了计算机启动的可靠性。
采用该启动方法的产品目前已应用到5种产品中,配套交付上百套产品,运行效果良好。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (5)
1.一种计算机启动方法,其特征在于,包括以下步骤:
S1、采用三冗余FLASH存储方式存储BIOS,启动时自加载三份代码并校验,具体为:上电启动时首先加载主份BIOS代码,主份代码自解压后读取另两份备份代码并进行比对,当三份代码一致或其中两份代码校验一致时执行校验一致的代码,如果三份代码均不一致,则进入相应的异常处理过程;
S2、采用三冗余存储方式,基于冗余的BIOS加载校验对环境变量参数进行检测,具体为:
在存储设备中存储三份相同的环境变量,BIOS启动后对主份环境变量进行有效性检测,当三份环境变量一致或其中两份环境变量校验一致时采用校验一致的环境变量,如果主份环境变量设置有效,则根据环境变量的设置进行镜像加载;如果主份环境变量设置无效,对备份环境变量采用三种取二的方式进行有效性检测,当三份环境变量一致或其中两份环境变量校验一致时采用校验一致的环境变量;如果备份环境变量设置有效,则根据环境变量的设置进行镜像加载;如果备份环境变量设置无效,则进入相应的异常处理过程;
S3、采用基于冗余的BIOS加载校验,对操作系统镜像进行分段加载校验,具体为:采用基于冗余的BIOS加载校验方法时,首先要准备两份相同的操作系统镜像和MD5校验码;如果环境变量的设置有效,BIOS对环境变量指向的主份操作系统镜像进行分段加载;BIOS把操作系统镜像的各段数据分别加载到内存中,在加载的同时进行MD5校验,把实时计算的MD5校验码和事先保存的校验码进行比较;如果校验码一致,则认为镜像加载正常;否则按相同的方式加载备份操作系统镜像,同时进行MD5校验,如果校验码一致,则认为操作系统镜像加载正常;否则进入相应的异常处理过程;
S4、步骤S3加载异常,进行加载异常处理机制,然后返回步骤S1。
2.根据权利要求1所述的计算机启动方法,其特征在于,步骤S4中,异常处理包括对BIOS自身的异常处理、环境变量设置异常处理和对镜像加载异常处理。
3.根据权利要求2所述的计算机启动方法,其特征在于,如果BIOS三份代码均不一致,停止BIOS加载,提示错误。
4.根据权利要求2所述的计算机启动方法,其特征在于,如果主份环境变量参数加载异常,自动加载备份环境变量参数;如果备份环境变量参数仍异常,停止自动加载,提示加载错误。
5.根据权利要求2所述的计算机启动方法,其特征在于,如果主份操作系统镜像加载异常,自动加载备份操作系统镜像,如果备份操作镜像加载还存在异常,停止自动加载操作系统镜像,提示加载错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910065070.8A CN109933374B (zh) | 2019-01-23 | 2019-01-23 | 一种计算机启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910065070.8A CN109933374B (zh) | 2019-01-23 | 2019-01-23 | 一种计算机启动方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933374A CN109933374A (zh) | 2019-06-25 |
CN109933374B true CN109933374B (zh) | 2021-10-22 |
Family
ID=66985093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910065070.8A Active CN109933374B (zh) | 2019-01-23 | 2019-01-23 | 一种计算机启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933374B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112698782A (zh) * | 2019-10-22 | 2021-04-23 | 中电智能科技有限公司 | 基于存储器数据加载的实现装置及方法 |
CN111679865A (zh) * | 2020-05-22 | 2020-09-18 | 深圳职业技术学院 | 一种可穿戴式计算机控制方法、系统、存储介质、终端 |
CN112667435B (zh) * | 2020-12-07 | 2022-09-09 | 沈阳飞机设计研究所扬州协同创新研究院有限公司 | 一种基于天脉操作系统的软件映像备份方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1259212A (zh) * | 1997-04-02 | 2000-07-05 | 通用动力信息系统公司 | 容错计算机系统 |
CN103034511A (zh) * | 2012-11-23 | 2013-04-10 | 华为技术有限公司 | 一种基本输入输出系统间的切换方法及装置 |
EP3109757A2 (en) * | 2015-06-04 | 2016-12-28 | Huawei Technologies Co., Ltd. | Data storage method, data recovery method, related apparatus, and system |
WO2017087544A1 (en) * | 2015-11-16 | 2017-05-26 | Silicon Graphics International Corp. | Method and system for shared direct access storage |
CN106774635A (zh) * | 2016-12-05 | 2017-05-31 | 上海航天控制技术研究所 | 一种三冗余计算机同步方法 |
CN107609404A (zh) * | 2017-09-20 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种bios程序的管理系统、方法及存储系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877639B2 (en) * | 2008-11-06 | 2011-01-25 | Dell Products L.P. | Systems and methods to provide failover support for booting embedded hypervisor from an internal non-volatile memory card |
JP5066199B2 (ja) * | 2010-02-12 | 2012-11-07 | 株式会社東芝 | 半導体記憶装置 |
CN102270162B (zh) * | 2011-07-29 | 2013-01-16 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种应用于sparcv8结构计算机的容错引导方法 |
CN102298545B (zh) * | 2011-08-23 | 2014-03-19 | 晨星软件研发(深圳)有限公司 | 一种系统启动引导处理方法及装置 |
CN102736933A (zh) * | 2012-05-16 | 2012-10-17 | 中兴通讯股份有限公司 | Boot文件加载方法及装置 |
TW201516654A (zh) * | 2013-10-23 | 2015-05-01 | Hon Hai Prec Ind Co Ltd | 電腦bios恢復系統及方法 |
CN104597850A (zh) * | 2013-10-30 | 2015-05-06 | 北京精密机电控制设备研究所 | 用于三冗余伺服控制器的数据交互及同步的方法和装置 |
US9569297B2 (en) * | 2014-07-16 | 2017-02-14 | Dell Products, Lp | Seamless method for booting from a degraded software raid volume on a UEFI system |
US10055296B2 (en) * | 2015-10-30 | 2018-08-21 | Quanta Computer Inc. | System and method for selective BIOS restoration |
CN105549460B (zh) * | 2016-03-10 | 2018-12-14 | 中国电子科技集团公司第十研究所 | 星载电子设备综合化管控系统 |
CN108038021B (zh) * | 2017-11-13 | 2021-03-02 | 北京全路通信信号研究设计院集团有限公司 | 一种计算机程序运行阶段代码内存校验方法 |
-
2019
- 2019-01-23 CN CN201910065070.8A patent/CN109933374B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1259212A (zh) * | 1997-04-02 | 2000-07-05 | 通用动力信息系统公司 | 容错计算机系统 |
CN103034511A (zh) * | 2012-11-23 | 2013-04-10 | 华为技术有限公司 | 一种基本输入输出系统间的切换方法及装置 |
EP3109757A2 (en) * | 2015-06-04 | 2016-12-28 | Huawei Technologies Co., Ltd. | Data storage method, data recovery method, related apparatus, and system |
WO2017087544A1 (en) * | 2015-11-16 | 2017-05-26 | Silicon Graphics International Corp. | Method and system for shared direct access storage |
CN106774635A (zh) * | 2016-12-05 | 2017-05-31 | 上海航天控制技术研究所 | 一种三冗余计算机同步方法 |
CN107609404A (zh) * | 2017-09-20 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种bios程序的管理系统、方法及存储系统 |
Non-Patent Citations (1)
Title |
---|
New Technology Beefs up BIOS;Linda Dailey Paulson;《Computer》;20040531;第37卷(第5期);第22页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109933374A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5607863B2 (ja) | セキュア・リカバリ装置及び方法 | |
US6061788A (en) | System and method for intelligent and reliable booting | |
CN109933374B (zh) | 一种计算机启动方法 | |
US6711675B1 (en) | Protected boot flow | |
CN101281469B (zh) | 嵌入式系统及其启动加载的方法 | |
US6931522B1 (en) | Method for a computer using the system image on one of the partitions to boot itself to a known state in the event of a failure | |
US20040255106A1 (en) | Recovery of operating system configuration data by firmware of computer system | |
US11163886B2 (en) | Information handling system firmware bit error detection and correction | |
US20070174704A1 (en) | Computer program automatic recovery activation control method and system | |
CN107315616B (zh) | 一种固件的加载方法、装置及电子设备 | |
WO2016206514A1 (zh) | 启动处理方法及装置 | |
CN106775674B (zh) | 一种基于通用引导加载程序的设备及其启动方法 | |
CN111552592A (zh) | 一种双备份启动方法及系统 | |
CN112433769A (zh) | 一种bmc启动方法、装置、计算机设备及存储介质 | |
CN109634781A (zh) | 一种基于嵌入式程序双区备份映像系统及启动方法 | |
CN114895845A (zh) | 一种emmc数据存储的控制方法及嵌入式主板 | |
CN117130672A (zh) | 服务器启动流程控制方法、系统、终端及存储介质 | |
CN100476745C (zh) | 在Linux操作系统引导过程中实现映象文件自动容错的方法 | |
CN111273928A (zh) | 一种自升级的bootloader设计方法 | |
CN112579338B (zh) | 一种设备的启动方法、系统及存储介质 | |
CN109002317B (zh) | 一种pcba固件升级方法及系统、pcba | |
WO2021154200A1 (en) | Firmware corruption recovery | |
CN110908722A (zh) | 应用于操作系统启动的方法、装置、电子设备及存储介质 | |
CN102541585A (zh) | 一种远程升级方法及嵌入式系统 | |
CN114356658A (zh) | 固件升级异常的处理方法、计算机设备以及可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |