JP7059691B2 - 電子機器およびプログラム - Google Patents

電子機器およびプログラム Download PDF

Info

Publication number
JP7059691B2
JP7059691B2 JP2018035005A JP2018035005A JP7059691B2 JP 7059691 B2 JP7059691 B2 JP 7059691B2 JP 2018035005 A JP2018035005 A JP 2018035005A JP 2018035005 A JP2018035005 A JP 2018035005A JP 7059691 B2 JP7059691 B2 JP 7059691B2
Authority
JP
Japan
Prior art keywords
update
information
partition
storage area
updated
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
Application number
JP2018035005A
Other languages
English (en)
Other versions
JP2019149118A (ja
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2018035005A priority Critical patent/JP7059691B2/ja
Priority to US16/278,854 priority patent/US20190265964A1/en
Publication of JP2019149118A publication Critical patent/JP2019149118A/ja
Application granted granted Critical
Publication of JP7059691B2 publication Critical patent/JP7059691B2/ja
Active 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
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、複数のシステムにより多重化された電子機器および複数のシステムの更新処理をコンピュータに実行させるためのプログラムに関する。
PCやプリンタ等の電子機器に実装された各ハードウェアを制御するために、ファームウェアと呼ばれるプログラムが使用される。ファームウェアは、不具合、欠陥、脆弱性等が見つかった場合や機能の追加等に伴って更新され、ファームウェア更新のために、更新ファイルが提供される。
ファームウェア更新は、更新ファイルが読み込めない等の原因により失敗する場合があり、更新が失敗しても、電子機器を正常に起動させ、更新を再開させるために、ファームウェアを多重化する技術が知られている(例えば、特許文献1参照)。
上記の技術では、ファームウェアとして、正常時に起動するプライマリシステムと、更新失敗時に起動するセカンダリシステムとが存在する論理区画(パーティション)が共に固定である。このため、プライマリシステムの更新から開始し、その更新が失敗した場合、再起動後、セカンダリシステムによるプライマリシステムの更新を行い、再び再起動しなければ、ユーザが電子機器を利用できる状態にすることができない。これでは、ユーザが電子機器を利用できない期間(ダウンタイム)が発生するという問題があった。
本発明は、上記の問題に鑑みなされたものであり、ダウンタイムを減少させることができる電子機器およびプログラムを提供することを目的とする。
上述した課題を解決するために、発明の一実施形態では、複数のシステムにより多重化された電子機器であって、
起動するシステムを指定する指定情報を参照して、指定されたシステムとは異なる他のシステムを更新対象のシステムとして設定し、指定されたシステムに対応する制御プログラムを読み出し、起動処理を実行する起動手段と、
外部から取得したシステムの更新情報に従って、更新処理の進捗状況を示す更新進捗情報を設定し、起動手段により更新対象のシステムとして設定された他のシステムに対応する制御プログラムの更新処理が完了した後に、指定情報で指定するシステムを他のシステムに変更する更新手段と
を含む、電子機器を提供する。
本発明によれば、ダウンタイムを減少させることができる。
画像形成装置のハードウェア構成の一例を示した図。 画像形成装置のハードウェアおよびソフトウェア構成の一例を示した図。 画像形成装置の起動処理に関する主要な機能構成を示したブロック図。 画像形成装置のシステム更新に関する第1の機能構成を示したブロック図。 更新ファイルのデータ構造の一例を示した図。 画像形成装置の起動処理の第1の例を示したフローチャート。 画像形成装置のシステム更新通知が来た場合の処理の第1の例を示したフローチャート。 更新中断情報がNVRAMに記憶されている場合の処理の第1の例を示したフローチャート。 NVRAMに記憶される記憶情報の遷移について説明する図。 記憶情報の遷移における区間1で更新中断が発生した場合の処理の第1の例を示したフローチャート。 記憶情報の遷移における区間2で更新中断が発生した場合の処理の第1の例を示したフローチャート。 ファイルシステムについて説明する図。 画像形成装置のシステム更新に関する第2の機能構成を示したブロック図。 画像形成装置のシステム更新通知が来た場合の処理の第2の例を示したフローチャート。 更新中断情報がNVRAMに記憶されている場合の処理の第2の例を示したフローチャート。 記憶情報の遷移における区間1で更新中断が発生した場合の処理の第2の例を示したフローチャート。 記憶情報の遷移における区間2で更新中断が発生した場合の処理の第2の例を示したフローチャート。
以下、本実施形態の電子機器を、画像形成装置として説明するが、電子機器は、画像形成装置に限定されるものではない。画像形成装置には、コピー機、ファクシミリ装置、スキャナ装置、プリンタのほか、コピー、ファクシミリ、スキャナ、プリント等の画像を扱う複合機能を有する複合機等があるが、以下、画像形成装置を複合機として説明する。
図1は、画像形成装置10のハードウェア構成の一例を示した図である。画像形成装置10は、コントローラ11と、操作部12と、エンジン13とを含んで構成される。コントローラ11は、CPU20と、ASIC(Application Specific Integration Circuit)21と、DRAM(Dynamic Random Access Memory)22と、ハードディスクドライブ(HDD)23と、不揮発性メモリとしてのNVRAM24と、SSD25とを備える。また、コントローラ11は、USB(Universal Serial Bus)メモリ30を接続し、USBメモリ30への読み書きを制御するUSB I/F26と、SDカード31を接続し、SDカード31への読み書きを制御するSDカードI/F27とを備える。
CPU20は、画像形成装置10全体を制御し、DRAM22を作業用記憶領域として使用し、所定の処理を実行する。CPU20は、ASIC21を介してHDD23と接続され、各種のプログラムをHDD23からDRAM22に読み出し、実行する。CPU20は、USB I/F26と接続され、USBメモリ30から印刷ジョブ等を受け付ける。このため、DRAM22は、印刷ジョブを処理するための描画用メモリ等としても使用される。また、CPU20は、操作部12と接続され、操作部12が受け付けた各種指示の入力に基づき、操作部12が表示する画面を作成し、提供する。
ASIC21は、HDD23に記憶された画像データを読み出し、各種の画像処理を実行する。ASIC21は、SSD25と接続され、SSD25は、記憶領域が2つの論理区画(パーティション)に論理的に分割され、システムを二重化するために当該システムに対応する制御プログラムが各パーティションに記憶されている。
ここで、システムとは、ハードウェアを制御するためのファームウェアと、その上位の各アプリケーション(以下、アプリと略す。)とからなる集合をいう。システムの二重化とは、システムに対応する制御プログラムを2組用意し、各制御プログラムを、例えばSSD25の各パーティションに記憶し、起動するシステムを選択可能とされた構成をいう。各システムは、同一構成であってもよいし、最小構成のみが同一で、相違する構成を含むものであってもよい。
図1に示す例では、「SSD1」と「SSD2」というパーティションが形成されている。この例では、HDD23とは別にSSD25を設けているが、HDD23のみとし、HDD23を論理的に分割してパーティションを形成した構成にしてもよいし、HDD23を設けず、SSD25のみとし、ASIC21が使用する画像データ等をSSD25に記憶する構成にしてもよい。
NVRAM24は、画像形成装置10の各種システム情報や各種設定情報を記憶し、本実施形態では、後述する更新中断情報を記憶する。
操作部12は、ユーザから各種指示の入力を受け付け、画面表示を行うためのユーザ・インタフェースを提供する。エンジン13は、ASIC21と接続され、CPU20により実行される各種のプログラムが発行した指令を受け、画像形成処理や画像読取処理等を実行する。
SDカード31は、外部記録媒体であり、システムを更新するために使用される更新情報として更新ファイルを記憶する。CPU20は、プログラムを実行してSDカード31から更新ファイルを読み出し、SSD25の各パーティションに記憶された制御プログラムを書き換え、システムを更新する。
図1では、SSD25のパーティション毎に制御プログラムを記憶させることで、システムを多重化しているが、SSD25のほかに、別のSSDを設け、機器(デバイス)毎に制御プログラムを記憶させて多重化してもよい。なお、システムは、二重化に限らず、三重化以上であってもよい。
図2は、画像形成装置10のハードウェアおよびソフトウェア構成の一例を示した図である。ハードウェアは、HDD23やエンジン13等のデバイスで、これらのデバイスはハードウェア・リソース40として参照される。ソフトウェアは、起動部50とアプリケーション層51とプラットフォーム層52とを含んで構成される。
エンジン13とプラットフォーム層52との間には、エンジン13とプラットフォーム層52とを接続するためのエンジンI/F60が設けられる。
アプリケーション層51は、各種機能を提供するための各種のアプリを含む。アプリケーション層51は、アプリとして、コピー・アプリ70、ファックス・アプリ71、スキャナ・アプリ72、プリンタ・アプリ73、リモート更新アプリ74を含む。
コピー・アプリ70は、原稿を読み取り、印刷して出力する処理を実行する。ファックス・アプリ71は、原稿を読み取り、ファックス送信する処理や、ファックス受信し、印刷して出力する処理を実行する。スキャナ・アプリ72は、原稿を読み取る処理を実行し、プリンタ・アプリ73は、読み取った原稿や画像データを印刷して出力する処理を実行する。リモート更新アプリ74は、システム更新が必要と判断したとき、インターネット経由で最新のシステムをダウンロードし、システムの更新処理を実行する。
アプリケーション層51は、プラットフォーム層52とAPI(Application Programming Interface)53により接続される。API53は、予め定義された関数を有し、アプリケーション層51から処理要求を受け付け、プラットフォーム層52に対して処理要求を処理させる。
プラットフォーム層52は、エンジン制御サービス(ECS)80、メモリ制御サービス(MCS)81、オペレーション制御サービス(OCS)82、ファクシミリ制御サービス(FCS)83、ネットワーク制御サービス(NCS)84、システム制御サービス(SCS)85といった各種の制御サービスを含む。制御サービスは、アプリケーション層51からの処理要求を解釈し、ハードウェア・リソース40の獲得要求を生成する。
ECS80は、エンジン13やHDD23等のハードウェア・リソース40を制御し、画像の読み込みや画像形成動作等を制御する。MCS81は、画像メモリの取得や解放、画像データの圧縮や伸張等のメモリ制御を行う。OCS82は、ユーザと画像形成装置10との間のインタフェースとなる操作部12の制御を行う。FCS83は、GSTN(General Switched Telephone Network)インタフェースと接続し、GSTN網を使用したファクシミリ送受信、ファクシミリ読み取り等を制御する。
NCS84は、NIC(Network Interface Card)を制御して、画像形成装置10をインターネットやイーサネット(登録商標)と接続し、ネットワークI/Oを必要とするアプリに対して共通に利用可能なサービスを提供する。NCS84は、ネットワーク側から各プロトコルによって受信したデータを各アプリに振り分け、各アプリからのデータをネットワーク側に送信する際の仲介を行う。
SCS85は、各アプリの管理、システム画面表示やLED表示等のユーザ・インタフェースの制御、ハードウェア・リソース40の管理、割り込みアプリの制御等を行う。
プラットフォーム層52は、そのほか、システム資源管理マネージャ(SRM)86、イメージメモリハンドラ(IMH)87、OS88を含む。SRM86は、OS88を通してエンジン13を調停する。IMH87は、OS88を通してコントローラ11およびエンジン13間の画像データの転送を制御する。OS88は、各アプリやサービスに対して標準的なインタフェースを提供し、ハードウェア・リソース40を効率的に管理する。OS88としては、UNIX(登録商標)やWINDOWS(登録商標)等を使用することができる。
起動部50は、画像形成装置10の電源投入時に起動され、アプリケーション層51やプラットフォーム層52のプロセス群に対応する制御プログラムを読み出し、メモリ上に展開して、プロセスを起動する。このプロセスの起動により、システムが起動され、各機能部が実現される。
画像形成装置10は、2つのシステムのうちの一方のシステム(以下、プライマリシステムと呼ぶ。)と、他方のシステム(以下、セカンダリシステムと呼ぶ。)とによって冗長化される。このため、一方のシステムが、更新処理の中断により障害を被った場合でも、他方のシステムの起動が可能となるように構成されている。
図3を参照して、画像形成装置10の起動処理について説明する。図3は、画像形成装置10の起動処理に関する主要な機能構成を示したブロック図である。図3は、起動手段として機能するブートローダ90と、NVRAM24と、SSD25の記憶領域により与えられる第1のパーティション91および第2のパーティション92と、操作部12と、システム93とを示している。
NVRAM24は、記憶手段として機能し、ブートローダ90により参照され、起動するシステムを指定する指定情報として、起動するシステムが存在するパーティションを識別するための起動パーティション番号94を記憶する。第1のパーティション91および第2のパーティション92は、冗長化された2つのシステムの各々に対応した制御プログラム95、96を記憶する。このため、ブートローダ90は、起動パーティション番号94に応じて、読み出す制御プログラムを切り替え、システムを起動させることができる。
ユーザが画像形成装置10の電源を投入すると、ブートローダ90が起動し、NVRAM24に記憶された起動パーティション番号94を参照して、起動するパーティションを決定する。そして、ブートローダ90が決定したパーティションから制御プログラムを読み出し、システム93の起動処理を実行する。
NVRAM24は、起動パーティション番号94のほか、更新処理の状況(ステータス)を示す更新中断情報97を記憶する。更新中断情報97は、更新対象のモジュールを識別するためのモジュールIDと、更新処理の実行順位を示すインデックスとを含む。モジュールは、システムを構成するファームウェアや各アプリ等である。
インデックスは、更新処理の進捗状況を示す情報である。インデックスは、例えばプライマリシステム、セカンダリシステムの順に更新処理を実行する場合、現在の更新処理がプライマリシステムの場合は「1/2」に、セカンダリシステムの場合は「2/2」に設定される。インデックスの記号「/」より前方にある値、すなわちインデックスの最初の数値は、システム更新処理の順位を示し、記号「/」の後方にある値、すなわちインデックスの後の数値は、総処理数を示す。
ブートローダ90により起動されたシステム93は、検知部100と、更新部101とを含んで構成される。
検知部100は、NVRAM24に記憶された記憶情報を参照し、参照した記憶情報の中に、更新中断情報97があるかどうかを確認する。すなわち、検知部100は、モジュールIDおよびインデックスが設定されているかを確認する。更新中断情報97がある場合、検知部100は、システム更新が中断されたことを検知する。更新中断情報97は、更新処理の開始により設定され、更新処理の完了をもってその設定が消去される。このため、更新中断情報97があるということは、電源断等により更新処理が中断されたことを示している。
更新部101は、SDカード31等の外部から取得した更新ファイルを解析して、更新を開始できるかを判断し、更新を開始できる場合はシステムの更新を開始する。更新を開始できない場合は、通知手段として機能する操作部12に対し、ユーザに対してエラーを通知するように指示する。
図4を参照して、画像形成装置10のシステム更新について説明する。図4は、画像形成装置のシステム更新に関する主要な機能構成を示したブロック図である。起動されたシステム93は、更新部101を含み、更新部101は、解析部102、更新制御部103、書換部104を含む。NVRAM24は、図3に示したように、起動パーティション番号94と、更新中断情報97とを含む。図4では、第1のパーティション91がプライマリシステム用制御プログラム95を含み、第2のパーティション92がセカンダリシステム用制御プログラム96を含んで構成されている。
SDカード31により提供されるシステムの更新ファイル105は、SDカード31から読み出され、メモリ上に展開される。なお、更新ファイル105は、リモート更新アプリ74によりインターネット経由でダウンロードし、メモリ上に展開されてもよい。メモリは、DRAM22である。
解析部102は、メモリ上に展開された更新ファイル105を解析し、更新ファイル105の中から必要な情報を抽出する。図5に、更新ファイル105の構成例を示す。更新ファイル105は、データ本体とは別にデータの先頭に置かれるヘッダ部110と、データ本体が記録されるデータ部120とを含む。
ヘッダ部110は、プライマリシステムとセカンダリシステムとに共通の事項を定める共通ヘッダ111と、プライマリシステムに固有な事項を定めるプライマリシステム用ヘッダ112と、セカンダリシステムに固有な事項を定めるセカンダリシステム用ヘッダ113とを含む。
共通ヘッダ111は、画像形成装置10の機種を特定するための機種ID114と、更新対象のモジュールID115とを含む。プライマリシステム用ヘッダ112およびセカンダリシステム用ヘッダ113はそれぞれ、更新先の記憶領域を示す更新先アドレス116a、116bと、更新先の記憶領域の大きさを示す更新先領域長117a、117bと、インデックス指定値118a、118bとを含む。インデックス指定値118a、118bは、更新中断情報97のインデックスに設定するための値である。
データ部120は、更新対象のモジュールの、バイナリ実行コードにより記述される制御プログラムを含み、各パーティションの各更新部分を書き換えるための更新実体データ121と、更新実体データ121の正当性を保証するために添付される電子署名122とを含む。
電子署名122は、ハッシュ関数と呼ばれる関数を使用して更新実体データ121からハッシュ値を計算し、計算したハッシュ値を、秘密鍵を使用して暗号化したものである。電子署名122は、更新ファイル105の作成者により付与される。このため、更新ファイル105により更新しようとする者は、更新ファイル105に含まれる更新実体データ121に対してハッシュ関数を適用してハッシュ値を計算し、秘密鍵に対応する公開鍵を使用して復号し、両者が一致するかを確認することで、電子署名122の正当性を検証することができる。電子署名122としては、例えばRSA署名、DSA署名、Schnorr署名、ElGamal署名等を採用することができる。
再び図4を参照して、解析部102は、必要な情報として、共通ヘッダ111等に含まれる機種ID114等の各ヘッダに含まれる情報および更新するデータを抽出する。
更新制御部103は、更新開始前の更新中断情報97の設定と、更新終了後の起動パーティション番号94の変更を行う。また、更新制御部103は、外部のSDカード31等から更新ファイル105を取得したことを受けて、更新対象のシステムに対応する制御プログラムの更新処理を開始する。
書換部104は、更新制御部103の更新処理の開始を受けて、抽出された更新先アドレス116a、116b、更新先領域長117a、117b、更新実体データ121を基に、各パーティションに記憶された制御プログラムを書き換える。図4に示す例では、制御プログラム95、96の一部が更新され、その一部が更新部分106、107として示されている。
図6を参照して、画像形成装置10の起動処理について詳細に説明する。ユーザが画像形成装置10の電源ボタンを押下し、電源を投入することにより、ステップ600から起動処理を開始する。ステップ601では、ブートローダ90が起動し、ブートローダ90がNVRAM24から起動パーティション番号94を取得する。
ステップ602で、ブートローダ90が取得した起動パーティション番号94が第1のパーティション91を示す番号「1」であるかを確認する。第1のパーティション91を示す番号「1」である場合、ステップ603へ進み、ブートローダ90は、起動システムが存在するデバイスとして参照される機器情報としてのデバイス名Aに、第1のパーティション91を割り当て、第1のパーティション91から起動できる状態にする。すなわち、デバイス名Aに第1のパーティション91をマウントする。そして、ステップ604で、第1のパーティション91とは異なる第2のパーティション92を、更新対象のシステムが存在するデバイスとして参照されるデバイス名Bにマウントし、システムを更新できる状態にする。
一方、ステップ602で第1のパーティション91を示す番号でない場合、ステップ605へ進み、ブートローダ90は、起動システムを示すデバイス名Aに第2のパーティション92にマウントする。そして、ステップ606で、ブートローダ90は、第2のパーティション92とは異なる第1のパーティション91を、更新対象のシステムを示すデバイス名Bにマウントする。
ステップ607では、ブートローダ90が、起動システムを示すデバイス名Aにマウントしたパーティションに存在する制御プログラムを読み出し、システム93を起動する。システム93の起動により、ステップ608で起動処理を終了する。
次に図7を参照して、起動処理が完了した後にシステム更新通知が来た場合の処理について詳細に説明する。SDカードスロットへのSDカード31の挿入や更新ファイル105のダウンロードにより、ステップ700から処理を開始する。ステップ701では、検知部100がNVRAM24に更新中断情報97が記憶されているかどうかを確認する。確認した結果、更新中断情報97が記憶されている場合、符号Aに進み、記憶されていない場合、通常の更新処理であり、ステップ702へ進む。
ステップ702では、更新部101に含まれる解析部102が、更新ファイル105に含まれる共通ヘッダ111から機種ID114およびモジュールID115を取得し、検証する。検証は、取得した機種ID114が画像形成装置10の機種IDと一致するか、画像形成装置10に実装されているモジュールの中に、取得したモジュールID115に一致するものが存在するかを確認することにより行われる。
ステップ703では、解析部102が、更新ファイル105に含まれるデータ部120から電子署名122を取得し、電子署名122の正当性を検証する。電子署名122の正当性の検証方法については既に説明したので、ここではその説明を省略する。
ステップ704では、機種ID114およびモジュールID115の検証結果、並びに電子署名122の正当性の検証結果に基づき、更新処理を実行できるかを判断する。検証結果で機種ID114が一致しない、もしくはモジュールID115に一致するものが存在しない、または電子署名122の正当性が確認できない場合、更新を開始できないものとして、ステップ705へ進み、エラーを通知し、ステップ714へ進み、この処理を終了する。
一方、ステップ704で、検証結果で機種ID114が一致し、かつモジュールID115に一致するものが存在し、かつ電子署名122の正当性が確認できた場合、更新を開始できるものとして、ステップ706へ進む。ステップ706では、更新制御部103が、更新ファイル105のプライマリシステム用ヘッダ112から、更新先アドレス116a、更新先領域長117a、インデックス指定値118aを取得する。
ステップ707では、更新制御部103が、取得したモジュールID115、インデックス指定値118aを更新中断情報97として設定する。
ステップ708では、更新制御部103が、更新対象のシステムの更新を開始する。更新対象のシステムは、デバイス名Bで示されるパーティションのシステムで、当該パーティションに記憶された制御プログラムにより起動されるシステムである。書換部104は、取得した更新先アドレス116a、更新先領域長117aを基に、更新実体データ121を使用して制御プログラム95を書き換え、システムを更新する。
ステップ709では、更新制御部103が、更新対象のシステムの更新として、そのシステムを起動するための制御プログラム95の書き換えが完了したかを確認する。完了したところで、ステップ710へ進み、更新制御部103が、更新ファイル105のセカンダリシステム用ヘッダ113から、更新先アドレス116b、更新先領域長117b、インデックス指定値118bを取得する。
ステップ711では、更新制御部103が、NVRAM24に記憶された更新中断情報97に設定されたモジュールID115およびインデックスを、取得した値に書き換え、設定する。ステップ712で、更新制御部103が、NVRAM24に記憶された起動パーティション番号94を、デバイス名Bで示されるパーティションのパーティション番号に変更する。そして、ステップ713で再起動し、ステップ714で処理を終了する。
図8を参照して、図7のステップ701で更新中断情報97がNVRAM24に記憶されている場合の処理について説明する。なお、図7に示すステップ713で再起動を行うと、更新中断情報97がNVRAM24上に残ったままとなるので、再度処理をステップ700から開始し、ステップ701で符号Aに進み、図8に示す処理を実行することになる。ステップ800の符号Aから開始し、ステップ801では、更新制御部103が、NVRAM24に記憶されている更新中断情報97を読み出し、取得する。
ステップ802およびステップ803は、図7に示したステップ702およびステップ703と同様の処理を実行する。ステップ804では、機種ID114およびモジュールID115の検証結果、並びに電子署名122の正当性の検証結果に基づき、更新処理を実行するか否かを判断する。更新を開始できない場合、符号Cへ進み、図7に示すステップ705へ進んでエラーを通知し、ステップ714へ進み、この処理を終了する。
ステップ804で更新を開始できる場合は、ステップ805へ進み、更新制御部103が、更新ファイル105のプライマリシステム用ヘッダ112から、更新先アドレス116a、更新先領域長117a、インデックス指定値118aを取得する。
ステップ806では、更新制御部103が、取得した更新中断情報97に含まれるインデックスと、取得したインデックス指定値118aとを比較し、インデックス指定値118aがインデックスの値以上であるかを確認する。プライマリシステム用ヘッダ112のインデックス指定値118aは、「1/2」に設定されているため、更新中断情報97に含まれるインデックスの値が「1/2」の場合に、インデックス指定値118aがインデックスの値以上となる。
なお、インデックス指定値118aがインデックスの値以上となる場合とは、更新進捗状況がプライマリシステムの更新完了未満であり、プライマリシステムの更新に失敗したことを意味する。インデックス指定値118aがインデックスの値未満である場合とは、インデックス指定値118aが「1/2」に対し、インデックスの値が「2/2」となる場合であり、プライマリシステムの更新に成功したことを意味する。
ステップ806でインデックス指定値118aがインデックスの値以上であることを確認した場合、プライマリシステムの更新を行うべく、ステップ807へ進み、更新制御部103が、取得したモジュールID115およびインデックス指定値118aに従って、更新中断情報97を書き換える。ステップ808で、更新制御部103が、デバイス名Bで示されるパーティションのシステムの更新処理を開始する。デバイス名Bにマウントしたパーティションが第1のパーティション91である場合、第1のパーティション91のシステムの更新処理を開始する。ステップ809では、更新制御部103が、更新処理が完了したかを確認する。
ステップ809で更新処理が完了したことを確認したところで、ステップ810へ進み、更新制御部103が、NVRAM24に記憶された起動パーティション番号94を、デバイス名Bで示されるパーティションのパーティション番号に変更する。そして、ステップ811で再起動し、ステップ817で処理を終了する。ステップ817で終了した後は、更新中断情報97がNVRAM24上に残ったままとなるので、再度処理をステップ700から開始し、ステップ701で符号Aに進み、ステップ800から処理を実行することになる。
ステップ806でインデックス指定値118aがインデックスの値未満であることを確認した場合、プライマリシステムの更新には成功しているため、セカンダリシステムの更新を行うべく、ステップ812へ進む。ステップ812からステップ816までの処理は、セカンダリ側への同期処理であるため、通常起動のバックグラウンドでの処理となる。
ステップ812では、更新制御部103が、更新ファイル105のセカンダリシステム用ヘッダ113から、更新先アドレス116b、更新先領域長117b、インデックス指定値118bを取得する。
ステップ813では、更新制御部103が、取得したモジュールID115およびインデックス指定値118bに従って、更新中断情報97を書き換える。ステップ814で、更新制御部103が、更新対象のシステムの更新を開始する。更新対象のシステムは、デバイス名Bで示されるパーティションのシステムである。このときのデバイス名Bには、図7のステップ712で起動パーティション番号94が、例えば第2のパーティション92から第1のパーティション91のパーティション番号に変更されているので、第2のパーティション92がマウントされている。このため、更新対象のシステムは、第2のパーティション92のシステムとなる。
ステップ815では、更新制御部103が、更新処理が完了したかを確認する。ステップ815で更新処理が完了したことを確認したところで、ステップ816へ進み、更新制御部103が、NVRAM24に記憶された更新中断情報97を消去し、ステップ817で処理を終了する。これにより、全更新が完了する。
図8に示すステップ812~ステップ816の処理を実施しているときに起動しているシステムは、単体で画像形成装置10としての機能を満たすものである。これは、起動しているシステムが、更新に成功したプライマリシステムだからである。上記の更新処理は、単純に両パーティションのシステムのバージョンを一致させるために同期を取っているだけである。したがって、再起動によるシステムのリブートは不要である。
図8に示すステップ812~ステップ816の処理は、通常起動のバックグラウンドで実行可能であるため、ユーザの体感としては、再起動してデバイス名Aで示されるパーティションから起動し、デバイス名Bで示されるパーティションのシステムを更新し、再起動するという従来の処理に比較し、約2倍の速度でシステム更新が終わり、画像形成装置10の使用が可能となる。
システム更新処理は、以上に説明した通りであるが、NVRAM24に記憶される記憶情報の状態遷移を、図9にまとめる。記憶情報は、起動パーティション番号94と、更新中断情報97とを含み、更新中断情報97は、モジュールID115と、インデックスとから構成される。
第1のパーティション91のパーティション番号を「1」とし、第2のパーティション92のパーティション番号を「2」とし、第1のパーティション91から起動した場合、起動後、起動するパーティションのパーティション番号として「1」が設定される。このとき、更新中断情報97はまだ設定されていないので、モジュールID115も、インデックスも、何も情報がないことを示す記号「-」となっている。
この例では、起動パーティションが第1のパーティション91であるため、更新対象のシステムが第2のパーティション92のシステムとなる。このため、システム更新の通知が来ると、更新ファイル105の共通ヘッダ111のモジュールID115から、例えば「SYSTEM」を、プライマリシステム用ヘッダ112のインデックス指定値118aから、例えば「1/2」を取得する。そして、これらの情報を更新中断情報97として設定する。このとき、起動パーティション番号は、更新されていないので、更新通知前と同じ「1」が設定される。
起動パーティション番号が更新され、再起動して、起動パーティションが第2のパーティション92になると、更新対象のシステムが第1のパーティション91のシステムとなる。更新ファイル105の共通ヘッダ111のモジュールID115から、上記と同様の「SYSTEM」を、セカンダリシステム用ヘッダ113のインデックス指定値118bから、例えば「2/2」を取得する。そして、これらの情報を更新中断情報97として設定する。このとき、起動パーティション番号が更新されているため、「2」が設定される。
両パーティションのシステムが更新されると、更新中断情報97が消去される。このため、モジュールID115およびインデックスが、何も情報がないことを示す記号「-」となる。起動パーティション番号については、最後の更新後、再起動していないので、最後の更新前と同じ「2」が設定される。
図9は、第1のパーティション91から起動する例を示したが、第2のパーティション92から起動してもよい。この場合、起動パーティション番号のみが逆になり、更新通知前は「2」、更新通知後は「2」、再起動後は「1」、更新完了後は「1」となる。
図9では、記憶情報の状態遷移を各区間に分けて説明したが、各区間で更新中断が発生した場合について、図10および図11を参照して説明する。図10は、図9に示す区間1(更新通知後から再起動前の区間)で更新中断が発生したときの処理の流れを示すフローチャートである。
ステップ1000の区間1で更新中断が発生すると、ステップ1001で、起動パーティション番号「1」で設定されている第1のパーティション91から起動し、ステップ1002で、共通ヘッダ111を解析する。ステップ1003で電子署名122の正当性を検証し、ステップ1004で、プライマリシステム用ヘッダ112を解析する。
ステップ1005では、デバイス名Bで示されるパーティション、この例では第2のパーティション92のシステムを更新し、ステップ1006で、再起動する。
ステップ1007で、第2のパーティション92から起動し、ステップ1008で共通ヘッダ111を解析し、ステップ1009で電子署名122の正当性を検証する。ステップ1010で、セカンダリシステム用ヘッダ113を解析し、デバイス名Bで示されるパーティション、ここではパーティションが更新され、第1のパーティション91となっているため、ステップ1011で第1のパーティション91のシステムを更新する。これにより、両パーティションのシステムが更新されたため、ステップ1012へ進み、処理を終了する。
図11は、図9に示す区間2(再起動後から更新完了前の区間)で更新中断が発生したときの処理の流れを示すフローチャートである。この処理では、既にプライマリシステムの更新は成功しているため、セカンダリシステムについてのみ更新を行う。
ステップ1100の区間2で更新中断が発生すると、ステップ1101で、起動パーティション番号「2」で設定されている第2のパーティション92から起動する。プライマリシステムの更新後、起動パーティション番号が「1」から「2」へ変更されるからである。
ステップ1102では、共通ヘッダ111を解析し、ステップ1103で、電子署名122の正当性を検証し、ステップ1104で、セカンダリシステム用ヘッダ113を解析する。そして、ステップ1105で、デバイス名Bで示されるパーティションのシステムを更新する。デバイス名Bで示されるパーティションは、起動しているパーティションである第2のパーティション92とは異なる第1のパーティション91である。更新が終了すると、ステップ1106へ進み、この処理を終了する。
このように、2つのパーティションが、通常起動するパーティションと更新失敗時に起動するパーティションに固定されないため、一方のシステムの更新が失敗しても、他方のシステムで正常に起動することができるので、ダウンタイムを減少させることができる。また、全更新後に再起動することなくそのまま使用することができ、セカンダリシステムの更新をバックグラウンドで実行することができるので、ダウンタイムをさらに減少させることができる。
システムは、1つのSSD25等の記憶装置を論理的に分割した論理パーティション上に構成できるので、1つのデバイスで実現でき、画像形成装置10を安価で提供することが可能となる。記憶情報は、システムが実装される記憶装置(SSD25)とは別の記憶装置(NVRAM24)に記憶するものとして説明したが、システムが実装される記憶装置と同一の記憶装置に記憶してもよい。これにより、デバイスの数を減らし、さらに安価で提供することが可能となる。
システムは、パーティション上ではなく、別個のSSD等の記憶装置上に別個に構成してもよく、これにより、片方のデバイスが故障しても動作が可能となり、装置の信頼性を向上させることができる。また、記憶情報をSSD25とは別のNVRAM24に記憶することで、システムが存在するデバイスが故障しても、記憶情報を記憶するデバイスが影響を受けることはなく、故障したデバイスのみを交換し、復旧することが可能となる。新たに記憶情報を作成する必要がないため、作成ミスを防止し、装置の信頼性を向上させることができる。
これまでに説明してきた例では、更新中断が発生しても、いずれかのパーティションは、更新前または更新後のシステムが存在し、起動可能となっており、正常起動し、失敗したシステム更新を再開させることができる。これらの例では、上記には説明していないが、システム更新に、ファイルシステムを利用して更新データの書き込みを行っている。
ファイルシステムは、データを管理する機能を提供し、管理情報を保持する。管理情報は、どこにどのようなファイルが格納されているかという情報である。このため、ファイルへのアクセス要求があった場合、管理情報を参照し、格納場所を調べてから実際のファイルにアクセスする。ファイルシステムには、MS-DOS(登録商標)で利用されるFAT(File Allocation Table)、Linux(登録商標)で利用されるext2(second extended filesystem)、ext3、ext4、UNIX(登録商標)で利用されるUFS(Unix File System)等がある。
図12を参照して、ファイルシステムについて説明する。ファイルシステムは、起動の際に参照される起動情報として、パーティションの区切りを決定するマスターブートレコード(MBR)130を有する。MBR130は、パーティション・エントリ・テーブル(PET)131を保持し、PET131は、各パーティションの先頭セクタを識別するための先頭セクタ番号132を格納する。
各パーティションの先頭セクタには、各ファイルシステム固有の管理情報が存在する。例えば、FATファイルシステムでは、図12に示すファイル管理のための構造を有する。
管理情報は、BIOSパラメータ・ブロック(BPB)133と、FAT134と、ルート・ディレクトリ・エントリ(RDE)135とを含む。なお、ユーザ・データ領域136は、ファイルの実体で、実際にシステム更新内容が書き込まれる領域である。
BPB133は、主に、1セクタ当たりのバイト数、ファイルサイズの最低単位、FAT1つ当たりのセクタ数、種類の情報を保持する。セクタは、最小の記録単位で、FATファイルシステムでは、1以上のセクタをまとめてクラスタとして管理する。FAT134は、管理するクラスタのクラスタ番号の管理ビット数によって3つの種類があり、その種類としてFAT12、FAT16、FAT32がある。
FAT134は、ユーザ・データ領域136のうち、ユーザが利用している領域、空き領域、使用不可領域等がどの場所にあるかを管理するテーブルである。
FATファイルシステムは、階層型のファイル構造を有し、階層の最上位の層のディレクトリやフォルダは、ルートと呼ばれる。RDE135は、そのルートに配置されるファイルの名前や属性、更新日時等の情報と、FAT134で確定された場所に配置してあるファイルのデータを関連付けるための情報とを保持する。
システム更新によりファイルの書き込みがあり、ユーザ・データ領域136が変化した場合、そのファイルを管理するFAT134やRDE135等の管理情報を書き換えなければならない。
システム更新では、ファイルシステムの管理情報の書き換えが頻繁に発生する。このため、管理情報の書き換え時に電源断が発生した場合、正常にファイルにアクセスできなくなり、管理情報が復旧不可能になる場合がある。
このことに鑑み、管理情報の書き換え前に、管理情報を起動可能なシステムが存在するパーティション内に複製(コピー)しておき、管理情報の書き換え時に電源断等で中断し、管理情報が復旧不可能になった場合、コピーしておいた管理情報を書き込み、更新前の状態に戻すようにする。書き込み後は、更新前の正常な管理情報が存在することから、システム更新をやり直すことができる。
これを実現するために、図3に示した更新部101は、解析部102、更新制御部103、書換部104に加えて、図13に示すようにファイルシステム管理部108を備える。
ファイルシステム管理部108は、更新対象のシステムが存在するパーティションから更新前のファイルシステムの管理情報を取得し、コピーして、起動しているシステムが存在するパーティション内に格納する。ファイルシステム管理部108は、取得した管理情報をもう1つコピーし、SDカード31内に格納することができる。
ファイルシステム管理部108は、更新対象のシステムが存在するパーティションのマウントが成功しているかを確認する。マウントが失敗している場合、管理情報に何らかの異常が存在していると判断することができる。したがって、ファイルシステム管理部108は、マウントが失敗している場合、起動しているシステムが存在するパーティション内に格納しておいた管理情報を、更新対象のシステムが存在するパーティション内に書き込み、更新前の状態に戻す。書き込み後、再起動することで、正常な管理情報となり、マウントが成功し、正常にシステム更新を行うことができる。
図13に示した機能構成の場合、管理情報をコピーし、マウントを判断し、マウントが失敗の場合に書き込み、再起動する工程が、図7、図8、図10および図11に示した画像形成装置10が実行する処理に追加される。そこで、これらの工程を追加した各フローチャートを図14~図17に示し、図14~図17を参照して画像形成装置10が実行する各処理について説明する。
図14は、起動処理が完了した後にシステム更新通知が来た場合の処理の流れを示したフローチャートである。ステップ1400~ステップ1405、ステップ1408、ステップ1410、ステップ1411、ステップ1414~ステップ1418の処理は、図7に示したステップ700~ステップ708、ステップ710~ステップ714の処理と同じであるため、それらの処理の説明については省略する。
ステップ1406では、更新を開始できる場合、SDカード31経由の更新で、かつSDカード31が接続されているかを確認する。SDカード31経由の更新で、かつSDカード31が接続されている場合、ステップ1407へ進み、デバイス名A、Bそれぞれのパーティション内にあるファイルシステムの管理情報を取得し、SDカード31に格納する。このとき、MBR130も取得し、SDカード31に格納する。ステップ1406でSDカード31経由の更新ではない場合、またはSDカード31が接続されていない場合、ステップ1408へ直接進む。
ステップ1409では、プライマリシステムの更新を行う前に、ファイルシステム管理部108が、デバイス名Bで示されるパーティションに存在するファイルシステムの管理情報をコピーし、デバイス名Aで示されるパーティション内にファイルAとして格納する。ファイルAの格納は、デバイス名Bで示されるパーティションのシステムの更新前に実施される。
ステップ1412では、更新制御部103が、更新対象の全モジュールの書き換えが完了したかを確認する。1つのモジュールでも書き換えが完了していない場合、ステップ1402へ戻り、モジュールの書き換えを行う。
ステップ1412で全モジュールの書き換えが完了した場合は、プライマリシステムが正常に更新されたため、ステップ1413へ進む。ステップ1413では、セカンダリシステムの更新を行う前に、ファイルシステム管理部108が、デバイス名Aで示されるパーティションに存在するファイルシステムの管理情報をコピーし、デバイス名Bで示されるパーティション内にファイルAとして格納する。
図15は、図14のステップ1401で更新中断情報97がNVRAM24に記憶されている場合の処理の流れを示したフローチャートである。ステップ1500~ステップ1504、ステップ1507、ステップ1508、ステップ1510、ステップ1511、ステップ1514~ステップ1516、ステップ1518、ステップ1519、ステップ1521、ステップ1522の処理は、図8に示したステップ800~ステップ808、ステップ810~ステップ814、ステップ816、ステップ817の処理と同じであるため、それらの処理の説明については省略する。
ステップ1505では、ファイルシステム管理部108が、デバイス名Bで示されるパーティションのシステムのマウントが成功しているかを確認する。失敗している場合、ステップ1506へ進み、ファイルシステム管理部108が、デバイス名Aで示されるパーティション内のファイルAのバイナリデータを、更新対象のパーティション内のファイルシステムの管理情報が記憶される領域に書き込む。これにより、管理情報を更新開始前の状態に復旧することができる。書き込んだ後、ステップ1515へ進む。
ステップ1509では、ファイルシステム管理部108が、デバイス名Bで示されるパーティション内にあるファイルシステムの管理情報をコピーし、デバイス名Aで示されるパーティション内にファイルAとして格納する。この処理により、更新対象のシステムの管理情報に何らかの異常が発生しても、管理情報を復旧することができる。
ステップ1512では、更新制御部103が、全モジュールの書き換えが完了したかを確認する。1つのモジュールでも書き換えが完了していない場合、ステップ1507へ戻る。全モジュールの書き換えが完了した場合、ステップ1513へ進み、ファイルシステム管理部108が、デバイス名Aで示されるパーティション内にあるファイルシステムの管理情報をコピーし、デバイス名Bで示されるパーティション内にファイルAとして格納する。この処理により、次に更新する、現在起動しているシステムの管理情報に何らかの異常が発生しても、管理情報を復旧することができる。
ステップ1517では、ファイルシステム管理部108が、デバイス名Aで示されるパーティション内にあるファイルシステムの管理情報をコピーし、デバイス名Bで示されるパーティション内にファイルAとして格納する。この処理により、更新対象のシステムの管理情報に何らかの異常が発生しても、管理情報を復旧することができる。
ステップ1520では、ステップ1512と同様、更新制御部103が、全モジュールの書き換えが完了したかを確認する。1つのモジュールでも書き換えが完了していない場合、ステップ1516へ戻る。
図16は、図9に示した区間1で更新中断が発生したときの処理の流れを示すフローチャートである。ステップ1600~ステップ1603、ステップステップ1607~ステップ1615の処理は、図10に示したステップ1000~ステップ1012の処理と同じであるため、説明を省略する。
電子署名122の正当性を検証した後、ステップ1604では、ファイルシステム管理部108が、デバイス名Bで示されるパーティションのマウントが成功しているかを確認する。成功している場合、ステップ1607へ進み、プライマリシステム用ヘッダ112を解析する。
失敗している場合、ステップ1605へ進み、更新対象のシステムが存在するパーティション内に、デバイス名Aで示されるパーティション内にファイルAとして格納しておいた管理情報を書き込む。そして、ステップ1606で再起動し、ステップ1601に戻る。これにより、管理情報を更新前の状態に戻し、システム更新をやり直すことができる。
図17は、図9に示した区間2で更新中断が発生したときの処理の流れを示すフローチャートである。ステップ1700~ステップ1703、ステップ1707~ステップ1709の処理は、図11に示したステップ1100~ステップ1106の処理と同じであるため、説明を省略する。
電子署名122の正当性を検証した後、ステップ1704では、ファイルシステム管理部108が、デバイス名Bで示されるパーティションのマウントが成功しているかを確認する。成功している場合、ステップ1707へ進み、セカンダリシステム用ヘッダ113を解析する。
失敗している場合、ステップ1705へ進み、更新対象のシステムが存在するパーティション内に、デバイス名Aで示されるパーティション内にファイルAとして格納しておいた管理情報を書き込む。そして、ステップ1706で再起動し、ステップ1701に戻る。これにより、管理情報を更新前の状態に戻し、システム更新をやり直すことができる。
以上のようにして、システムの更新前に管理情報をコピーし、残しておくことで、システム更新中に電源断等で更新が失敗し、管理情報が破壊され、元のファイル構成が復旧不可能な状態になった場合でも、管理情報を復旧し、更新前の状態に戻すことができる。
また、管理情報のほか、MBR130もSDカード31に保存しておくことで、MBR130も破壊され、システムを起動できない場合でも、ブートローダ90がSDカード31に保存したMBR130の情報を使用し、正しくシステムを起動することが可能となり、画像形成装置10の耐障害性を向上させることができる。
上記では、更新対象のシステムが存在するパーティション内のファイルシステムの管理情報をコピーし、起動しているシステムが存在するパーティション内に格納しておき、当該管理情報が破壊された場合、管理情報を書き込み、復旧することについて説明した。しかしながら、これに限られるものではなく、起動しているシステムが存在するパーティション内のファイルシステムの管理情報をコピーし、それを更新対象のシステムが存在するパーティション内に書き込み、復旧してもよい。これにより、管理情報をコピーし、格納する処理の際の電源断を考慮しなくてもよく、耐障害性を向上させることができる。
これまで本発明を、電子機器およびプログラムとして上述した実施の形態をもって説明してきた。しかしながら、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができるものである。また、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、そのプログラムが記録された記録媒体、そのプログラムを提供するプログラム提供サーバ等も提供することができるものである。
10…画像形成装置
11…コントローラ
12…操作部
13…エンジン
20…CPU
21…ASIC
22…DRAM
23…HDD
24…NVRAM
25…SSD
26…USB I/F
27…SDカードI/F
30…USBメモリ
31…SDカード
40…ハードウェア・リソース
50…起動部
51…アプリケーション層
52…プラットフォーム層
53…API
60…エンジンI/F
70…コピー・アプリ
71…ファックス・アプリ
72…スキャナ・アプリ
73…プリンタ・アプリ
74…リモート更新アプリ
80…ECS
81…MCS
82…OCS
83…FCS
84…NCS
85…SCS
86…SRM
87…IMH
88…OS
90…ブートローダ
91…第1のパーティション
92…第2のパーティション
93…システム
94…起動パーティション番号
95、96…制御プログラム
97…更新中断情報
100…検知部
101…更新部
102…解析部
103…更新制御部
104…書換部
105…更新ファイル
106、107…更新部分
108…ファイルシステム管理部
110…ヘッダ部
111…共通ヘッダ
112…プライマリシステム用ヘッダ
113…セカンダリシステム用ヘッダ
114…機種ID
115…モジュールID
116a、116b…更新先アドレス
117a、117b…更新先領域長
118a、118b…インデックス指定値
120…データ部
121…更新実体データ
122…電子署名
130…MBR
131…PET
132…先頭セクタ番号
133…BPB
134…FAT
135…RDE
136…ユーザ・データ領域
特開2009-42818号公報

Claims (7)

  1. 複数のシステムにより多重化された電子機器であって、
    起動するシステムを指定する指定情報を参照して、指定されたシステムとは異なる他のシステムを更新対象のシステムとして設定し、前記指定されたシステムに対応する制御プログラムを読み出し、起動処理を実行する起動手段と、
    外部から取得したシステムの更新情報に従って、更新処理の進捗状況を示す更新進捗情報を設定し、前記起動手段により前記更新対象のシステムとして設定された前記他のシステムに対応する制御プログラムの更新処理が完了した後に、前記指定情報で指定するシステムを前記他のシステムに変更する更新手段と
    を含み、
    前記各システムは、機器の記憶領域を論理的に分割した各論理区画または各機器の各記憶領域に存在し、
    前記起動手段は、前記更新対象のシステムが存在する機器として参照される機器情報に、前記他のシステムが存在する論理区画または記憶領域を割り当てることにより、前記他のシステムを前記更新対象のシステムとして設定し、
    前記更新手段は、前記他のシステムに対する更新処理を実行する前に、前記他のシステムが存在する論理区画または記憶領域を管理するための管理情報を、前記指定されたシステムが存在する論理区画または記憶領域に複製する、電子機器。
  2. 前記更新手段は、前記他のシステムが存在する論理区画または記憶領域の割り当てが不可である場合、前記指定されたシステムが存在する論理区画または記憶領域に複製した管理情報を、前記他のシステムが存在する論理区画または記憶領域に書き込む、請求項に記載の電子機器。
  3. 前記更新手段は、前記更新情報を外部記録媒体から取得し、前記起動手段が起動処理に使用する起動情報を含む前記管理情報を、前記外部記録媒体に複製する、請求項またはに記載の電子機器。
  4. 前記更新手段は、前記他のシステムが存在する論理区画または記憶領域の割り当てが不可である場合、前記指定されたシステムが存在する論理区画または記憶領域を管理するための管理情報を、前記他のシステムが存在する論理区画または記憶領域に書き込む、請求項に記載の電子機器。
  5. 前記指定情報を記憶する記憶手段を含む、請求項1~のいずれか1項に記載の電子機器。
  6. 前記更新手段は、前記更新進捗情報に応じて、更新処理をバックグラウンドで実行する、請求項1~のいずれか1項に記載の電子機器。
  7. 複数のシステムの更新処理をコンピュータに実行させるためのプログラムであって、
    起動するシステムを指定する指定情報を参照して、指定されたシステムとは異なる他のシステムを更新対象のシステムとして設定するステップと、
    前記指定されたシステムに対応する制御プログラムを読み出し、起動処理を実行するステップと、
    外部から取得したシステムの更新情報に従って、更新処理の進捗状況を示す更新進捗情報を設定するステップと、
    前記更新対象のシステムとして設定された前記他のシステムに対応する制御プログラムの更新処理が完了した後に、前記更新情報に従って、前記指定情報で指定するシステムを前記他のシステムに変更するステップとを実行させ
    前記各システムは、機器の記憶領域を論理的に分割した各論理区画または各機器の各記憶領域に存在し、
    前記更新対象のシステムとして設定するステップでは、前記更新対象のシステムが存在する機器として参照される機器情報に、前記他のシステムが存在する論理区画または記憶領域を割り当てることにより、前記他のシステムを前記更新対象のシステムとして設定し、
    前記プログラムは、
    前記他のシステムに対する更新処理を実行する前に、前記他のシステムが存在する論理区画または記憶領域を管理するための管理情報を、前記指定されたシステムが存在する論理区画または記憶領域に複製するステップを実行させる、プログラム。
JP2018035005A 2018-02-28 2018-02-28 電子機器およびプログラム Active JP7059691B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018035005A JP7059691B2 (ja) 2018-02-28 2018-02-28 電子機器およびプログラム
US16/278,854 US20190265964A1 (en) 2018-02-28 2019-02-19 Electronic apparatus, updating method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018035005A JP7059691B2 (ja) 2018-02-28 2018-02-28 電子機器およびプログラム

Publications (2)

Publication Number Publication Date
JP2019149118A JP2019149118A (ja) 2019-09-05
JP7059691B2 true JP7059691B2 (ja) 2022-04-26

Family

ID=67685204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018035005A Active JP7059691B2 (ja) 2018-02-28 2018-02-28 電子機器およびプログラム

Country Status (2)

Country Link
US (1) US20190265964A1 (ja)
JP (1) JP7059691B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908943A (zh) * 2019-12-09 2020-03-24 迈普通信技术股份有限公司 一种板卡自动适配方法、装置、网络设备及存储介质
CN114138343A (zh) * 2020-09-04 2022-03-04 青岛海信移动通信技术股份有限公司 一种终端及终端启动方法
US11501027B2 (en) * 2021-02-08 2022-11-15 Micron Technology, Inc. Mechanism to support writing files into a file system mounted in a secure memory device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009042818A (ja) 2007-08-06 2009-02-26 Ricoh Co Ltd 画像形成装置、プログラムおよび記録媒体
JP2013254264A (ja) 2012-06-05 2013-12-19 Denso Corp 電子制御装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412876B2 (en) * 2010-06-30 2013-04-02 Felicity Taiwan Corporation Storage device with multiple storage units and control method thereof
EP3376391A1 (en) * 2017-03-17 2018-09-19 Ricoh Company Ltd. Information processing apparatus, updating method, and carrier means

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009042818A (ja) 2007-08-06 2009-02-26 Ricoh Co Ltd 画像形成装置、プログラムおよび記録媒体
JP2013254264A (ja) 2012-06-05 2013-12-19 Denso Corp 電子制御装置

Also Published As

Publication number Publication date
US20190265964A1 (en) 2019-08-29
JP2019149118A (ja) 2019-09-05

Similar Documents

Publication Publication Date Title
US8082231B1 (en) Techniques using identifiers and signatures with data operations
US7725704B1 (en) Techniques for performing a prioritized data restoration operation
TW421739B (en) System for computer recovery using removable high capacity media
US8732121B1 (en) Method and system for backup to a hidden backup storage
US6289426B1 (en) Drive preparation methods for intelligent backup systems
EP1770513B1 (en) Method and system for booting and automatically updating software, and recovering from update error
JP4363676B2 (ja) コンピュータシステム
RU2483349C2 (ru) Поэтапная, облегченная система резервного копирования
JP7059691B2 (ja) 電子機器およびプログラム
WO2000020971A1 (en) Recovery of file systems after modification failure
US7715028B2 (en) Card type memory, image forming apparatus, and starting method therefor
JPH0782432B2 (ja) 電子プリントシステムにおいてソフトウェアをアップグレードする方法
JP6543122B2 (ja) 情報処理装置と、前記情報処理装置による不揮発記憶装置の初期化方法、及びプログラム
CN107463467B (zh) 一种可快速还原虚拟化平台的方法及系统
JP6600240B2 (ja) 情報処理装置、ファームウェア更新方法、およびプログラム
KR101850275B1 (ko) 빠른 부팅을 위한 부트 이미지를 생성하는 방법 및 이를 수행하는 화상형성장치, 부트 이미지를 이용하여 빠른 부팅을 수행하는 방법 및 이를 수행하는 화상형성장치
KR101845467B1 (ko) 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법 및 이를 수행하는 화상형성장치
KR101850272B1 (ko) 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
JP4124410B2 (ja) メモリ書換え方法およびその方法をコンピュータに実行させるためのプログラム
JP2009042818A (ja) 画像形成装置、プログラムおよび記録媒体
JP6696414B2 (ja) 画像処理装置
US10958802B2 (en) Image forming apparatus, control method of image forming apparatus, and storage medium
JP7087087B2 (ja) オペレーティングシステムをコンピュータ可読媒体上に記憶するためのbiosコード
US20230273799A1 (en) Storage system with boot volume rollback points
JP5338610B2 (ja) 情報処理装置、情報処理方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220328

R151 Written notification of patent or utility model registration

Ref document number: 7059691

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151