(57)【特許請求の範囲】
【請求項１】
電子装置において、
ＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）及び操作システム（an operating system）を保存する保存部と、
前記保存されたＭＢＲ及び前記操作システム（an operating system）を用いて前記電子装置をブートし、前記電子装置がブートされると、前記ＭＢＲに対するバックアップデータを生成して前記保存部に保存する制御部と、
予め設定されたイベントが発生すると、前記ＭＢＲの有効性を判断する有効性判断部と、
前記ＭＢＲが有効でなければ、前記保存部に保存されたバックアップデータを用いて前記ＭＢＲを復元する復元部とを含み、
前記予め設定されたイベントは、前記操作システム（an operating system）の終了、前記操作システム（an operating system）のリスタート、ユーザのログオフ、節電モードへの切り替えのうち、少なくとも１つである
ことを特徴とする電子装置。
【請求項２】
前記有効性判断部は、
前記ＭＢＲのブートコード（ｂｏｏｔ  ｃｏｄｅ）と前記バックアップデータのブートコードとを比較し、前記ＭＢＲに対する有効性を判断することを特徴とする請求項１に記載の電子装置。
【請求項３】
前記復元部は、
前記ＭＢＲが有効でなければ、前記ＭＢＲのブートコードを前記バックアップデータのブートコードに取り替えることを特徴とする請求項２に記載の電子装置。
【請求項４】
前記有効性判断部は、
前記ＭＢＲのパーティションテーブル領域にブートパーティションを表す情報を含むか否かに応じて、前記ＭＢＲに対する有効性を判断することを特徴とする請求項１に記載の電子装置。
【請求項５】
前記有効性判断部は、
前記ＭＢＲのパーティションテーブル領域に記録されたアドレス情報に対応する前記保存部の保存領域に前記操作システム（an operating system）に関連する情報が記録されているか否かで、前記ＭＢＲに対する有効性を判断することを特徴とする請求項１に記載の電子装置。
【請求項６】
前記有効性判断部は、
前記操作システム（an operating system）のＢＣＤ（Ｂｏｏｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ）に基づいたアドレスと、前記ＭＢＲのパーティションテーブル領域に記録されたアドレス情報とが一致するか否かで、前記ＭＢＲに対する有効性を判断することを特徴とする請求項１に記載の電子装置。
【請求項７】
前記有効性判断部は、
前記ＭＢＲが有効でなければ、前記バックアップデータの有効性を判断し、
前記復元部は、
前記バックアップデータが有効であれば、前記保存部に保存された前記バックアップデータを用いて前記ＭＢＲを復元する
ことを特徴とする請求項１に記載の電子装置。
【請求項８】
電子装置のＭＢＲ復元方法において、
予め保存されたＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）及び操作システム（an operating system）を用いて前記電子装置をブートするステップと、
前記電子装置がブートされると、前記ＭＢＲに対するバックアップデータを生成して保存するステップと、
予め設定されたイベントが発生すると、前記ＭＢＲの有効性を判断するステップと、
前記ＭＢＲが有効でなければ、前記保存されたバックアップデータを用いて前記ＭＢＲを復元するステップとを含み、
前記予め設定されたイベントは、前記操作システム（an operating system）の終了、前記操作システム（an operating system）のリスタート、ユーザのログオフ、節電モードへの切り替えのうち、少なくとも１つである
ことを特徴とするＭＢＲ復元方法。
【請求項９】
前記有効性を判断するステップは、
前記ＭＢＲのブートコード（ｂｏｏｔ  ｃｏｄｅ）と前記バックアップデータのブートコードとを比較し、前記ＭＢＲに対する有効性を判断する
ことを特徴とする請求項８に記載のＭＢＲ復元方法。
【請求項１０】
前記復元するステップは、
前記ＭＢＲが有効でなければ、前記ＭＢＲのブートコードを前記バックアップデータのブートコードに取り替える
ことを特徴とする請求項９に記載のＭＢＲ復元方法。
【請求項１１】
前記有効性を判断するステップは、
前記ＭＢＲのパーティションテーブル領域にブートパーティションを表す情報を含むか否かに応じて、前記ＭＢＲに対する有効性を判断する
ことを特徴とする請求項８に記載のＭＢＲ復元方法。
【請求項１２】
前記有効性を判断するステップは、
前記ＭＢＲのパーティションテーブル領域に記録されたアドレス情報に対応する保存部の保存領域に前記操作システム（an operating system）に関連する情報が記録されているか否かで、前記ＭＢＲに対する有効性を判断する
ことを特徴とする請求項８に記載のＭＢＲ復元方法。
【請求項１３】
前記有効性を判断するステップは、
前記操作システム（an operating system）のＢＣＤ（Ｂｏｏｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ）に基づいたアドレスと、前記ＭＢＲのパーティションテーブル領域に記録されたアドレス情報とが一致するか否かで、前記ＭＢＲに対する有効性を判断する
ことを特徴とする請求項８に記載のＭＢＲ復元方法。
【請求項１４】
前記有効性を判断するステップは、
前記ＭＢＲが有効でなければ、前記バックアップデータの有効性を判断し、
前記復元するステップは、
前記バックアップデータが有効であれば、保存部に保存された前記バックアップデータを用いて前記ＭＢＲを復元する
ことを特徴とする請求項８に記載のＭＢＲ復元方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置、ＭＢＲ復元方法及びコンピュータ読み取り可能な記録媒体に関し、より詳細には、ユーザのミス、ウィルス、システムのエラー等で損傷したＭＢＲを復元することができる電子装置、ＭＢＲ復元方法及びコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
一般的なコンピュータシステムにおいて、システムがオンされる場合、次のような一連のブート動作を行うようになる。まず、コンピュータシステムが正常に動作することができるように保存媒体の最初のセクタに保存されるマスターブートレコード（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ、以下「ＭＢＲ」という）を読み込み、それに基づいて操作システム（an operating system）が保存されているパーティションのブートセクタレコードを読み取ってシステムブート動作を行う。
【０００３】
しかし、ユーザのミス、ウィルス、システムのエラー等の問題により、ＭＢＲの内容が損傷されると、システムのブートができなくなってしまう。この場合に、ユーザはシステムを使用できなくなり、操作システム（an operating system）を再インストールしなければならないという不都合があった。
【０００４】
よって、ＭＢＲの内容が損傷される場合、容易に復元することができる方法が求められる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ユーザのミス、ウィルス、システムのエラー等によって損傷されたＭＢＲを復元することができる電子装置、ＭＢＲ復元方法及びコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【０００６】
上述の目的を達成するための本発明の一実施形態に係る電子装置は、ＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）及び操作システム（an operating system）を保存する保存部と、前記保存されたＭＢＲ及び前記操作システム（an operating system）を用いて前記電子装置をブートし、前記電子装置がブートされると、前記ＭＢＲに対するバックアップデータを生成して前記保存部に保存する制御部と、予め設定されたイベントが発生すると、前記ＭＢＲの有効性を判断する有効性判断部と、前記ＭＢＲが有効でなければ、前記保存部に保存されたバックアップデータを用いて前記ＭＢＲを復元する復元部とを含む。
【０００７】
この場合、前記有効性判断部は、前記ＭＢＲのブートコード（ｂｏｏｔ  ｃｏｄｅ）と前記バックアップデータのブートコードとを比較し、前記ＭＢＲに対する有効性を判断してよい。
【０００８】
この場合、前記復元部は、前記ＭＢＲが有効でなければ、前記ＭＢＲのブートコードを前記バックアップデータのブートコードに取り替えてよい。
【０００９】
一方、前記有効性判断部は、前記ＭＢＲのパーティションテーブル領域にブートパーティションを表す情報を含むか否かに応じて、前記ＭＢＲに対する有効性を判断してよい。
【００１０】
この場合、前記ブートパーティションを表す情報は、ブートフラグ（ｂｏｏｔ  ｆｌａｇ）であってよい。
【００１１】
一方、前記有効性判断部は、前記ＭＢＲのパーティションテーブル領域に記録されたアドレス情報に対応する保存部の保存領域に操作システム（an operating system）に関連する情報が記録されているか否かで、前記ＭＢＲに対する有効性を判断してよい。
【００１２】
一方、前記有効性判断部は、前記操作システム（an operating system）のＢＣＤ（Ｂｏｏｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ）に基づいたアドレスと、前記ＭＢＲのパーティションテーブル領域に記録されたアドレス情報とが一致するか否かで、前記ＭＢＲに対する有効性を判断してよい。
【００１３】
一方、前記有効性判断部は、前記ＭＢＲが有効でなければ、前記バックアップデータの有効性を判断し、前記復元部は、前記バックアップデータが有効であれば、前記保存部に保存されたバックアップデータを用いて前記ＭＢＲを復元してよい。
【００１４】
一方、前記制御部は、前記ＭＢＲに対するバックアップデータを１つのファイルで前記保存部に保存してよい。
【００１５】
一方、前記予め設定されたイベントは、前記操作システム（an operating system）の終了、前記操作システム（an operating system）のリスタート、ユーザのログオフ、節電モードへの切り替えのうち、少なくとも１つであってよい。
【００１６】
一方、本発明の一実施形態に係るＭＢＲ復元方法は、予め保存されたＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）及び操作システム（an operating system）を用いて前記電子装置をブートするステップと、前記電子装置がブートされると、前記ＭＢＲに対するバックアップデータを生成して保存するステップと、予め設定されたイベントが発生すると、前記ＭＢＲの有効性を判断するステップと、前記ＭＢＲが有効でなければ、前記保存されたバックアップデータを用いて前記ＭＢＲを復元するステップとを含む。
【００１７】
この場合、前記有効性を判断するステップは、前記ＭＢＲのブートコード（ｂｏｏｔ  ｃｏｄｅ）と前記バックアップデータのブートコードとを比較し、前記ＭＢＲに対する有効性を判断してよい。
【００１８】
この場合、前記復元するステップは、前記ＭＢＲが有効でなければ、前記ＭＢＲのブートコードを前記バックアップデータのブートコードに取り替えてよい。
【００１９】
一方、前記有効性を判断するステップは、前記ＭＢＲのパーティションテーブル領域にブートパーティションを表す情報を含むか否かに応じて、前記ＭＢＲに対する有効性を判断してよい。
【００２０】
この場合、前記ブートパーティションを表す情報は、ブートフラグ（ｂｏｏｔ  ｆｌａｇ）であってよい。
【００２１】
一方、前記有効性を判断するステップは、前記ＭＢＲのパーティションテーブル領域に記録されたアドレス情報に対応する保存部の保存領域に操作システム（an operating system）に関連する情報が記録されているか否かで、前記ＭＢＲに対する有効性を判断してよい。
【００２２】
一方、前記有効性を判断するステップは、前記操作システム（an operating system）のＢＣＤ（Ｂｏｏｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ）に基づいたアドレスと、前記ＭＢＲのパーティションテーブル領域に記録されたアドレス情報とが一致するか否かで、前記ＭＢＲに対する有効性を判断してよい。
【００２３】
一方、前記有効性を判断するステップは、前記ＭＢＲが有効でなければ、前記バックアップデータの有効性を判断し、前記復元するステップは、前記バックアップデータが有効であれば、前記保存部に保存されたバックアップデータを用いて前記ＭＢＲを復元してよい。
【００２４】
一方、前記保存するステップは、前記ＭＢＲに対するバックアップデータを１つのファイルで保存してよい。
【００２５】
一方、本実施形態に係るＭＢＲ復元方法を実行するためのプログラムを含むコンピュータ読み取り可能な記録媒体において、前記ＭＢＲ復元方法は、予め保存されたＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）及び操作システム（an operating system）を用いて前記電子装置をブートするステップと、前記電子装置がブートされると、前記ＭＢＲに対するバックアップデータを生成して保存するステップと、予め設定されたイベントが発生すると、前記ＭＢＲの有効性を判断するステップと、前記ＭＢＲが有効でなければ、前記保存されたバックアップデータを用いて前記ＭＢＲを復元するステップとを含む。
【００２６】
前記電子装置において、前記制御部は、前記復元部が前記バックアップデータを用いて前記ＭＢＲを復元した後に前記イベントに対応する動作を行ってよい。
【００２７】
前記電子装置において、前記イベントは、前記ＭＢＲのエラーを含んでよい。
【００２８】
前記電子装置において、前記保存部は、前記ＭＢＲを保存する第１保存部と、前記ＭＢＲのバックアップデータを保存する第２保存部とを含んでよい。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態に係る電子装置の構成図である。
【図２】本発明の一実施形態に係る保存部の保存構造を示す図である。
【図３】図２のＭＢＲの構造を示す図である。
【図４】本発明の一実施形態に係るＭＢＲ復元方法を説明するためのフローチャートである。
【図５】図４の動作を具体的に説明するためのフローチャートである。
【図６】図５のＭＢＲのブートコードに対する有効性判断動作を具体的に説明するためのフローチャートである。
【図７】図５のＭＢＲのパーティションテーブルの有効性を判断するステップを具体的に説明するためのフローチャートである。
【図８】図７のアクティブパーティションの有効性の判断動作を具体的に説明するためのフローチャートである。
【図９】図７のＮＴＦＳパーティションの有効性の判断動作を具体的に説明するためのフローチャートである。
【図１０】図７のブートパーティションの有効性の判断動作を具体的に説明するためのフローチャートである。
【発明を実施するための形態】
【００３０】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。
図１は、本発明の一実施形態に係る電子装置の構成図である。
【００３１】
図１を参照すると、本実施形態に係る電子装置１００は、通信インターフェース部１１０と、ユーザインターフェース部１２０と、保存部１３０と、有効性判断部１４０と、復元部１５０及び制御部１６０で構成されてよい。ここで、電子装置１００は、ＭＢＲを用いてブートを行うパソコン、ノートパソコン、タブレット、ＰＭＰ、携帯電話等であってよい。
【００３２】
通信インターフェース部１１０は、電子装置１００を外部装置（図示せず）に接続するために形成され、構内ネットワーク（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びインターネット網を通じて外部装置に接続される形態だけでなく、無線通信（例えば、ＧＳＭ(登録商標)、ＵＭＴＳ、ＬＴＥ、ＷｉＢＲＯ等の無線通信）方式によって接続されてよい。
【００３３】
ユーザインターフェース部１２０は、電子装置１００でサポートする各種機能をユーザが設定または選択することができる複数の機能キーを備え、電子装置１００で提供する各種情報を表示することができる。ユーザインターフェース部１２０は、タッチパッド等のように入力と出力とが同時に実現された装置で実現され、マウス及びモニタの組み合わせによる装置でも実現が可能である。
【００３４】
保存部１３０は、電子装置１００の駆動のためのプログラムを保存する。具体的に、保存部１３０は、電子装置１００の駆動時に必要な各種命令語の集合であるプログラムを保存することができる。ここで、プログラムは、ＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）及び操作システム（an operating system）を保存することができる。具体的に、操作システム（an operating system）は、電子装置１００を駆動させるための操作プログラム（an operating program）であり、ＭＢＲは、電子装置１００のブートの過程で操作システム（an operating system）がどこに、どのように位置するかを識別してコンピュータのメイン記憶装置に積載できるようにするための情報として、保存媒体の最初のセクタに位置する。ＭＢＲの具体的な構成については、図２及び図３を参照して後述する。
【００３５】
有効性判断部１４０は、予め設定されたイベントが発生すると、ＭＢＲの有効性を判断する。具体的に、有効性判断部１４０は、操作システム（an operating system）の終了、操作システム（an operating system）のリスタート、ユーザのログオフ、節電モードへの切り替え等のイベントが発生すると、ＭＢＲのブートコード領域及びパーティションテーブル領域が有効かを判断することができる。
【００３６】
まず、有効性判断部１４０は、ＭＢＲのブートコード（ｂｏｏｔ  ｃｏｄｅ）とバックアップデータのブートコードとを比較し、ＭＢＲに対する有効性を判断することができる。ここで、ブートコード（ｂｏｏｔ  ｃｏｄｅ）とは、メモリに積載される操作システム（an operating system）が保存されているパーティションのブートセクタレコードを読み取ることができる各種命令語が記録された領域である。
【００３７】
そして、バックアップデータは、電子装置１００が正常にブートされる際、ＭＢＲをバックアップしたデータである。よって、正常にブートが行われたＭＢＲのブートコードは有効なものであり、それに対するバックアップデータのブートコードも有効であるため、バックアップデータのブートコードと現在のＭＢＲのブートコードとを単純比較し、ＭＢＲのブートコードの有効性を判断することができる。このとき、現在のＭＢＲのブートコードとバックアップデータのブートコードとが異なると、有効性判断部１４０は、ＭＢＲのブートコードは有効ではないと判断することができる。
【００３８】
一方、ＭＢＲは、パーティションに関する情報を盛り込む４つのパーティションテーブル領域を含み、その中の１つのパーティションテーブル領域には当該パーティションがブートパーティションであることを表す情報を含む。しかし、４つのパーティションテーブル領域全てにブートパーティションであることを表す情報が含まれていなければ、ブートを行うことができない。よって、有効性判断部１４０は、ＭＢＲのパーティションテーブル領域にブートパーティションを示す情報が含まれているか否かによって、ＭＢＲに対する有効性を判断することができる。
【００３９】
具体的に、有効性判断部１４０は、ＭＢＲの４つのパーティションテーブル領域のそれぞれの０番目のバイトであるブートフラグ（ｂｏｏｔ  ｆｌａｇまたはブートインディケータ（ｂｏｏｔ  ｉｎｄｉｃａｔｏｒ））のうち少なくとも一方がブートパーティションを報知する情報を含むか（すなわち、０ｘ８０ｈに設定されているか）を確認し、少なくとも１つにパーティションテーブルにブートパーティションを報知する情報を含むと、すなわち、０ｘ８０ｈが設定されている場合、有効なＭＢＲと判断し、０ｘ８０ｈが１つも設定されていなければ有効ではないＭＢＲと判断することができる。
【００４０】
一方、パーティションテーブル領域には、当該パーティションがブートパーティションかを表す情報、当該パーティションのアドレス情報（具体的に、開始セクタのヘッダ及びシリンダ位置、当該パーティションの最後のセクタのヘッダ、シリンダ位置、当該パーティションの全セクタ数）が保存される。よって、ブート過程では、上述のように、ブートパーティションを表す情報を含むパーティションテーブル領域（具体的に、ブートパーティション）のアドレス情報に対応するパーティションに記録された操作システム（an operating system）を用いてブートされる。
【００４１】
しかし、ユーザのミス、ウィルス、システムのエラー等により、実際の操作システム（an operating system）を保存していないパーティションテーブル領域がブートパーティションを表す情報を含むか、当該パーティションテーブル領域内のアドレス情報が誤っている場合には、ブートを行うことができなくなる。よって、有効性判断部１４０は、ＭＢＲのパーティションテーブル領域に記録されたアドレス情報に対応する保存部１３０の保存領域に操作システム（an operating system）に関連する情報が記録されているか否かで、ＭＢＲに対する有効性を判断することができる。このような動作については、図９を参照して後述する。
【００４２】
一方、有効性判断部１４０は、操作システム（an operating system）のＢＣＤ（Ｂｏｏｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ）に基づいたアドレスとＭＢＲのパーティションテーブル領域に記録されたアドレス情報とが一致するか否かで、ＭＢＲに対する有効性を判断することができる。このような有効性判断動作については、図１０を参照して後述する。
【００４３】
そして、有効性判断部１４０は、ＭＢＲが有効ではない場合、バックアップデータの有効性を判断する。具体的に、有効性判断部１４０は、ＭＢＲが有効ではないと判断されると、上述のような有効性判断動作をバックアップデータに対しても行うことができる。この場合、バックアップデータのブートコード（ｂｏｏｔ  ｃｏｄｅ）に対する有効性判断は省略されてよい。
【００４４】
復元部１５０は、ＭＢＲが有効ではない場合、保存部１３０に保存されたバックアップデータを用いてＭＢＲを復元する。具体的に、ＭＢＲが有効ではなく、バックアップデータは有効と判断されると、復元部１５０は保存部１３０に保存されたバックアップデータを用いてＭＢＲを復元することができる。一方、ＭＢＲのブートコードが有効ではないと判断された場合には、ＭＢＲのブートコードのみをバックアップデータのブートコードを用いて復元することができる。一方、本実施形態では、有効性判断部１４０及び復元部１５０が別途の構成として図示して説明しているが、実現時には有効性判断部１４０及び復元部１５０の機能は１つの構成として実現されてよい。
【００４５】
制御部１６０は、電子装置１００内の各構成に対する制御を行う。具体的に、システムがオンになると、制御部１６０は保存部１３０に保存されたＭＢＲ及び操作システム（an operating system）に基づいてブートを行い、電子装置１００がブートされると、ＭＢＲに対するバックアップデータを生成して保存部１３０に保存することができる。このとき、バックアップデータは１つのファイルの形であってよい。一方、本実施形態では、制御部１６０がバックアップデータを生成して保存するものとして説明したが、このようなバックアップデータの生成及び保存は、上述の有効性判断部１４０または復元部１５０で行われてよい。更に、以上では、生成されたバックアップデータを保存部１３０に保存するものとしてのみ説明したが、実現時にはバックアップデータをバイオス（ＢＩＯＳ）に保存する形で実現されてよい。
【００４６】
そして、制御部１６０は、操作システム（an operating system）の終了、操作システム（an operating system）のリスタート、ユーザのログオフ、節電モードへの切り替え等のイベントが発生すると、現在のＭＢＲに対する有効性が判断されるように有効性判断部１４０を制御することができる。そして、ＭＢＲが有効であると判断されると、制御部１６０は発生されたイベントに対応する動作を行うことができる。
【００４７】
一方、ＭＢＲが有効ではないと判断されると、制御部１６０はＭＢＲに対するバックアップデータの有効性が判断されるように有効性判断部１４０を制御することができる。そして、バックアップデータが有効であると判断されると、制御部１６０はバックアップデータを用いてＭＢＲが復元されるように復元部１５０を制御し、復元の後に発生するイベントに対応する動作を行うことができる。
【００４８】
以上のように、本実施形態に係る電子装置１００は、正常にブートされた時点でＭＢＲをバックアップし、終了時点でＭＢＲの有効性を判断し、ＭＢＲが有効ではない場合、予めバックアップしておいたバックアップデータを用いて復元を行うことができるようになる。なお、本実施形態に係る電子装置１００は、ＭＢＲの実質的なデータに基づいて有効性を検査するため、ユーザは安定した環境を与えられることができる。
【００４９】
図２は、本発明の一実施形態に係る保存部の保存構造を示す図である。
【００５０】
保存部１３０は、ＭＢＲ２１０と、ブートパーティション２２０及びアクティブパーティション２３０を含む。
【００５１】
ＭＢＲ２１０は、操作システム（an operating system）がどこに、どのように位置するかを識別し、コンピュータのメイン記憶装置に積載できるようにするための情報として、保存媒体（例えば、ハードディスク）の最初のセクタに位置する。
【００５２】
このようなＭＢＲは、パーティションセクタまたはマスターパーティションテーブルとも呼ばれるが、保存媒体がフォーマットされる際に分けられる各パーティション領域の形、大きさ、位置に関する情報を有しているためである。このようなＭＢＲの具体的な構造については、図３を参照して後述する。
【００５３】
ブートパーティション２２０（または、システムパーティション）は、操作システム（an operating system）をブートさせることができるブートストラップファイルを有しており、ブートを進めるパーティションである。図示の例では、ブートパーティションがアクティブパーティション２３０と離隔して配置されるものとして示しているが、ブートパーティションはアクティブパーティション２２０内に配置されてよい。
【００５４】
アクティブパーティション２３０は、操作システム（an operating system）を保存するパーティションである。
【００５５】
一方、図２について説明する上で、ブートパーティション２２０及びアクティブパーティション２３０を区分して図示のうえで説明しているが、電子装置１００の構造または操作システム（an operating system）によって、ブートパーティション２２０及びアクティブパーティション２３０は区分されない形態、すなわち１つのパーティションであってよい。
【００５６】
図３は、図２のＭＢＲの構造を示す図である。
【００５７】
図３を参照すると、ＭＢＲ３００は、ブートコード３１０と、パーティションテーブル領域３２０と、予約領域５５ＡＡとを含む。このようなＭＢＲは、保存媒体の最初のセクタに位置し、１つのセクタ（ｓｅｃｔｏｒ）で構成され、通常５１２ｂｙｔｅの大きさを有する。
【００５８】
ブートコード３１０は、操作システム（an operating system）を読み込むための準備ステップに対応する一連の命令語が記録される領域として、４４６ｂｙｔｅの大きさを有する。
【００５９】
パーティションテーブル領域３２０は、パーティションに関する情報を盛り込むテーブルとして、６４ｂｙｔｅの大きさを有する。１つのパーティションを明示するのに１６ｂｙｔｅがかかるため、１つの保存媒体には４つのメインパーティションが指定されてよい。
【００６０】
具体的に、各パーティションに関する情報が保存されるテーブルには、当該パーティションがブートパーティションかを示すブートフラグ、当該パーティションの開始セクタのヘッダ及びシリンダ位置、当該パーティションの最後のセクタのヘッダ及びシリンダ位置、当該パーティションの全セクタ数等が記録される。
【００６１】
具体的に、ブート過程では、ＭＢＲのブートコードを用いてブートを行うための準備動作を行い、ブートフラグがアクティブ（０ｘ８０ｈ）に設定されたパーティションがブートパーティションになり、当該パーティションに記録された操作システム（an operating system）に基づいてシステムがブートされる。
【００６２】
このような点から、（1）ブートコードに誤った命令語が記録されている場合、（2）パーティションテーブル領域全てにブートパーティション情報が含まれていない場合、（3）ブートパーティション領域に対応する実際のパーティション領域に操作システム（an operating system）が保存されていない場合（ブートパーティションのアドレス情報と操作システム（an operating system）が記録されたパーティションのアドレスが異なる場合を含む）には、ブートが行われない。
【００６３】
よって、本実施形態に係る有効性判断部１４０は、上述の(1)〜(3)を確認するための一連の過程を行うことができる。
【００６４】
予約領域５５ＡＡは、ＭＢＲが合うかを確認するための予約値が記録される領域として、２ｂｙｔｅの大きさを有する。
【００６５】
図４は、本発明の一実施形態に係るＭＢＲ復元方法を説明するためのフローチャートである。
【００６６】
まず、予め保存されたＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）及び操作システム（an operating system）を用いて電子装置をブートする（Ｓ４１０）。具体的に、保存媒体の最初のセクタに保存されるＭＢＲを読み取り、それに基づいて操作システム（an operating system）が保存されているパーティション（アクティブパーティション）のブートセクタレコードを読み取りブート動作を行うことができる。
【００６７】
そして、電子装置がブートされると、ＭＢＲに対するバックアップデータを生成して保存する（Ｓ４２０）。具体的に、電子装置１００が正常にブートされると、ブートされた時点のＭＢＲに対するバックアップデータを生成して保存することができる。すなわち、正常にブートが行われたＭＢＲは有効であることから、ブートされた時点におけるＭＢＲをバックアップデータとして保存することができる。
【００６８】
予め設定されたイベントが発生すると（Ｓ４３０）、ＭＢＲの有効性を判断する（Ｓ４４０）。具体的に、操作システム（an operating system）の終了、操作システム（an operating system）のリスタート、ユーザのログオフ、節電モードへの切り替え等のイベントが発生すると、ＭＢＲのブートコード領域及びパーティションテーブル領域が有効かを判断することができる。このとき、ＭＢＲが有効ではないと判断されると、バックアップデータの有効性を判断することができる。
【００６９】
そして、ＭＢＲが有効ではない場合、保存されたバックアップデータを用いてＭＢＲを復元する（Ｓ４４０）。具体的に、ＭＢＲが有効ではなく、バックアップデータは有効であると判断されると、ブート時点で生成されたバックアップデータを用いてＭＢＲを復元することができる。一方、ＭＢＲのブートコードが有効ではないと判断された場合には、ＭＢＲのブートコードのみをバックアップデータのブートコードを用いて復元することができる。
【００７０】
よって、本実施形態に係るＭＢＲ復元方法は、正常にブートされた時点でＭＢＲをバックアップし、終了時点でＭＢＲの有効性を判断し、ＭＢＲが有効ではない場合、予めバックアップしておいたデータを用いて復元を行うことができるようになる。なお、本実施形態に係るＭＢＲ復元方法は、ＭＢＲの実質的なデータに基づいて有効性を検査するため、ユーザは安定した環境を与えられることができるようになる。図４のようなＭＢＲ復元方法は、図１の構成を有する電子装置上で実行されてよく、その他の構成を有する電子装置上でも実行されてよい。
【００７１】
なお、上述のようなＭＢＲ復元方法は、上述のようなＭＢＲ復元方法を実行するための少なくとも１つの実行プログラムで実現されてよく、このような実行プログラムはコンピュータ読み取り可能な記録媒体に保存されてよい。
【００７２】
よって、本発明の各ブロックはコンピュータ読み取り可能な記録媒体上のコンピュータ記録可能なコードとして実施されてよい。コンピュータ読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータを保存することができるデバイスであってよい。
【００７３】
図５は、図４の動作を具体的に説明するためのフローチャートである。
【００７４】
図５を参照すると、まず、電子装置１００の電源が供給されると（Ｓ５０５）、バイオスがスタートアップ（ｓｔａｒｔ−ｕｐ）ルーティンを行う。ここで、スタートアップルーティンとは、電子装置がオンになるとき、自動的に実行されて電子装置の状態を検査し（ＰＯＳＴ）、システムを初期化する作業を行い、初期化作業中にどの周辺装置が接続されているかを確認する一連のプロセスである。
【００７５】
バイオスのスタートアップルーティンによって、保存媒体の最初のセクタに保存されるＭＢＲのブートコードが実行され（Ｓ５１５）、ＭＢＲのパーティションテーブル領域に記録されたブートパーティションに記録された操作システム（an operating system）を読み取りブートが行われてよい（Ｓ５２０）。
【００７６】
ブートが行われると、ＭＢＲに対するバックアップデータを生成して保存する（Ｓ５２５）。具体的に、操作システム（an operating system）がロードされた後、ＭＢＲ管理のための応用プログラムが実行され、実行された応用プログラムによって正常にブートになったＭＢＲ領域の５１２ｂｙｔｅをファイルでバックアップすることができる。以上では、ＭＢＲ領域をファイルとして保存媒体にバックアップするものとして説明したが、実現時にＭＢＲはＢＩＯＳにバックアップされてよい。
【００７７】
以後に予め設定されたイベントが発生するかを検知する（Ｓ５３０）。具体的に、本実施形態に係るＭＢＲ復元動作は次のブートの安定性を図るためのものであるため、操作システム（an operating system）が終了する時点（例えば、操作システム（an operating system）の終了、リスタート、ユーザのログオフ、節電モードへの切り替え）で行われる。よって、アプリケーションプログラム（an application program）はこのようなイベントが発生するかを検知することができる。
【００７８】
予め設定されたイベントが発生すると、ＭＢＲの有効性を判断する。まず、ＭＢＲはブートコードに対する有効性を判断する（Ｓ５３５）。それについては、図６を参照して後述する。
【００７９】
判断の結果、ＭＢＲのブートコードが有効ではないと（Ｓ５４０−Ｎ）、バックアップデータのブートコードを用いてＭＢＲのブートコードを復元することができる（Ｓ５４５）。具体的に、バックアップデータのブートコードをＭＢＲのブートコード領域（０〜４４５）に上書きしてＭＢＲのブートコードを復元することができる。
【００８０】
そして、判断の結果、ＭＢＲのブートコードが有効か（Ｓ５４０−Ｙ）、ＭＢＲのブートコードが復元されると、ＭＢＲのパーティションテーブルの有効性を判断する（Ｓ５５０）。それについては、図７ないし図１０を参照して後述する。
【００８１】
判断の結果、ＭＢＲのパーティションテーブルが有効ではないと（Ｓ５５５−Ｎ）、バックアップデータのパーティションテーブルに対する有効性を判断する（Ｓ５６０）。具体的なバックアップデータの有効性判断動作は、ＭＢＲのパーティションテーブルに対する有効性判断動作と同一であるため、それに対する説明は省略する。
【００８２】
判断の結果、バックアップデータのパーティションテーブルが有効だと（Ｓ５６５−Ｙ）、バックアップデータのパーティションテーブルを用いてＭＢＲのパーティションテーブルを復元することができる（Ｓ５７０）。
【００８３】
一方、バックアップデータのパーティションテーブルが有効ではないと（Ｓ５６５−Ｎ）、別途の復元動作を行わない。
【００８４】
その後、行われた応用プログラムは終了し（Ｓ５８０）、発生されたイベントに対応する動作が行われる。
【００８５】
図５のようなＭＢＲ復元方法は、図１の構成を有する電子装置上で実行されてよく、その他の構成を有する電子装置上でも実行可能である。なお、上述のようなＭＢＲ復元方法のステップ５２５ないし５８０は、応用プログラムで実現されてよく、このような応用プログラムはコンピュータ読み取り可能な記録媒体に保存されてよい。以上では、上述のような動作が応用プログラムで行われるものとして説明したが、実現時には操作システム（an operating system）でこのような動作を行う形態でも実現可能である。
【００８６】
図６は、図５のＭＢＲのブートコードに対する有効性判断動作を具体的に説明するためのフローチャートである。
【００８７】
図６を参照すると、ＭＢＲのブートコード（４４６ｂｙｔｅ）とバックアップデータのブートコード（４６６ｂｙｔｅ）を読み取る（Ｓ６１０）。
【００８８】
そして、読み取られたＭＢＲのブートコードとバックアップデータのブートコードとを単純比較し、ＭＢＲのブートコードとバックアップデータのブートコードとが同一かを判断する（Ｓ６２０）。
【００８９】
そして、判断の結果を返還する（Ｓ６３０）。具体的に、読み取られたＭＢＲのブートコードとバックアップデータのブートコードとが同一であると、ＭＢＲのブートコードが有効と判断し、有効だとする値を返還することができる。一方、読み取られたＭＢＲのブートコードとバックアップデータのブートコードとが異なると、ＭＢＲのブートコードが有効ではないと判断し、有効ではないとする値を返還することができる。
【００９０】
図７は、図５のＭＢＲのパーティションテーブルの有効性を判断するステップを具体的に説明するためのフローチャートである。
【００９１】
図７を参照すると、まず、アクティブパーティションの有効性を判断する（Ｓ７１０）。具体的なアクティブパーティションの有効性判断は図８を参照して後述する。
【００９２】
そして、ＮＴＦＳパーティションの有効性を判断する（Ｓ７２０）。具体的なＮＴＦＳパーティションの有効性判断は図９を参照して後述する。
【００９３】
更に、ブートパーティションの有効性を判断する（Ｓ７３０）。具体的なブートパーティションの有効性判断は、図１０を参照して後述する。
【００９４】
以上では、ＮＴＦＳパーティションの有効性を判断した後、ブートパーティションの有効性を判断するものとして図示して説明しているが、ブートパーティションの有効性を先に判断した後にＮＴＦＳパーティションの有効性を判断する形態でも実現されてよい。
【００９５】
なお、上述の３つの判断動作のうち、いずれかのステップで有効性が認められなければ、次の判断動作を行わずにＭＢＲのパーティションテーブルが有効ではないと判断することができる。すなわち、３つの全ステップの有効性が認められた場合にのみ、ＭＢＲのパーティションテーブルが有効と判断することができる。
【００９６】
一方、以上では、３つの判断方法全てを用いてＭＢＲのパーティションテーブルの有効性を判断するものとして図示して説明しているが、実現時には３つの判断方法のうち、１つか２つの方法のみを用いる形態でも実現可能である。
【００９７】
図８は、図７のアクティブパーティションの有効性の判断動作を具体的に説明するためのフローチャートである。
【００９８】
図８を参照すると、まず、ＭＢＲのパーティションテーブル領域（ｐａｒｔｉｔｉｏｎ  ｔａｂｌｅ  ｅｎｔｒｙ）に自分がブートパーティションであることを表す情報（ｂｏｏｔ  ｆｌａｇ）を有するパーティションテーブルが存在するかを判断する（Ｓ８１０）。具体的に、ＭＢＲには計４つのパーティションテーブルが存在すると、二重パーティションテーブルが０番目のバイトのブートフラグ（ｂｏｏｔ  ｆｌａｇ）が０ｘ８０に設定されているかを検索する。計４回の反復を通じ、ブートフラグを検査するようになり、少なくとも１つにブートフラグが存在すると（Ｓ８２０−Ｙ）、アクティブパーティションは有効と判断することができる。
【００９９】
一方、１つのブートフラグも存在しない場合（Ｓ８２０−Ｎ）、アクティブパーティションは有効ではないと判断し、ＭＢＲのパーティションテーブル領域に対する有効性判断動作を終了することができる。
【０１００】
図９は、図７のＮＴＦＳ（Ｎｅｗ  Ｔｅｃｈｎｏｌｏｇｙ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）パーティションの有効性の判断動作を具体的に説明するためのフローチャートである。
【０１０１】
図９を参照すると、ブートパーティションのアドレス情報に基づいて、当該ブートパーティションにアクセスする（Ｓ９１０）。具体的に、図８の動作を通じて、ブートフラグが０ｘ８０ｈに設定されたパーティションテーブルに記録されたアドレス情報（具体的に、０ｘ０８ｈ〜０ｘ０ｂｈの４ｂｙｔｅの値）に基づいて当該パーティション（すなわち、ブートパーティション）にアクセスすることができる。
【０１０２】
そして、アクセスしたパーティションのＯＥＭ  ＩＤを確認する（Ｓ９２０）。具体的に、アクセスしたパーティションのブートセクタのＯＥＭ  ＩＤ（０ｘ０００３ｈ〜０ｘ０００Ａｈ）を基準にＮＴＦＳパーティションの有効性を判断することができる。すなわち、一般的に、保存媒体をＮＴＦＳにフォーマットする場合、ＯＥＭ  ＩＤはＮＴＦＳで埋まるようになる。よって、ＯＥＭ  ＩＤの値がＮＴＦＳかを確認し、ＮＴＦＳパーティションが有効かを判断することができる。本実施形態では、ＮＴＦＳフォーマットの場合についてのみ説明したが、他のフォーマット方式が適用された保存媒体については、当該フォーマット方式に対応する方法が適用されてよい。
【０１０３】
判断の結果、ＯＥＭ  ＩＤが異常である場合（Ｓ９３０−Ｎ）、ＮＴＦＳパーティションが有効ではないと判断し、ＭＢＲのパーティションテーブル領域に対する有効性判断動作を終了することができる。
【０１０４】
一方、ＯＥＭ  ＩＤが正常であると（Ｓ９３０−Ｙ）、アクセスしたパーティションの＄ＭＦＴ開始アドレス値を基準に＄ＭＦＴにアクセスする（Ｓ９４０）。具体的に、アクセスしたパーティションのブートセクタの＄ＭＦＴの開始アドレス（０ｘ００３０ｈ〜０ｘ００３７ｈ）の値を使用して＄ＭＦＴにアクセスすることができる。
【０１０５】
そして、＄ＭＦＴのシグネチャ（ｓｉｇｎａｔｕｒｅ）を確認する（Ｓ９５０）。具体的に、正常なＭＦＴ（Ｍａｓｔｅｒ  Ｆｉｌｅ  Ｔａｂｌｅ）の場合、シグネチャの値としてＦｉｌｅを有するようになる。よって、シグネチャの値がＦｉｌｅか否かで、ＮＴＦＳパーティションの有効性を判断することができる。
【０１０６】
判断の結果、シグネチャの値がＦｉｌｅであると（Ｓ９６０−Ｙ）、ＮＴＦＳパーティションが有効であると判断することができる。
【０１０７】
一方、シグネチャの値がＦｉｌｅではない場合（Ｓ９７０−Ｎ）、ＮＴＦＳパーティションは有効ではないと判断し、ＭＢＲのパーティションテーブル領域に対する有効性判断動作を終了することができる。
【０１０８】
図１０は、図７のブートパーティションの有効性の判断動作を具体的に説明するためのフローチャートである。
【０１０９】
図１０を参照すると、まず、ＢＣＤを介してブートパーティションの開始アドレスを検索する（Ｓ１０１０）。具体的に、操作システム（an operating system）のＢＣＤ（Ｂｏｏｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ）の内容を基盤として、ブートパーティションの開始アドレスを求めることができる。ここで検索したアドレスは、ＭＢＲのパーティションテーブル領域に記録された値＊セクタサイズ５１２の値であるため、検索したアドレスを５１２で割り算する。一方、実現時には、操作システム（an operating system）のレジスタに記録されたＢＣＤの内容を基盤とし、ブートパーティションの開始アドレスを求めることができる。
【０１１０】
そして、先の過程で検索したアドレス情報がＭＢＲのパーティションテーブル領域に存在するかを判断する（Ｓ１０２０）。具体的に、先の過程で検索したアドレス（すなわち、ブートパーティションの開始アドレス）が実際のＭＢＲの４つのパーティションテーブル領域で記録された開始アドレスと同一かを判断することができる。
【０１１１】
判断の結果、一致するパーティションテーブル領域が存在すると（Ｓ１０３０−Ｙ）、ブートパーティションが有効かを判断することができる。
【０１１２】
一方、一致するパーティションテーブル領域が存在しない場合（Ｓ１０３０−Ｎ）、ブートパーティションが有効ではないと判断し、ＭＢＲのパーティションテーブル領域に対する有効性判断動作を終了することができる。
【０１１３】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１１４】
１００    電子装置
１１０    通信インターフェース部
１２０    ユーザインターフェース部     
１３０    保存部
１４０    有効性判断部
１５０    復元部
１６０    制御部
【図１】
0006342339.tif 000002
【図２】
0006342339.tif 000003
【図３】
0006342339.tif 000004
【図４】
0006342339.tif 000005
【図５】
0006342339.tif 000006
【図６】
0006342339.tif 000007
【図７】
0006342339.tif 000008
【図８】
0006342339.tif 000009
【図９】
0006342339.tif 000010
【図１０】
0006342339.tif 000011