CN1940878B - 引导和自动更新软件和从更新错误中恢复的方法和系统 - Google Patents

引导和自动更新软件和从更新错误中恢复的方法和系统 Download PDF

Info

Publication number
CN1940878B
CN1940878B CN200610159300XA CN200610159300A CN1940878B CN 1940878 B CN1940878 B CN 1940878B CN 200610159300X A CN200610159300X A CN 200610159300XA CN 200610159300 A CN200610159300 A CN 200610159300A CN 1940878 B CN1940878 B CN 1940878B
Authority
CN
China
Prior art keywords
kernel
information
parts
relevant
mbr
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.)
Expired - Fee Related
Application number
CN200610159300XA
Other languages
English (en)
Other versions
CN1940878A (zh
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1940878A publication Critical patent/CN1940878A/zh
Application granted granted Critical
Publication of CN1940878B publication Critical patent/CN1940878B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • 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/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/445Program loading or initiating
    • 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/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了更新安装在系统中的软件部件和从在更新期间出现的错误中恢复过来的引导方法、自动更新软件和从错误中恢复过来的方法和系统、和存储该方法的计算机可读记录介质。主引导记录和备份引导记录用于稳定地更新内核和有效地从更新错误中恢复过来。部件配置数据库用于在事务处理中更新包括内核的数个软件部件,和完全从更新错误中恢复过来。

Description

引导和自动更新软件和从更新错误中恢复的方法和系统
技术领域
本发明涉及更新软件的方法和系统,尤其涉及更新安装在系统中的软件部件和从在更新期间出现的错误中恢复过来的引导方法、自动更新软件和从错误中恢复过来的方法和系统、和存储该方法的计算机可读记录介质。 
背景技术
内核是现有技术操作系统(OS)的核心。当由于系统崩溃使内核图像的自动更新停止时,甚至不可能引导OS。 
图1是现有技术系统的引导区的方块图。参照图1,当前图像110是综合了OS和应用程序的二值图像。引导装入程序120是为启动系统而执行的代码,它将当前图像110装入随机访问存储器(RAM)中和执行装入图像以引导系统。引导区的缺点在于,当当前图像110的更新失败时,不可能自动恢复失败的更新。此外,引导区不提供更新几个软件部件和恢复的功能。 
图2是另一个现有技术系统的引导区的方块图,它利用更新有效性确认库230更新内核。参照图2,当更新内核时,将当前图像220复制到备份库中,生成备份图像210,并且,下载新图像220。如果系统的引导发生什么麻烦,引导装入程序240根据更新有效性确认库230检验更新有效性,和将备份图像210复制成新图像220,重新引导系统。这种现有技术系统的缺点在于,复制整个备份图像210以恢复系统。因此,现有技术系统不怎么有效,因为它通常需要花费20到30秒时间来复制闪速存储器中12Mb(兆字节)的内核图像。 
图3是另一个现有技术系统的引导区的方块图,它利用两个引导装入程序330和340来自动更新内核。参照图3,当更新内核时,将当前图像320复制到备份库中,生成备份图像310,并且,下载新图像320。如果在执行第一引导装入程序340时系统的引导发生什么麻烦,则执行第二引导装入程序330装入备份图像310。这种现有技术系统的缺点在于,系统应该具有物理执行两个引导装入程序330和340的功能。 
于是,需要一种自动更新内核和当出现更新错误时有效恢复系统的技术。此外,当在更新包括内核在内的几个软件部件的过程中出现错误时,该技术必须进行更新回返。更具体地说,当出现更新错误时,该技术必须自动将软件恢复成它以前的状态(例如,恢复到最后重新引导点),以便提供软件自动更新的可靠性。 
本发明提供了更新包括内核的软件部件和自动从在更新期间出现的错误中恢复过来的引导方法、自动更新软件和从错误中恢复过来的方法和系统、和存储该方法的计算机可读记录介质。 
根据本发明的一个方面,提供了通过装入内核引导系统的方法,该方法包含:基于表示所述内核的前更新是否成功的标志来确定包括有关内核的信息的主引导记录是否有效;如果确定主引导记录有效,利用主引导记录装入和执行内核;和如果确定主引导记录无效,利用包括有关已成功装入的前内核的信息的备份引导记录装入和执行该前内核。 
该方法可以进一步包含:根据部件配置信息确定前更新结果,部件配置信息包括与安装在系统中的软件部件的更新有关的信息;如果确定前更新成功完成,根据包括在部件配置信息中的当前部件信息装入和执行部件;和如果确定前更新已停止,根据包括在部件配置信息中的前部件信息装入和执行部件。 
该方法可以进一步包含:当前更新已停止时,如果确定除了内核之外的部件的更新已完成,和包括在部件配置信息中的当前内核信息与存储在主引导记录中的内核信息彼此相同,根据包括在部件配置信息中的当前部件信息装入和执行部件。 
根据本发明的另一个方面,提供了更新内核和从更新错误中恢复过来的自动更新软件的方法,该方法包含:下载新版本的内核和存储下载的内核;将包括有关内核的信息的主引导记录复制在备份引导记录上;和将有关新版本的内核的信息记录在主引导记录上。 
根据本发明的另一个方面,提供了自动更新软件和从更新错误中恢复过来以更新内核的方法,该方法包含:开始更新事务处理;将有关内核的状态信息改变成“下载”,将有关内核的前信息改变成当前信息,下载新版本的内核,和存储下载的内核;将有关内核的状态信息改变成“更新”,将包括有关内核的当前信息的主引导记录上的信息复制到备份引导记录中,和将有关新版本的内核的信息记录在有关内核的当前信息和主引导记录中;将有关内核的状态信息改变成“完成”;和结束更新事务处理。 
该方法可以进一步包含:在将新信息记录在主引导记录上之前,将主引导记录的有效性标志表示成“无效”,和在将新信息记录在主引导记录上之后,将主引导记录的有效性标志表示成“有效”。 
根据本发明的另一个方面,提供了自动恢复含有更新错误的内核和从更新错误中恢复过来的自动更新软件的方法,该方法包含:确定内核的更新是否已停止;和如果确定更新已停止,将备份引导记录复制成主引导记录。 
确定步骤可以进一步包含:如果更新的事务处理已开始,确定更新已停止。 
确定步骤可以进一步包含:如果有关内核的当前信息与包括在主引导记录中的有关内核的信息相同,确定更新成功完成。 
根据本发明的另一个方面,提供了更新不止一个有必要更新的软件部件和从更新错误中恢复过来的自动更新软件的方法,该方法包含:依次更新包括在更新软件包中的除了内核之外的部件,更新软件包包括有必要更新的部件的列表;和如果更新软件包包括内核,最后更新内核。 
部件的更新可以进一步包括:将有关部件的前信息改变成有关部件的当前信息,和下载新版本的部件;和将有关部件的当前信息改变成有关新版本部件的信息。 
该方法可以进一步包含:在更新除了内核之外的部件之前,开始更新事务处理;和在更新了内核之后,结束更新事务处理。 
内核的更新可以进一步包含:将有关内核的状态信息改变成“下载”,将有关内核的前信息改变成当前信息,下载新版本的内核,和存储下载的内核;将有关内核的状态信息改变成“更新”,将包括有关当前内核的信息的主引导记录复制到备份引导记录中,和将有关新版本的内核的信息记录在有关内核的当前信息和主引导记录中;和将有关内核的状态信息改变成“完成”。 
根据本发明的另一个方面,提供了恢复含有更新错误的软件部件和从更新错误中恢复过来的自动更新软件的方法,该方法包含:确定包含在更新软件包中的部件的更新是否已停止;和如果确定更新已停止,将包含在更新软 件包中的部件的备份部件转换成原部件。 
备份部分的转换可以进一步包含:如果部件是内核,将备份引导记录复制成主引导记录。 
根据本发明的另一个方面,提供了自动更新软件和从更新错误中恢复过来的系统,该系统包含:非易失性存储器,用于存储当前内核、包括有关当前内核的地址信息的主引导记录、和利用主引导记录将当前内核装入RAM中和执行RAM中的当前内核以引导系统的引导装入程序;和处理器,用于执行存储在非易失性存储器中的引导装入程序。 
主引导记录可以进一步包含指示当前内核是否有效的有效性标志,非易失性存储器进一步包含前内核和包括有关前内核的地址信息的备份引导记录,和如果确定主引导记录有效,引导装入程序利用主引导记录上的信息装入当前内核,和如果确定主引导记录无效,引导装入程序利用备份引导记录上的信息装入前内核。 
非易失性存储器进一步包含包括有关软件更新的信息的部件配置信息、和利用部件配置信息更新软件部件和从在部件更新期间出现的错误中恢复过来的更新引擎。 
部件配置信息可以包括有关更新事务处理的状态信息、包括前部件的名称、地址和版本的前信息、包括当前部件的地址和版本的当前信息、和有关部件的更新状态信息,和更新引擎根据部件配置信息更新每个部件和从更新错误中恢复过来。 
附图说明
通过参照附图对本发明的示范性实施例进行详细描述,本发明的上述和其它方面将更加清楚,在附图中: 
图1是现有技术系统的引导区的方块图; 
图2是利用更新有效性确认库自动更新内核的另一个现有技术系统的引导区的方块图; 
图3是利用两个引导装入程序自动更新内核的另一个现有技术系统的引导区的方块图; 
图4A例示了根据本发明示范性实施例的引导记录的例子; 
图4B是根据本发明示范性实施例的部件配置信息的方块图; 
图5是根据本发明示范性实施例的引导区的方块图; 
图6是例示利用如图5所示的引导区装入内核的机制的流程图; 
图7是例示内核被完全装入之后装入其它软件部件的操作的流程图; 
图8是例示根据本发明示范性实施例自动更新内核的机制的流程图; 
图9A、9B、和9C详细例示了在根据本发明示范性实施例的自动内核更新期间的存储器状态变化; 
图10A、10B、10C、和10D例示了在根据本发明示范性实施例的更新软件包的部件自动更新期间的存储器状态变化; 
图11是根据本发明示范性实施例更新软件和从更新错误中恢复过来的系统的方块图;和 
图12是根据本发明另一个示范性实施例更新软件和从更新错误中恢复过来的系统的方块图。 
具体实施方式
在下文中,将参照附图详细描述本发明的示范性实施例。 
图4A例示了根据本发明示范性实施例的引导记录的例子。当启动系统时,引导装入程序利用引导记录装入内核和执行装入的内核。 
引导记录包含内核地址412和有效性标志413。内核地址412表示存储在闪速存储器中的内核所在的位置。引导装入程序利用内核地址412找出内核和装入内核。有效性标志413指示内核是否有效。也就是说,当更新内核时,纠正引导记录中的信息。在纠正引导记录之前,将有效性标志413设置成指示内核无效,和在纠正了引导记录之后,将有效性标志413设置成指示内核有效,从而使人们可以准确确定引导记录中的信息是否有效。此外,内核标识符(ID)410和版本411也可以包括在引导记录中。 
本示范性实施例包括两个引导记录。其中之一是存储有关当前内核的信息的主引导记录,和另一个是包括有关已成功装入的前内核的信息的备份引导记录。 
图4B是根据本发明示范性实施例的部件配置信息的方块图。参照图4B,部件配置信息包括有关安装在系统中的软件部件的基本信息和更新信息。部件配置信息可以以数据库(DB)形式实现。 
事务处理状态信息420用于管理更新事务处理,它是用于存储更新事务 处理的当前状态和确定更新是否成功的标志。 
部件配置信息包含有关每个部件430的信息。例如,该信息包含名称431、包括地址信息432和版本信息433的当前部件信息440、当前部件被更新之前管理前部件地址434和前版本435的前部件信息450、和管理部件更新的状态的部件状态信息436,但不局限于这些。本示范性实施例利用部件状态信息436自动恢复系统。 
图5是根据本发明示范性实施例的引导区的方块图。参照图5,引导区包含引导装入程序550、当前内核520、备份前内核510、记录有关当前内核520的信息的主引导记录540、和记录有关前内核510的信息的备份引导记录530。 
图6是例示利用如图5所示的引导区装入内核的机制的流程图。参照图6,启动引导装入程序550(操作S602),以便确定主引导记录540的有效性标志是否有效(操作S604)。如果确定主引导记录540的有效性标志有效(操作S606),则利用主引导记录540装入和执行内核(操作S608)。即,由主引导记录540表示的当前内核520被装入。但是,如果确定主引导记录540的有效性标志无效(操作S606),这表示在内核的前一次更新期间出现错误,那么,利用备份引导记录530装入和执行内核510(操作S610),以稳定地启动该系统。 
图7是例示内核被完全装入之后装入其它软件部件的操作的流程图。参照图7,更新引擎程序装入和执行用在系统中的软件部件。启动更新引擎(操作S702),以便根据部件配置信息确定前一次更新是否成功完成(操作S704)。该确定基于部件配置信息的事务处理状态信息。如果事务处理状态信息表示事务处理已结束,则表示更新事务处理成功完成。如果事务处理状态信息表示事务处理已开始,则表示更新事务处理未成功停止。 
如果确定前一次更新成功完成(操作S706),则利用包括在部件配置信息中的当前部件信息装入和执行软件部件(操作S708)。也就是说,根据当前部件地址信息装入软件部件的当前版本。 
但是,如果确定前一次更新已停止(操作S706),则利用包括在部件配置信息中的前部件信息装入和执行软件部件(操作S712)。也就是说,根据前部件地址信息装入前一版本的软件部件。 
根据本发明的一个示范性实施例,可以在更新了除内核之外的所有其它 应用程序之后更新内核。因此,尽管前一次更新已停止,但可以确定除内核之外的其它软件部件的更新已成功完成,和包括在部件配置信息中的当前内核信息与主引导记录的内核信息相同(操作S710)。这意味着内核更新是在主引导记录上的信息都成功纠正之后停止的。在这种情况下,由于即使事务处理未得到认定,也可以确定更新事务处理已经成功完成,所以利用包括在部件配置信息中的当前部件信息装入和执行软件部件是有效的(操作S708)。 
即使几个部件的更新是在系统被重新引导之前停止的,也可以将系统恢复成用户最后一次使用的部件配置。 
图8是例示根据本发明示范性实施例自动更新内核的机制的流程图。参照图8,通过下载新版本的内核(操作S802),将包括有关内核的信息的主引导记录备份在备份引导记录中(操作S804),和将有关新版本的内核的信息(例如,地址等,但不限于此)记录到主引导记录中(操作S806)更新内核。 
图9A、9B、和9C详细例示了在根据本发明示范性实施例的自动内核更新期间的存储器状态变化。参照图9A、9B、和9C,文件系统区910存储三个应用程序App.1、App.2、和App.3,和原始格式区920具有与如图5所示的引导区几乎相同的结构。存储更新和恢复所需的部件配置信息的配置DB 930包含作为事务处理状态信息的PACKAGECOMMIT 940、部件标识符950、当前版本信息960、部件状态信息970、和前版本信息980。尽管在图9A、9B、和9C中未示出,但当更新版本信息时,也更新如图4B所示的当前地址信息423和前地址信息435。 
作为不包括文件系统的引导区的原始格式区920存储引导装入程序921。但是,如果引导装入程序921包括文件系统,则可以将内核和引导记录存储在文件系统区910中。此外,由于文件系统区910存储像盘操作系统(DOS)那样的文件系统,因此本示范性实施例不需要这样的文件系统。 
如果本示范性实施例没有文件系统,则可以将应用程序存储在原始格式区920中。此外,可以将配置DB 930存储在原始格式区920和文件系统区910之一中。 
参照图9A,将PACKAGECOMMIT 940设置成“NO”(操作S91),这意味着更新事务处理已开始,但未得到认定。将要更新的内核的状态信息970改变成“DOWNLOAD”(S92),将前版本信息980改变成与当前版本信息相对应的“1.0”(S93),和下载和存储新版本(1.1)的新内核925(S94)。主引导记 录922表示当前版本1.0的内核924,而备份引导记录923包括有关前版本0.5的备份内核的信息。 
参照图9B,将内核状态信息改变成“UPDATE”(S95),将主引导记录922上的信息复制到备份引导记录923中,和将有关新版本的内核的信息记录在当前内核信息和主引导记录922中。更具体地说,主引导记录922表示新下载的版本1.1的内核925(S97),和据此改变配置DB 930的相应当前版本和地址。 
参照图9C,将内核状态信息改变成“DONE”(S98),以表示内核已成功更新。最后,将PACKAGECOMMIT 940设置成“YES”(S99),以表示更新事务处理已成功完成。 
在上述过程中,在将新信息记录在主引导记录922上之前,主引导记录922的有效性标志总是表示“无效”,和在将新信息记录在主引导记录922上之后,主引导记录922的有效性标志总是表示“有效”。 
当在内核更新过程中出现错误时,通过确定内核更新是否成功完成,和如果确定内核更新已停止,将备份引导记录923复制成主引导记录922,可以使系统自动恢复成成功装载版本的内核。 
内核更新是否已停止是根据PACKAGECOMMIT 940确定的。详细地说,当引导系统时,如果PACKAGECOMMIT 940被设置成“NO”,则确定更新事务处理已经停止。 
但是,即使更新事务处理失败,当前内核信息和存储在主引导记录922中的内核信息彼此也有可能几乎相同,那就是,当更新事务处理在S91到S97完成之后停止时。在这种情况下,认为内核更新已成功完成,和更新事务处理可以被认定为没有自动恢复过程地完成。 
图10A、10B、10C、和10D例示了在根据本发明示范性实施例自动更新更新软件包990中的部件期间的存储器状态变化。 
参照图10A,更新软件包990是要更新的软件部件的列表。该列表可以包括应用程序部件和内核。可以依次更新应用程序部件(S102到S109),然后更新作为关键部件的内核。 
包括在更新软件包990中除内核之外的应用程序部件,即,应用程序App.1像图10B、10C、和10D所示那样更新。应用程序App.1是通过将前部件信息改变成当前部件信息,下载新版本的部件,和将当前部件信息改变成 有关新版本部件的信息更新的。 
参照图10B,将PACKAGECOMMIT 940设置成“NO”,以便开始更新事务处理(操作S101)。将当前部件状态信息970改变成“DOWNLOAD”(S102),将前部件信息980改变成当前部件信息960(操作S103),和下载和存储新版本的部件,即,new App.1(操作S104)。 
参照图10C,将部件状态信息970改变成“UPDATE”(操作S105),将前版本的部件App.1备份成App1.bak(操作S106),和将新版本的部件,即,new App.1改变成原部件App.1(操作S107)。 
参照图10D,将当前部件信息960改变成有关新版本的部件的信息(操作S108),和将部件状态信息970改变成“DONE”(操作S109)。部件App.1的当前和前版本分别是1.1和1.0。 
通过操作S102到S109更新包括在更新软件包990中的每个应用程序。最后,通过如图9A、9B、和9C所示的操作S92到S98更新内核。当包括在更新软件包990中的每个部件都被完全更新时,将PACKAGECOMMIT 940设置成“YES”,以完成更新事务处理(操作S120)。 
当在部件更新过程中出现错误时,通过确定包括在更新软件包中的部件是否成功更新,和如果确定部件更新已停止,将与包括在更新软件包中的所有部件相对应的备份部件改变成原部件,可以使部件自动恢复成前版本。当在内核更新过程中出现错误时,通过将备份引导记录923复制成主引导记录922,可以使内核自动恢复成前版本。 
是否出现更新错误是根据有关更新事务处理的状态信息确定的。如果在重新引导系统时更新事务处理处在表示开始的状态下,则确定更新事务处理在重新引导之前未成功停止。但是,尽管更新事务处理未完成,但如果有关除了内核之外的包括在更新软件包990中的部件的状态信息被设置成“DONE”,和当前内核信息和存储在主引导记录922中的内核信息彼此相同,则内核更新实际上已完成了。因此,认为内核更新已成功完成,内核可能未恢复成前版本和更新事务处理得到认定。 
图11是根据本发明示范性实施例更新软件和从更新错误中恢复过来的系统的方块图。参照图11,该系统包含处理器1200、RAM1100、和非易失性存储器1000,非易失性存储器1000存储当前内核1001、包括有关当前内核1001的地址信息的主引导记录1002、和作为引导系统的程序代码(例如,一 组指令)的引导装入程序1003。 
引导装入程序1003利用主引导记录1002将当前内核1001装入RAM1100中和执行RAM 1100,以引导系统。主引导记录1002可以包括指示当前内核1001是否有效的有效性标志。 
图12是根据本发明另一个示范性实施例更新软件和从更新错误中恢复过来的系统的方块图。非易失性存储器1000可以包括作为备份内核的前版本的前内核1004、和作为备份主引导记录1002的备份引导记录1005。在这种情况下,当引导系统时,引导装入程序1003确定主引导记录1002是否有效。如果确定主引导记录1002有效,则利用主引导记录1002上的信息装入当前内核1001,和如果确定主引导记录1002无效,则利用备份引导记录1005上的信息装入前内核1004。 
非易失性存储器1000可以包括包含有关软件更新的信息的部件配置信息1010、和利用部件配置信息1010更新软件部件和从在部件更新过程中出现的错误中恢复过来的更新引擎1020。 
如图4B所示,部件配置信息1010可以包括有关更新事务处理的状态信息、包括更新之前安装的部件的名称、地址和版本的前信息、包括更新部件的地址和版本的当前信息、和有关部件的更新状态信息。更新引擎1020根据部件配置信息1010更新每个部件和从更新错误中恢复过来。 
本示范性实施例也可以具体化成计算机可读介质上的计算机可读代码(例如,一组指令)。 
如上所述,本示范性实施例可以更新当其更新失败时可能导致致命结果的软件和内核,和可以利用部件配置信息使系统从更新错误中恢复过来。 
此外,即使由于外部原因使软件更新停止了,本示范性实施例也可以利用成功装入的最后配置信息在引导单元中恢复系统,从而使系统几乎完全地回返到前版本。 
此外,本示范性实施例利用引导记录有效地更新内核和引导系统,和在内核得到恢复时只改变引导记录,使系统运行速度显著提高。 
虽然通过参照本发明的示范性、非限制性实施例,已经对本发明进行了具体图示和描述,但本领域的普通技术人员应该明白,可以在形式和细节上对其作各种各样的改变,而不偏离本发明权利要求书限定的本发明的精神和范围。 
本申请要求2005年9月27日向韩国知识产权局提出的韩国专利申请第10-2005-0089692号的优先权,特此全文引用以供参考。 

Claims (19)

1.一种通过装入内核引导系统的方法,该方法包含:
基于表示所述内核的前更新是否成功的标志来确定包括有关内核的信息的主引导记录是否有效;
如果确定主引导记录有效,则利用主引导记录装入和执行内核;和
如果确定主引导记录无效,则利用包括有关已成功装入的前内核的信息的备份引导记录装入和执行该前内核。
2.根据权利要求1所述的方法,进一步包含:
根据部件配置信息确定前更新的结果,部件配置信息包括与安装在系统中的软件部件的更新有关的信息;
如果确定前更新成功完成,则根据包括在部件配置信息中的当前部件信息装入和执行该部件;和
如果确定前更新未成功完成,则根据包括在部件配置信息中的前部件信息装入和执行该部件。
3.根据权利要求2所述的方法,进一步包含:
当前更新已停止时,如果确定除了内核之外的软件部件的更新已完成,和包括在部件配置信息中的当前内核信息与存储在主引导记录中的内核信息彼此相同,则根据包括在部件配置信息中的当前部件信息装入和执行该部件。
4.根据权利要求1所述的方法,进一步包含:
下载新版本的内核和存储下载的新版本内核;
将包括有关内核的信息的主引导记录复制在备份引导记录上;和
将有关新版本的内核的信息记录在主引导记录上。
5.根据权利要求1所述的方法,进一步包含:
开始更新事务处理;
将有关内核的状态信息改变成“下载”,将有关内核的前信息改变成当前信息,下载新版本的内核,和存储下载的新版本内核;
将有关内核的状态信息改变成“更新”,将包括有关内核的当前信息的主引导记录上的信息复制到备份引导记录中,和将有关新版本的内核的信息记录在有关内核的当前信息和主引导记录中;
将内核的状态信息改变成“完成”;和
结束更新事务处理。
6.根据权利要求5所述的方法,进一步包含:
在将新信息记录在主引导记录上之前,将主引导记录的有效性标志表示成“无效”;和
在将新信息记录在主引导记录上之后,将主引导记录的有效性标志表示成“有效”。
7.根据权利要求1所述的方法,进一步包含:
确定内核的更新是否已停止;和
如果确定更新已停止,则将备份引导记录复制成主引导记录。
8.根据权利要求7所述的方法,其中,该确定步骤进一步包含:
如果更新的事务处理已开始,则确定更新已停止。
9.根据权利要求8所述的方法,其中,该确定步骤进一步包含:
如果有关内核的当前信息与包括在主引导记录中的有关内核的信息相同,确定更新成功完成。
10.根据权利要求1所述的方法,进一步包含:
依次更新包括在更新软件包中的除了内核之外的部件,更新软件包包括有必要更新的部件的列表;和
如果更新的软件包包括内核,最后更新内核。
11.根据权利要求10所述的方法,其中,部件的更新进一步包含:
将有关部件的前信息改变成有关部件的当前信息,和下载新版本的部件;和
将有关部件的当前信息改变成有关新版本的部件的信息。
12.根据权利要求11所述的方法,其中,内核的更新进一步包含:
下载新版本的内核和存储下载的新版本内核;
将包括有关当前内核的信息的主引导记录复制到备份引导记录;和
将新版本内核的信息记录在主引导记录上。
13.根据权利要求10所述的方法,进一步包含:
在更新除了内核之外的部件之前,开始更新事务处理;和
在更新了内核之后,结束更新事务处理。
14.根据权利要求13所述的方法,其中,该内核的更新进一步包含:
将有关内核的状态信息改变成“下载”,将有关内核的前信息改变成当前信息,下载新版本的内核,和存储下载的新版本内核;
将有关内核的状态信息改变成“更新”,将包括有关当前内核的信息的主引导记录复制到备份引导记录中,和将有关新版本的内核的信息记录在有关内核的当前信息和主引导记录中;和
将有关内核的状态信息改变成“完成”。
15.根据权利要求14所述的方法,其中,部件的更新进一步包含:
将有关部件的状态信息改变成“下载”,将有关部件的前信息改变成当前信息,下载新版本的部件,和存储下载的新版本部件;
将有关部件的状态信息改变成“更新”,将前版本的部件转换成备份部件,和将新版本的部件转换成原部件;和
将有关部件的当前信息改变成有关新版本部件的信息,和将有关部件的状态信息改变成“完成”。
16.根据权利要求1所述的方法,进一步包含:
确定包括在更新软件包中的部件的更新是否已停止;和
如果确定更新已停止,则将包括在更新软件包中的部件的备份部件转换成原部件。
17.根据权利要求16所述的方法,其中,该确定步骤进一步包含:
如果更新的事务处理已开始,则确定更新已停止。
18.根据权利要求17所述的方法,其中,该确定步骤进一步包含:
当更新的事务处理已开始时,如果除了内核之外的部件的更新已完成,和当前内核信息与存储在主引导记录中的内核信息彼此相同,则确定更新已成功完成。
19.根据权利要求16所述的方法,其中,该转换步骤进一步包含:
如果部件是内核,则将备份引导记录复制成主引导记录。
CN200610159300XA 2005-09-27 2006-09-27 引导和自动更新软件和从更新错误中恢复的方法和系统 Expired - Fee Related CN1940878B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR89692/05 2005-09-27
KR1020050089692A KR100750132B1 (ko) 2005-09-27 2005-09-27 부팅, 소프트웨어 자동 업데이트 및 에러 복원 방법과 그시스템, 그 방법을 기록한 컴퓨터 판독 가능한 기록매체

Publications (2)

Publication Number Publication Date
CN1940878A CN1940878A (zh) 2007-04-04
CN1940878B true CN1940878B (zh) 2012-05-23

Family

ID=37102507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610159300XA Expired - Fee Related CN1940878B (zh) 2005-09-27 2006-09-27 引导和自动更新软件和从更新错误中恢复的方法和系统

Country Status (4)

Country Link
US (3) US8166285B2 (zh)
EP (1) EP1770513B1 (zh)
KR (1) KR100750132B1 (zh)
CN (1) CN1940878B (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232397B (zh) * 2008-02-22 2010-10-27 成都市华为赛门铁克科技有限公司 多控制器系统修复的方法和装置
JP5001886B2 (ja) * 2008-03-14 2012-08-15 株式会社リコー 画像入出力システム、画像入出力装置のバックアップ方法、およびそのプログラム
AU2009201191A1 (en) 2008-03-26 2009-10-15 Aristocrat Technologies Australia Pty Limited A gaming machine
US9495250B2 (en) * 2008-09-02 2016-11-15 Fujitsu Limited Providing code to a programmable device
US8271623B2 (en) * 2009-01-15 2012-09-18 Microsoft Corporation Performing configuration in a multimachine environment
KR101108679B1 (ko) * 2009-11-04 2012-01-25 삼성메디슨 주식회사 자가진단 및 복원기능을 갖는 초음파 진단 방법 및 시스템
US20110202995A1 (en) * 2010-02-16 2011-08-18 Honeywell International Inc. Single hardware platform multiple software redundancy
FR2957700B1 (fr) * 2010-03-22 2012-04-13 Bull Sas Procede, programme d'ordinateur et dispositif d'optimisation de chargement et de demarrage d'un systeme d'exploitation dans un systeme informatique via un reseau de communication
US8504869B2 (en) * 2010-07-16 2013-08-06 Commvault Systems, Inc. Kernel swapping systems and methods for recovering a network device
US8578362B2 (en) 2011-03-18 2013-11-05 Hamilton Sundstrand Corporation Method for downloading software to an electronics product
US8726087B2 (en) * 2011-03-18 2014-05-13 Denso International America, Inc. System and method for curing a read inability state in a memory device
CN102693139B (zh) * 2011-03-25 2015-09-30 比亚迪股份有限公司 一种无线升级手机软件的方法及系统
JP5077726B1 (ja) * 2011-05-23 2012-11-21 Necインフロンティア株式会社 コンピュータ、その制御方法及びプログラム
US20130042231A1 (en) * 2011-08-10 2013-02-14 Ford Global Technologies, Llc Methods and Apparatus for Software Updating
KR101895453B1 (ko) * 2011-11-09 2018-10-25 삼성전자주식회사 이기종 컴퓨팅 환경에서 보안 강화 방법 및 장치
TWI450194B (zh) * 2011-11-10 2014-08-21 Inst Information Industry 作業系統處理方法以及系統、以及儲存其之電腦可讀取記錄媒體
CN103135995A (zh) * 2011-11-22 2013-06-05 中兴通讯股份有限公司 一种BootLoader的备份管理方法及装置
US8281119B1 (en) * 2011-11-22 2012-10-02 Google Inc. Separate normal firmware and developer firmware
KR101994811B1 (ko) * 2012-03-04 2019-07-01 삼성전자주식회사 전자 장치, mbr 복원 방법 및 컴퓨터 판독가능 기록매체
KR101403305B1 (ko) * 2012-08-23 2014-06-05 한국전자통신연구원 백업부트레코드 정보를 이용한 파티션 복구 장치 및 방법
KR20140060912A (ko) * 2012-11-13 2014-05-21 한국전자통신연구원 부트로더를 업데이트하는 방법 및 장치
JP6021597B2 (ja) * 2012-11-15 2016-11-09 三菱電機株式会社 情報処理装置、情報処理方法、およびコンピュータプログラム
CN104375844A (zh) * 2013-08-12 2015-02-25 中兴通讯股份有限公司 固件升级方法及装置
US9792075B1 (en) * 2014-02-26 2017-10-17 Veritas Technologies Llc Systems and methods for synthesizing virtual hard drives
CN104079631B (zh) * 2014-06-09 2018-10-16 中国建设银行股份有限公司 一种版本管理方法及相关装置
US20160019117A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Creating customized bootable image for client computing device from backup copy
CN105700965A (zh) * 2014-11-26 2016-06-22 英业达科技有限公司 系统错误排除方法
US9626277B2 (en) * 2015-04-01 2017-04-18 Microsoft Technology Licensing, Llc Anomaly analysis for software distribution
US10191811B2 (en) * 2015-08-13 2019-01-29 Quanta Computer Inc. Dual boot computer system
CN106469069B (zh) * 2015-08-17 2021-06-11 中兴通讯股份有限公司 一种版本升级方法及系统
JP6408450B2 (ja) * 2015-10-26 2018-10-17 日立オートモティブシステムズ株式会社 自動車用電子制御装置
CN105468420B (zh) * 2015-12-25 2018-12-28 广州视睿电子科技有限公司 操作系统升级方法和装置
CN106775610B (zh) * 2016-03-22 2021-11-12 新华三技术有限公司 一种电子设备启动方法及一种电子设备
CN108024002B (zh) * 2016-10-31 2021-05-07 成都卫士通信息产业股份有限公司 一种基于rom的双域手机系统的构建方法
US10416991B2 (en) 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10402273B2 (en) * 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10341361B2 (en) * 2017-06-05 2019-07-02 Hewlett Packard Enterprise Development Lp Transmitting secure information
CN107273139A (zh) * 2017-07-05 2017-10-20 努比亚技术有限公司 一种系统更新方法、设备及计算机可读存储介质
KR102422226B1 (ko) * 2017-11-28 2022-07-15 엘지전자 주식회사 공기조화시스템의 중앙제어장치 및 그의 소프트웨어 업데이트 방법
CN108089876B (zh) * 2017-12-29 2020-09-18 中国科学院国家空间科学中心 一种星载dsp软件在轨更新方法
CN110045971B (zh) * 2018-01-16 2023-03-24 浙江宇视科技有限公司 系统升级恢复方法及装置
CN108415718B (zh) * 2018-03-28 2021-06-08 南京理工大学 一种应用于星载软件在线更新的BootLoader设计方法
KR101947487B1 (ko) * 2018-04-12 2019-05-02 주식회사 케이디티 데이터 자동복구가 가능한 감시 제어 장치
CN110389786B (zh) * 2018-04-20 2022-10-14 伊姆西Ip控股有限责任公司 内核管理方法、电子设备和计算机可读存储介质
CN108694051A (zh) * 2018-05-18 2018-10-23 深圳市先河系统技术有限公司 基于双系统的升级方法、装置以及存储装置
JP2020087293A (ja) * 2018-11-30 2020-06-04 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
CN109766140A (zh) * 2018-12-19 2019-05-17 青岛海信宽带多媒体技术有限公司 一种机顶盒启动异常的定位方法及装置
EP3941078A4 (en) * 2019-03-13 2022-12-07 Hisense Visual Technology Co., Ltd. RESET DEVICE AND INDICATOR
CN110007971A (zh) * 2019-03-25 2019-07-12 联想(北京)有限公司 一种信息处理方法及装置、设备、存储介质
CN109992312B (zh) * 2019-03-26 2021-09-14 联想(北京)有限公司 电子设备的启动方法、装置以及系统
US11237924B2 (en) 2019-12-11 2022-02-01 Commvault Systems, Inc. Dynamic resizing and re-distribution of destination data storage resources for bare metal restore operations in a data storage management system
US11275574B2 (en) * 2020-02-03 2022-03-15 Dell Products L.P. Recovering the last successful device update on a computing system
CN111459525A (zh) * 2020-04-14 2020-07-28 潘传迪 应用程序更新数据处理系统、方法、存储介质、计算机
JP7362583B2 (ja) * 2020-09-23 2023-10-17 株式会社東芝 情報処理装置
US20220147636A1 (en) * 2020-11-12 2022-05-12 Crowdstrike, Inc. Zero-touch security sensor updates
US20240069923A1 (en) * 2022-08-24 2024-02-29 Quanta Cloud Technology Inc. Standardized and robust framework to enhance bootloader configuration management

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557799A (en) * 1990-03-22 1996-09-17 International Business Machines Computer determination of operating system or data
JP3716971B2 (ja) * 1994-09-19 2005-11-16 株式会社日立製作所 プログラム更新/回復方法
US6560701B1 (en) 1997-02-10 2003-05-06 International Business Machines Corporation Alternate boot record
US6175917B1 (en) 1998-04-23 2001-01-16 Vpnet Technologies, Inc. Method and apparatus for swapping a computer operating system
US6308264B1 (en) * 1998-09-30 2001-10-23 Phoenix Technologies Ltd. Dual use master boot record
US6205558B1 (en) * 1998-10-07 2001-03-20 Symantec Corporation Recovery of file systems after modification failure
US6490722B1 (en) * 1999-03-30 2002-12-03 Tivo Inc. Software installation and recovery system
US6532538B1 (en) * 2000-02-17 2003-03-11 International Business Machines Corporation Method and system for supporting multiple operating systems on the same disk running on different computers at the same time
US6741978B1 (en) 2000-04-12 2004-05-25 Intel Corporation Accessing file data stored in non-volatile re-programmable semiconductor memories
US6792556B1 (en) * 2000-05-31 2004-09-14 Dell Products L.P. Boot record recovery
US7150036B1 (en) * 2000-07-18 2006-12-12 Western Digital Ventures, Inc. Method of and personal computer for displaying content received from a content delivery server using a disk drive which includes a network address for the content delivery server and a server-contacting program
US20020124245A1 (en) * 2000-08-14 2002-09-05 Alvin Maddux Method and apparatus for advanced software deployment
KR20020065186A (ko) * 2001-02-06 2002-08-13 삼성전자 주식회사 셀룰러 시스템에서 업데이트 실패시 부터코드의 복구방법
DE10129425C1 (de) * 2001-06-19 2003-02-13 Tenovis Gmbh & Co Kg Verfahren zum Betrieb eines Computersystems und Computersystem
US6711660B1 (en) 2001-06-22 2004-03-23 Western Digital Ventures, Inc. System and method for performing disk drive diagnostics and restoration using a host-inaccessible hidden partition
US6862681B2 (en) 2001-07-16 2005-03-01 International Business Machines Corporation Method and system for master boot record recovery
WO2003050683A1 (fr) * 2001-08-31 2003-06-19 Legend (Beijing) Limited Procede de sauvegarde et de recuperation de donnees sur le disque dur d'un ordinateur
JP2003084979A (ja) 2001-09-07 2003-03-20 Internatl Business Mach Corp <Ibm> 電子装置の起動方法、電子装置およびプログラム
US7251812B1 (en) * 2001-10-31 2007-07-31 Microsoft Corporation Dynamic software update
CN1286012C (zh) * 2002-03-20 2006-11-22 联想(北京)有限公司 计算机硬盘内信息恢复和备份的实现方法
JP2004038716A (ja) * 2002-07-05 2004-02-05 Hitachi Printing Solutions Ltd 障害発生時の自動復旧機能を備えたファームウェア更新方法
US7194659B2 (en) * 2002-12-10 2007-03-20 International Business Machines Corporation Method and system for detection and correction of entrance into an improper MBR state in a computer system
US20040158701A1 (en) * 2003-02-12 2004-08-12 Dell Products L.P. Method of decreasing boot up time in a computer system
KR20040083236A (ko) * 2003-03-21 2004-10-01 엘지전자 주식회사 메모리의 프로그램 업그레이드 방법
WO2004090722A1 (en) * 2003-04-11 2004-10-21 Star Softcomm Pte Ltd Data isolation system and method
KR101115486B1 (ko) 2003-08-08 2012-02-27 엘지전자 주식회사 컴퓨터 시스템의 부팅 제어 장치 및 방법
KR100506203B1 (ko) * 2003-09-17 2005-08-05 삼성전자주식회사 부팅 및 부트 코드 업데이트 방법 및 시스템
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US20060041738A1 (en) * 2004-08-17 2006-02-23 Yu-Chen Lai Recovery method for master boot record of hard disk drive
TWI263939B (en) * 2004-09-22 2006-10-11 Lite On Technology Corp Dynamic boot system and method, machine readable medium thereof, and construction method for an operating system image
US7698698B2 (en) * 2004-09-30 2010-04-13 Smith Micro Software, Inc. Method for over-the-air firmware update of NAND flash memory based mobile devices
US7484127B2 (en) * 2005-01-13 2009-01-27 Nokia Siemens Networks Oy Method and system for preserving crash dump in a diskless system
US20060288197A1 (en) * 2005-06-16 2006-12-21 Swanson Robert C Identifying an operating system associated with a boot path
US7634689B2 (en) * 2005-09-22 2009-12-15 Advanced Micro Devices, Inc. Boot performance optimization for hard drive for personal internet communicator

Also Published As

Publication number Publication date
US8825995B2 (en) 2014-09-02
US20140337608A1 (en) 2014-11-13
KR20070035164A (ko) 2007-03-30
EP1770513B1 (en) 2013-07-03
US8166285B2 (en) 2012-04-24
EP1770513A2 (en) 2007-04-04
US20120054475A1 (en) 2012-03-01
EP1770513A3 (en) 2009-04-15
CN1940878A (zh) 2007-04-04
US9792105B2 (en) 2017-10-17
US20070073978A1 (en) 2007-03-29
KR100750132B1 (ko) 2007-08-21

Similar Documents

Publication Publication Date Title
CN1940878B (zh) 引导和自动更新软件和从更新错误中恢复的方法和系统
US8271833B2 (en) Method, system and article of manufacture for system recovery
JP5113700B2 (ja) ファームウェア更新装置及び方法
EP2652599B1 (en) System reset
JP2004520651A (ja) コンピュータオペレーティングシステム保護方法及び装置
US20040103340A1 (en) Upgrading of firmware with tolerance to failures
CN115480798B (zh) 操作系统升级方法、设备、存储介质及计算机程序产品
CN113805914B (zh) 操作系统升级方法、设备、存储介质及计算机程序产品
EP3769224B1 (en) Configurable recovery states
CN110096300B (zh) 一种fpga程序文件备份管理系统、运行方法及升级方法
RU2248627C2 (ru) Способ и устройство для изменения содержимого запоминающих устройств блоков управления
KR20000049321A (ko) 플래시 카드를 이용한 리눅스 자동복구시스템
CN113821263B (zh) 操作系统的管理方法、设备、存储介质及计算机程序产品
CN113806139A (zh) 操作系统恢复方法、设备、存储介质及计算机程序产品
CN116048644B (zh) 一种系统迁移方法、装置和可读存储介质
KR100853941B1 (ko) 멀티미디어 저장장치와 데이터 복구방법
KR101393034B1 (ko) 시스템 복원 장치 및 방법
CN113467797B (zh) 程序更新方法、装置和系统以及计算机可读存储介质
Fitzsimmons Reliable software updates for on-orbit cubesat satellites
EP4113288B1 (en) Systems and method for bootup activation of firmware images
EP1302851A2 (en) Improvements relating to reprogramming an electronic apparatus
CN115904820B (zh) 一种失效硬盘的恢复方法及系统
TWI448967B (zh) 軟體更新方法與電腦可讀取媒體
KR20060087215A (ko) 펌웨어 업그레이드 방법
CN116451233A (zh) 一种卫星操作系统软件安全启动的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523

Termination date: 20210927

CF01 Termination of patent right due to non-payment of annual fee