(57)【要約】      （修正有）【課題】ハードディスクを追加又は交換した場合に不適切な設定で動作することを防止可能な情報処理装置を提供する。【解決手段】情報処理装置は、それぞれ識別情報が設定された複数のハードディスクを有する。ハードディスクのそれぞれには、構成情報と、ブートローダとが記憶され、構成情報のそれぞれには、構成情報を設定した情報処理装置が有していたハードディスクの識別情報と、当該情報処理装置のＭＡＣアドレスとが含まれる。情報処理装置は、起動処理開始時に、ブートローダが記憶されているハードディスクを選択し、ブートローダに従って、構成情報に含まれるＭＡＣアドレスが情報処理装置のＭＡＣアドレスと一致する構成情報を選択し、選択した構成情報に、選択したハードディスクに設定された識別情報が含まれない場合、起動処理を停止する。【選択図】図６
2019164489.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
それぞれ識別情報が設定された複数のハードディスクと、
前記情報処理装置のＭＡＣアドレスが記憶されたメモリと、
プロセッサと、を有し、
前記複数のハードディスクのそれぞれには、構成情報と、ブートローダとが記憶され、
前記構成情報のそれぞれには、当該構成情報が設定されたときに当該構成情報を設定した情報処理装置が有していた全てのハードディスクの識別情報と、当該情報処理装置のＭＡＣアドレスとが含まれ、
前記プロセッサは、
装置の起動処理開始時に、前記複数のハードディスクの中から、少なくともブートローダが記憶されているハードディスクを選択し、
前記選択したハードディスクに記憶されたブートローダに従って、前記複数のハードディスクのそれぞれに記憶された構成情報の中から、当該構成情報に含まれるＭＡＣアドレスが前記メモリに記憶されたＭＡＣアドレスと一致する構成情報を選択し、
前記選択した構成情報に、前記選択したハードディスクに設定された識別情報が含まれるか否かを判定し、含まれない場合、装置の起動処理を停止する、
ことを特徴とする情報処理装置。
【請求項２】
前記プロセッサは、装置の起動処理を停止した場合、前記選択したハードディスクに記憶されたブートローダを削除し、装置を再起動する、請求項１に記載の情報処理装置。
【請求項３】
前記構成情報のそれぞれには、当該構成情報の版数がさらに含まれ、
前記プロセッサは、前記構成情報に含まれるＭＡＣアドレスが前記メモリに記憶されたＭＡＣアドレスと一致する構成情報の中で、前記版数が最も新しい構成情報を選択する、請求項１または２に記載の情報処理装置。
【請求項４】
前記構成情報のそれぞれには、当該構成情報が設定されたときに当該構成情報を設定した情報処理装置が有していた全てのハードディスクの状態情報がさらに含まれ、
前記プロセッサは、前記選択した構成情報に含まれる前記選択したハードディスクの状態情報が、正常を示しているか異常を示しているかを判定し、異常を示している場合、装置の起動処理を停止する、請求項１〜３の何れか一項に記載の情報処理装置。
【請求項５】
前記プロセッサは、新たなハードディスクを検出した場合、前記選択した構成情報が記憶されているハードディスクに基づいて前記新たなハードディスクを更新する、請求項１〜４の何れか一項に記載の情報処理装置。
【請求項６】
それぞれ識別情報が設定された複数のハードディスクと、ＭＡＣアドレスが記憶されたメモリと、プロセッサと、を有し、前記複数のハードディスクのそれぞれには、構成情報と、ブートローダとが記憶され、前記構成情報のそれぞれには、当該構成情報が設定されたときに当該構成情報を設定した情報処理装置が有していた全てのハードディスクの識別情報と、当該情報処理装置のＭＡＣアドレスとが含まれる情報処理装置の制御方法であって、
装置の起動処理開始時に、前記複数のハードディスクの中から、少なくともブートローダが記憶されているハードディスクを選択し、
前記選択したハードディスクに記憶されたブートローダに従って、前記複数のハードディスクのそれぞれに記憶された構成情報の中から、当該構成情報に含まれるＭＡＣアドレスが前記メモリに記憶されたＭＡＣアドレスと一致する構成情報を選択し、
前記選択した構成情報に、前記選択したハードディスクに設定された識別情報が含まれるか否かを判定し、含まれない場合、装置の起動処理を停止する、
ことを含むことを特徴とする制御方法。
【請求項７】
それぞれ識別情報が設定された複数のハードディスクと、ＭＡＣアドレスが記憶されたメモリと、プロセッサと、を有し、前記複数のハードディスクのそれぞれには、構成情報と、ブートローダとが記憶され、前記構成情報のそれぞれには、当該構成情報が設定されたときに当該構成情報を設定した情報処理装置が有していた全てのハードディスクの識別情報と、当該情報処理装置のＭＡＣアドレスとが含まれる情報処理装置の制御プログラムであって、
装置の起動処理開始時に、前記複数のハードディスクの中から、少なくともブートローダが記憶されているハードディスクを選択し、
前記選択したハードディスクに記憶されたブートローダに従って、前記複数のハードディスクのそれぞれに記憶された構成情報の中から、当該構成情報に含まれるＭＡＣアドレスが前記メモリに記憶されたＭＡＣアドレスと一致する構成情報を選択し、
前記選択した構成情報に、前記選択したハードディスクに設定された識別情報が含まれるか否かを判定し、含まれない場合、装置の起動処理を停止する、
ことを前記情報処理装置に実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その情報処理装置の制御方法及び制御プログラムに関する。特に、本発明は、複数のハードディスクを有する情報処理装置、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
一般に、情報処理装置は、ハードディスクに記憶されたブートローダに従ってプログラムを実行することにより、装置を起動させる。
【０００３】
複数のハードディスクの中からブートローダの記憶されたデバイスを検索し、最初に発見されたハードディスクに記憶されているブートローダを起動する情報処理装置が開示されている（特許文献１を参照）。この情報処理装置の制御手段は、情報処理装置に電源が投入されると、フラッシュメモリに記憶されたＢＩＯＳ（Basic Input Output System）を起動し、ブートローダを起動可能なハードディスクを検索する。制御手段は、最初に発見されたハードディスクに記憶されたブートローダを起動することにより、ハードディスクに記憶されたＯＳを起動する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−６６１２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報処理装置において、現在使用されているハードディスクとは別に、他の情報処理装置で使用されていた追加のハードディスクが後から搭載されることがあるが、そのようなハードディスクには、他の情報処理装置で使用されていたブートローダ及びプログラムが記憶されている可能性がある。他の情報処理装置で使用されていたハードディスクに記憶されたブートローダに従ってプログラムが実行されると、以前から情報処理装置で使用されていたハードウェア又はソフトウェアが適切に制御されず、情報処理装置が不適切に動作する可能性がある。
【０００６】
本発明の目的は、それぞれブートローダが記憶された複数のハードディスクを有する情報処理装置において、不適切に動作することを防止可能な情報処理装置、制御方法及び制御プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一側面に係る情報処理装置は、それぞれ識別情報が設定された複数のハードディスクと、情報処理装置のＭＡＣアドレスが記憶されたメモリと、プロセッサと、を有し、複数のハードディスクのそれぞれには、構成情報と、ブートローダとが記憶され、構成情報のそれぞれには、当該構成情報が設定されたときに当該構成情報を設定した情報処理装置が有していた全てのハードディスクの識別情報と、当該情報処理装置のＭＡＣアドレスとが含まれ、プロセッサは、装置の起動処理開始時に、複数のハードディスクの中から、少なくともブートローダが記憶されているハードディスクを選択し、選択したハードディスクに記憶されたブートローダに従って、複数のハードディスクのそれぞれに記憶された構成情報の中から、当該構成情報に含まれるＭＡＣアドレスがメモリに記憶されたＭＡＣアドレスと一致する構成情報を選択し、選択した構成情報に、選択したハードディスクに設定された識別情報が含まれるか否かを判定し、含まれない場合、装置の起動処理を停止する。
【０００８】
また、本発明の他の側面に係る制御方法は、それぞれ識別情報が設定された複数のハードディスクと、ＭＡＣアドレスが記憶されたメモリと、プロセッサと、を有し、複数のハードディスクのそれぞれには、構成情報と、ブートローダとが記憶され、構成情報のそれぞれには、当該構成情報が設定されたときに当該構成情報を設定した情報処理装置が有していた全てのハードディスクの識別情報と、当該情報処理装置のＭＡＣアドレスとが含まれる情報処理装置の制御方法であって、装置の起動処理開始時に、複数のハードディスクの中から、少なくともブートローダが記憶されているハードディスクを選択し、選択したハードディスクに記憶されたブートローダに従って、複数のハードディスクのそれぞれに記憶された構成情報の中から、当該構成情報に含まれるＭＡＣアドレスがメモリに記憶されたＭＡＣアドレスと一致する構成情報を選択し、選択した構成情報に、選択したハードディスクに設定された識別情報が含まれるか否かを判定し、含まれない場合、装置の起動処理を停止する、ことを含む。
【０００９】
また、本発明の一側面に係る制御プログラムは、それぞれ識別情報が設定された複数のハードディスクと、ＭＡＣアドレスが記憶されたメモリと、プロセッサと、を有し、複数のハードディスクのそれぞれには、構成情報と、ブートローダとが記憶され、構成情報のそれぞれには、当該構成情報が設定されたときに当該構成情報を設定した情報処理装置が有していた全てのハードディスクの識別情報と、当該情報処理装置のＭＡＣアドレスとが含まれる情報処理装置の制御プログラムであって、装置の起動処理開始時に、複数のハードディスクの中から、少なくともブートローダが記憶されているハードディスクを選択し、選択したハードディスクに記憶されたブートローダに従って、複数のハードディスクのそれぞれに記憶された構成情報の中から、当該構成情報に含まれるＭＡＣアドレスがメモリに記憶されたＭＡＣアドレスと一致する構成情報を選択し、選択した構成情報に、選択したハードディスクに設定された識別情報が含まれるか否かを判定し、含まれない場合、装置の起動処理を停止する、ことを情報処理装置に実行させる。
【発明の効果】
【００１０】
本発明に係る情報処理装置、制御方法及び制御プログラムは、それぞれブートローダが記憶された複数のハードディスクを有する情報処理装置において、不適切に動作することを防止可能である。
【図面の簡単な説明】
【００１１】
【図１】実施形態において想定する場面の一例を示す概略図である。
【図２】実施形態に係る情報処理装置のハードウェア構成の例を示す図である。
【図３】ハードディスクにおけるデータ構造の例を示す図である。
【図４】構成情報のデータ構造の一例を示す図である。
【図５】記憶装置及びＣＰＵの概略構成の例を示す図である。
【図６】情報処理装置の動作の例を示すフローチャートである。
【図７】構成情報の選択処理の動作の例を示すフローチャートである。
【図８】ブートハードディスクの判定処理の動作の例を示すフローチャートである。
【図９】イベント処理の動作の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の一側面に係る情報処理装置及び制御方法について図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【００１３】
図１は、実施形態において想定する場面の一例を示す概略図である。
【００１４】
情報処理装置１は、パーソナルコンピュータ又はサーバであり、第２ハードディスク１６ｂ及び第３ハードディスク１６ｃを有している。第２ハードディスク１６ｂ及び第３ハードディスク１６ｃは、それぞれＯＳ（Operating System）である第１ＯＳ、第１ＯＳをメモリにロードするためのブートローダ、及びユーザデータを記憶している。情報処理装置１は、ＳＡＴＡ（Serial Advanced Technology Attachment）規格に従ったポート２及びポート３を有している。情報処理装置１において、ポート２及びポート３にはそれぞれ第２ハードディスク１６ｂ及び第３ハードディスク１６ｃが接続されているが、ポート１にはハードディスクが接続されていない。
【００１５】
他の情報処理装置１´は、パーソナルコンピュータ又はサーバであり、第１ハードディスク１６ａ´、第２ハードディスク１６ｂ´及び第３ハードディスク１６ｃ´を有している。第１ハードディスク１６ａ´〜第３ハードディスク１６ｃ´のそれぞれは、第１ＯＳと異なるＯＳである第２ＯＳ、第２ＯＳをメモリにロードするためのブートローダ、及びユーザデータを記憶している。他の情報処理装置１´は、ＳＡＴＡ規格に従ったポート１〜３を有している。他の情報処理装置１´において、ポート１〜３にはそれぞれ第１ハードディスク１６ａ´〜第３ハードディスク１６ｃ´が接続されている。
【００１６】
情報処理装置１は、電源が投入されると起動処理を開始する。情報処理装置１は、起動処理において、接続されているポートの番号が最も小さいハードディスクを選択し、選択したハードディスクに記憶されているブートローダに従ってＯＳを起動させる。図１に示す例では、ポート１にハードディスクが接続されていないため、情報処理装置１は、ポート２に接続された第２ハードディスク１６ｂに記憶されているブートローダに従って第１ＯＳを起動させる。
【００１７】
情報処理装置１において他の情報処理装置１´の第１ハードディスク１６ａ´に記憶されているユーザデータを使用するために、ポート１に第１ハードディスク１６ａ´が接続される場合がある。その場合、情報処理装置１は、接続されているポートの番号が最も小さいハードディスクを選択するため、ポート１に接続された第１ハードディスク１６ａ´を選択する。次に、情報処理装置１は、第１ハードディスク１６ａ´に記憶されているブートローダに従って第２ＯＳを起動させる。しかしながら、第２ＯＳには他の情報処理装置１´のハードウェア及びソフトウェア構成に応じた設定がなされていることから、第２ＯＳにおける設定が第１ＯＳにおける設定と異なる場合、情報処理装置１は、不適切に動作する可能性がある。このような状況は、特に、情報処理装置１又は他の情報処理装置１´の少なくとも一方が複数のハードディスクを用いてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成する場合に発生し得る。
【００１８】
情報処理装置１は、複数のハードディスクのそれぞれに装置に関する構成情報を記憶しておく。情報処理装置１は、特定のハードディスクに記憶されたブートローダに従って起動する際に、複数のハードディスクのそれぞれに記憶された構成情報の中から自装置に関する構成情報を選択する。情報処理装置１は、選択した構成情報にそのブートローダが記憶されたハードディスクの識別情報が含まれない場合、起動処理を停止する。これにより、情報処理装置１は、上記した場面において、不適切に動作することを防止することを図る。
【００１９】
図２は、第１実施形態に係る情報処理装置のハードウェア構成の例を示す図である。
【００２０】
情報処理装置１は、記憶装置として複数のハードディスクを有するパーソナルコンピュータ又はサーバ等であり、特定のプログラムからの要求に従ってデータを格納するとともに、格納したデータを読み出す。情報処理装置１は、通信装置１１と、入力装置１２と、表示装置１３と、記憶装置１４と、ＣＰＵ１７とを有する。
【００２１】
通信装置１１は、主に２．４ＧＨｚ帯、５ＧＨｚ帯等を感受帯域とするアンテナを含む無線ＬＡＮ（Local Area Network）の通信インタフェース回路を有する装置である。通信装置１１は、アクセスポイント等との間でＩＥＥＥ（The Institute of Electrical and Electronics Engineers）８０２．１１規格の無線通信方式に基づいて無線通信を行う。そして、通信装置１１は、アクセスポイントを介して他のコンピュータ（不図示）とデータの送受信を行う。通信装置１１は、アクセスポイントを介して他のコンピュータから受信したデータをＣＰＵ１７に供給し、ＣＰＵ１７から供給されたデータをアクセスポイントを介して他のコンピュータに送信する。
【００２２】
通信装置１１は、通信インタフェース回路が使用するＭＡＣ（Media Access Control）アドレスを記憶する通信メモリ１１ａを有する。通信メモリ１１ａは、ＲＯＭ（Read Only Memory）等の不揮発性のメモリであり、ＭＡＣアドレスを記憶できるものであればどのようなものでもよい。ＭＡＣアドレスは、有線ＬＡＮ又は無線ＬＡＮと接続する全ての通信インタフェース回路に一意に割り当てられているアドレスであり、本実施形態においては、情報処理装置１を他の情報処理装置と識別するための識別子として使用される。
【００２３】
通信装置１１は、ＭＡＣアドレスを有し、他のコンピュータと通信できるものであればどのようなものであってもよい。例えば、通信装置１１は、有線ＬＡＮ（Local Area Network）通信方式に従って他のコンピュータと通信するものでもよい。
【００２４】
入力装置１２は、タッチパネル式の入力装置、キーボード、マウス等の入力デバイス及び入力デバイスから信号を取得するインタフェース回路を有する装置である。入力装置１２は、ユーザの入力を受け付け、ユーザの入力に応じた信号をＣＰＵ１７に対して出力する。
【００２５】
表示装置１３は、液晶、有機ＥＬ（Electro-Luminescence）等から構成されるディスプレイ及びディスプレイに画像データ又は各種の情報を出力するインタフェース回路を有する装置である。表示装置１３は、ＣＰＵ１７と接続されて、ＣＰＵ１７から出力された画像データをディスプレイに表示する。なお、タッチパネルディスプレイを用いて、入力装置１２と表示装置１３を一体に構成してもよい。
【００２６】
記憶装置１４は、ＲＯＭ１５ａと、ＲＡＭ１５ｂと、第１ハードディスク１６ａと、第２ハードディスク１６ｂと、第３ハードディスク１６ｃとを有する。以後、ＲＯＭ１５ａ及びＲＡＭ１５ｂをメモリ１５と総称する場合がある。また、第１ハードディスク１６ａ、第２ハードディスク１６ｂ及び第３ハードディスク１６ｃを、ハードディスク１６と総称する場合がある。
【００２７】
ＲＯＭ１５ａには、ＢＩＯＳが記憶される。第１ハードディスク１６ａ、第２ハードディスク１６ｂ及び第３ハードディスク１６ｃのそれぞれには、ブートローダ、カーネル等が記憶される。
【００２８】
ハードディスク１６は、情報処理装置１のＳＡＴＡ等のコンピュータにハードディスクを接続するインタフェース規格に従ったポートと着脱可能に接続される。ハードディスク１６とポートとの接続状態は、ポートを一意に識別するポート番号毎にＲＡＭ１５ｂに記憶される。なお、ハードディスク１６は、２つでもよく、４つ以上でもよい。また、情報処理装置１は、第１ハードディスク１６ａ、第２ハードディスク１６ｂ及び第３ハードディスク１６ｃに対してＲＡＩＤによるミラーリングを構成してもよい。
【００２９】
記憶装置１４は、さらに汎用の記憶装置、フレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、記憶装置１４には、情報処理装置１の各種処理に用いられる各種データ、コンピュータプログラム、データベース、テーブル等を記憶する。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて情報処理装置１にインストールされてもよい。可搬型記録媒体は、例えばＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）等である。
【００３０】
図３は、ハードディスクにおけるデータ構造の例を示す図である。
【００３１】
ハードディスク１６の内、ブートローダを記憶するハードディスクは、パーティションテーブル、ローダ位置、ブートローダ、構成情報、初期化済フラグ、カーネル、ファイルシステム、ユーザデータ等を記憶する。ハードディスク１６は、さらにハードディスクを一意に識別可能な識別情報をハードディスク１６のレジスタ内に記憶している。識別情報は、例えばＵＵＩＤ（Universally Unique IDentifier）である。
【００３２】
パーティションテーブルは、ハードディスク１６内の各パーティションの開始セクタ及びパーティションサイズ等、パーティションの設定に関する情報を記憶するテーブルである。各パーティションの終了セクタは、各パーティションの開始セクタ及びパーティションサイズから算出可能である。
【００３３】
ローダ位置は、ブートローダがハードディスク１６に記憶されている位置をセクタ単位で示す。ローダ位置の値が１の場合、ブートローダがハードディスク１６に記憶されていないことを示す。ブートローダは、カーネル等を記憶装置１４のメモリ上に読み込むためのプログラムである。ブートローダは、例えばＧＲＵＢ（GRand Unified Bootloader）である。
【００３４】
構成情報は、情報処理装置１が有するハードウェアの構成を示す情報である。構成情報の詳細については後述する。
【００３５】
初期化済フラグは、ハードディスク１６が、所定の初期化処理が実行されたハードディスクであるか否かを示す。初期化済フラグが設定されていることは、そのハードディスクは所定の初期化処理が実行されたハードディスクであることを示す。
【００３６】
カーネルは、情報処理装置１のＯＳの中心的なプログラムであり、動作中のプログラムの実行状態の管理、ハードウェア資源の管理等、ＯＳの基本的な動作を実行するプログラムである。ＯＳは、例えばＬｉｎｕｘ（登録商標）である。カーネルは、ファイルとして記憶され、所定のディレクトリに配置される。カーネルのファイル名には、カーネルを記憶しているハードディスクの識別情報が情報処理装置１の管理者により設定されている。
【００３７】
ファイルシステムは、情報処理装置１が記憶するファイルを管理するために使用される。ユーザデータは、ファイルシステム上にユーザが作成した任意のデータである。
【００３８】
なお、ハードディスク１６の記憶領域は、セクタ単位で分割された第１〜第５パーティションを含む。第１パーティションには、ブートローダが記憶される。第２パーティションには、構成情報及び初期化済フラグが記憶される。第３パーティションには、カーネルが記憶される。第４パーティションには、ファイルシステムが記憶される。第５パーティションには、ユーザデータが記憶される。ハードディスク１６は、さらに他のパーティションを含んでもよく、ユーザデータを記憶しない場合は第５パーティションを含まなくてもよい。
【００３９】
第４パーティション又は第５パーティションは、さらに、これらのパーティションを設定する際に使用される、ハードディスクのパーティション数と各パーティションの開始セクタ及び終了セクタの組とを含むパーティション設定情報を記憶する。また、第４パーティション又は第５パーティションは、さらに、構成情報の初期値を記憶する。なお、パーティションテーブル及びローダ位置は、パーティションが設定された領域以外の記憶領域に記憶される。
【００４０】
ＣＰＵ１７は、プロセッサの一例であり、予め記憶装置１４に記憶されているプログラムに基づいて動作する。なお、ＣＰＵ１７に代えて、ＤＳＰ（digital signal processor）、ＬＳＩ（large scale integration）等が用いられてもよい。また、ＣＰＵ１７に代えて、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programming Gate Array）等が用いられてもよい。
【００４１】
ＣＰＵ１７は、通信装置１１、入力装置１２、表示装置１３及び記憶装置１４と接続され、これらの各部を制御する。ＣＰＵ１７は、通信装置１１を介した他の情報処理装置等とのデータ送受信制御等を行う。
【００４２】
図４は、構成情報のデータ構造の一例を示す図である。
【００４３】
構成情報には、構成情報の版数と、構成情報を設定した情報処理装置のＭＡＣアドレスと、構成情報を設定した情報処理装置のハードディスク情報とが、互いに関連付けられて記憶されている。構成情報は、情報処理装置の管理者又は情報処理装置上で動作するプログラムによって設定され、情報処理装置が有するハードディスク１６のそれぞれに記憶される。
【００４４】
版数には初期値として１が設定され、版数は構成情報が更新設定される度にインクリメントされる。即ち、ＭＡＣアドレスが同一の構成情報の中で最も新しい構成情報の版数は、最も大きい値となる。
【００４５】
ハードディスク情報は、構成情報が設定されたときに当該構成情報を設定した情報処理装置が有していた全てのハードディスクに関する情報である。ハードディスク情報には、情報処理装置が有していた各ハードディスク毎に、各ハードディスクの識別情報と、状態情報とが互いに関連付けられて記憶されている。状態情報は、ハードディスクの動作状態が正常か異常かを示す。ハードディスクの動作状態は、ハードディスクが有するＳ．Ｍ．Ａ．Ｒ．Ｔ．（Self-Monitoring, Analysis and Reporting Technology）情報等に基づいて、ハードディスクを有する情報処理装置により決定される。
【００４６】
図５は、記憶装置及びＣＰＵの概略構成を示す図である。
【００４７】
記憶装置１４には、ＢＩＯＳ１５１、ブートローダ１６１、カーネル１６２、構成情報選択プログラム１６３、ブートハードディスク判定プログラム１６４、起動処理終了プログラム１６５、起動処理停止プログラム１６６、ブートローダ削除プログラム１６７、ハードディスク更新プログラム１６８、構成情報変更プログラム１６９等の各プログラムが記憶される。これらの各プログラムは、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。
【００４８】
ＢＩＯＳ１５１は、ＲＯＭ１５ａに記憶される。ブートローダ１６１及びカーネル１６２は、第１ハードディスク１６ａ、第２ハードディスク１６ｂ及び第３ハードディスク１６ｃのそれぞれに記憶される。構成情報選択プログラム１６３、ブートハードディスク判定プログラム１６４、起動処理終了プログラム１６５、起動処理停止プログラム１６６、ブートローダ削除プログラム１６７、ハードディスク更新プログラム１６８及び構成情報変更プログラム１６９は、ファイルシステム１６０に含まれ、第１ハードディスク１６ａ、第２ハードディスク１６ｂ及び第３ハードディスク１６ｃのそれぞれに記憶される。
【００４９】
ＣＰＵ１７は、記憶装置１４に記憶された各プログラムを読み込み、読み込んだ各プログラムに従って動作することにより、ＢＩＯＳ部１７１、ブートローダ部１８１、カーネル部１８２、構成情報選択部１８３、ブートハードディスク判定部１８４、起動処理終了部１８５、起動処理停止部１８６、ブートローダ削除部１８７、ハードディスク更新部１８８、構成情報変更部１８９等として機能する。
【００５０】
図６は、情報処理装置の動作の例を示すフローチャートである。以下、図６に示したフローチャートを参照しつつ、情報処理装置の動作の例を説明する。なお、以下に説明する動作のフローは、主にＣＰＵ１７により情報処理装置１の各要素と協働して実行される。
【００５１】
ユーザが情報処理装置１の電源を投入すると、ＣＰＵ１７は、ＲＯＭ１５ａからＢＩＯＳ１５１を読み出してＲＡＭ１５ｂに複写し、複写したＢＩＯＳ１５１に従ってＢＩＯＳ部１７１として動作し、起動処理を開始する（ステップＳ１１）。起動処理とは、ＢＩＯＳの起動からユーザが情報処理装置１を操作可能な状態になるまでに実行される一連の処理であり、ＣＰＵ１７によって実行される。ユーザが情報処理装置１を操作可能な状態とは、例えばログインプロンプトが表示装置１３に表示され、ユーザが入力装置１２を操作することにより情報処理装置１にログイン可能な状態である。
【００５２】
次に、ＢＩＯＳ部１７１は、第１ハードディスク１６ａ、第２ハードディスク１６ｂ及び第３ハードディスク１６ｃの中から、ブートローダが記憶されているハードディスクを所定の優先順位に従って一つ選択する（ステップＳ１２）。
【００５３】
ＢＩＯＳ部１７１は、ローダ位置の値が１か否かに従って、第１ハードディスク１６ａ〜第３ハードディスク１６ｃの内ブートローダが記憶されているハードディスクを抽出する。ＢＩＯＳ部１７１は、ブートローダが記憶されているハードディスクが複数個存在する場合、抽出したハードディスクからＲＡＭ１５ｂに記憶された接続状態に基づいてポート番号が最も小さいＳＡＴＡポートと接続されたハードディスクを選択する。
【００５４】
次に、ＢＩＯＳ部１７１は、ハードディスクが選択されたか否かを判定する（ステップＳ１３）。ハードディスクが選択されなかった場合（ステップＳ１３−Ｎ）、ＢＩＯＳ部１７１は、異常処理を実行する（ステップＳ１４）。ＢＩＯＳ部１７１は、異常処理において、ブートローダが記憶されているハードディスクが存在しないことを示す表示画面を表示装置１３に表示させ、起動処理を停止する（ステップＳ１５）。
【００５５】
ハードディスクが選択された場合（ステップＳ１３−Ｙ）、ＢＩＯＳ部１７１は、選択したハードディスクからブートローダ１６１を読み出してＲＡＭ１５ｂに複写する。ＣＰＵ１７は、ＲＡＭ１５ｂに複写したブートローダ１６１に従ってブートローダ部１８１として動作する。以後、ＲＡＭ１５ｂに複写したブートローダ１６１を記憶していたハードディスクをブートハードディスクと称する場合がある。
【００５６】
ブートローダ部１８１は、ＢＩＯＳ部１７１が選択したハードディスクからカーネル１６２を読み出してＲＡＭ１５ｂに複写し、ＣＰＵ１７は、ＲＡＭ１５ｂに複写したカーネル１６２に従ってカーネル部１８２として動作する。
【００５７】
カーネル部１８２は、ＢＩＯＳ部１７１が選択したハードディスク上のファイルシステム１６０を読み出してＲＡＭ１５ｂ上に複写し（ステップＳ１６）、ＣＰＵ１７は、ＲＡＭ１５ｂに複写した各プログラムに従って各プログラムに対応する各部として動作する。
【００５８】
次に、構成情報選択部１８３は、構成情報の選択処理を実行する（ステップＳ１７）。構成情報の選択処理については後述する。
【００５９】
次に、構成情報選択部１８３は、構成情報の選択処理において、構成情報が選択されたか否かを判定する（ステップＳ１８）。
【００６０】
構成情報の選択処理において構成情報が選択されなかったと判定された場合（ステップＳ１８−Ｎ）、構成情報選択部１８３は、構成情報の初期値に従って新しい構成情報を作成し、ハードディスク１６のそれぞれに記憶する（ステップＳ１９）。
【００６１】
次に、起動処理終了部１８５は、ログインプロンプトを表示装置１３に表示させて、起動処理を終了する（ステップＳ２２）。後述するブートハードディスクの判定処理を省略して起動処理を進行させ、終了させるのは、構成情報選択部１８３が新しい構成情報を作成した場合、ブートハードディスクの判定処理に必要な情報が新しい構成情報に含まれていないためである。
【００６２】
構成情報の選択処理において構成情報が選択されたと判定された場合（ステップＳ１８−Ｙ）、ブートハードディスク判定部１８４は、ブートハードディスクの判定処理を実行する（ステップＳ２０）。ブートハードディスク判定部１８４は、ブートハードディスクの判定処理において、構成情報の選択処理で選択された構成情報に基づいてブートハードディスクが適切であるか否かを判定する。ブートハードディスクの判定処理については後述する。
【００６３】
次に、ブートハードディスク判定部１８４は、ブートハードディスクの判定処理において、ブートハードディスクが適切であると判定されたか否かを判定する（ステップＳ２１）。
【００６４】
ブートハードディスクの判定処理においてブートハードディスクが適切であると判定された場合（ステップＳ２１−Ｙ）、起動処理終了部１８５は、ログインプロンプトを表示装置１３に表示させて、起動処理を終了する（ステップＳ２２）。
【００６５】
ブートハードディスクの判定処理においてブートハードディスクが適切でないと判定された場合（ステップＳ２１−Ｎ）、起動処理停止部１８６は、装置の起動処理を停止する（ステップＳ２３）。
【００６６】
次に、ブートローダ削除部１８７は、ブートハードディスクからブートローダを削除する（ステップＳ２４）。例えば、ブートローダ削除部１８７は、ブートハードディスクのローダ位置の値をブートローダがブートハードディスクに記憶されていない状態を示す１に設定する。さらに、ブートローダ削除部１８７は、ブートハードディスクのパーティションテーブルから、ブートローダ１６１が記憶されているパーティションに関する情報を削除する。
【００６７】
次に、ブートローダ削除部１８７は、ソフトウェアリセットを実行し、情報処理装置１を再起動する（ステップＳ２５）。情報処理装置１が再起動されると、ＣＰＵ１７は、ステップＳ１１から再度起動処理を実行する。
【００６８】
ステップＳ１２において、ＢＩＯＳ部１７１は、ブートローダが記憶されていないハードディスクを起動処理で選択しないため、以後、他の情報処理装置で使用されていたハードディスクが起動処理で使用されることを防止できる。また、情報処理装置１は、構成情報選択プログラム１６３〜構成情報変更プログラム１６９の各プログラムを使用することにより、ＢＩＯＳ１５１を修正することなく図６に示す処理を実行可能である。
【００６９】
図７は、構成情報の選択処理の動作の例を示すフローチャートである。構成情報の選択処理は、図６のステップＳ１７で実行される。
【００７０】
最初に、構成情報選択部１８３は、通信メモリ１１ａから情報処理装置１のＭＡＣアドレスを取得する（ステップＳ３１）。次に、構成情報選択部１８３は、第１ハードディスク１６ａ〜第３ハードディスク１６ｃに記憶されている全ての構成情報の中から、構成情報に含まれるＭＡＣアドレスが、取得したＭＡＣアドレスと一致する構成情報を抽出する（ステップＳ３２）。次に、構成情報選択部１８３は、構成情報が抽出されたか否かを判定する（ステップＳ３３）。
【００７１】
構成情報が抽出されなかった場合（ステップＳ３３−Ｎ）、構成情報選択部１８３は、構成情報を選択せずに一連の処理を終了する。構成情報が抽出された場合（ステップＳ３３−Ｙ）、構成情報選択部１８３は、抽出された構成情報の中から版数が最も新しい構成情報を選択して（ステップＳ３４）、一連の処理を終了する。
【００７２】
図８は、ブートハードディスクの判定処理の動作の例を示すフローチャートである。ブートハードディスクの判定処理は、図６のステップＳ２０で実行される。
【００７３】
最初に、ブートハードディスク判定部１８４は、ブートハードディスクからカーネル１６２のファイル名を読み出し、読み出したファイル名をブートハードディスクの識別情報として取得する（ステップＳ４１）。
【００７４】
次に、ブートハードディスク判定部１８４は、取得したブートハードディスクの識別情報が適切か否かを判定する（ステップＳ４２）。例えば、ブートハードディスク判定部１８４は、情報処理装置１が有する全ハードディスクから各ハードディスクの識別情報を取得し、カーネル１６２のファイル名が、取得したハードディスクの識別情報のいずれかと一致するか否かを判定する。ブートハードディスク判定部１８４は、カーネル１６２のファイル名が、取得したハードディスクの識別情報のいずれかと一致する場合、ブートハードディスクの識別情報は適切であると判定する。ブートハードディスク判定部１８４は、カーネル１６２のファイル名がハードディスクの識別情報のいずれとも一致しない場合、ブートハードディスクの識別情報は適切でないと判定する。
【００７５】
識別情報が適切でない場合（ステップＳ４２−Ｎ）、ブートハードディスク判定部１８４は、ブートハードディスクが適切でないと判定し（ステップＳ４６）、一連の処理を終了する。
【００７６】
識別情報が適切である場合（ステップＳ４２−Ｙ）、ブートハードディスク判定部１８４は、構成情報選択部１８３により選択された構成情報が、取得した識別情報を含むか否かを判定する（ステップＳ４３）。
【００７７】
選択された構成情報が取得した識別情報を含まない場合（ステップＳ４３−Ｎ）、ブートハードディスク判定部１８４は、ブートハードディスクが適切でないと判定し（ステップＳ４６）、一連の処理を終了する。
【００７８】
選択された構成情報が取得した識別情報を含む場合（ステップＳ４３−Ｙ）、ブートハードディスク判定部１８４は、その構成情報からその識別情報に対応するハードディスクの状態情報を読み出す。次に、ブートハードディスク判定部１８４は、読み出した状態情報が正常か異常か、即ちブートハードディスクの前回の動作状態が正常か異常かを判定する（ステップＳ４４）。
【００７９】
状態情報が異常である場合（ステップＳ４４−Ｎ）、ブートハードディスク判定部１８４は、ブートハードディスクが適切でないと判定し（ステップＳ４６）、一連の処理を終了する。
【００８０】
状態情報が正常である場合（ステップＳ４４−Ｙ）、ブートハードディスク判定部１８４は、ブートハードディスクが適切であると判定し（ステップＳ４５）、一連の処理を終了する。
【００８１】
図９は、イベント処理の動作の例を示すフローチャートである。以下、図９に示したフローチャートを参照しつつ、情報処理装置の動作の例を説明する。なお、以下に説明する動作のフローは、起動処理の終了後から定期的に、主にＣＰＵ１７により情報処理装置１の各要素と協働して実行される。
【００８２】
最初に、ハードディスク更新部１８８は、情報処理装置１に新たなハードディスクが検出されたか否かを判定する（ステップＳ５１）。ハードディスク更新部１８８は、ＲＡＭ１５ｂに記憶されたＳＡＴＡポートとハードディスクとの接続状態を確認し、前回接続されていなかったハードディスクの接続を確認した場合、新たなハードディスクが検出されたと判定する。
【００８３】
新たなハードディスクが検出された場合（ステップＳ５１−Ｙ）、ハードディスク更新部１８８は、ハードディスクの更新処理を実行する（ステップＳ５２）。
【００８４】
ハードディスクの更新処理において、ハードディスク更新部１８８は、新たに検出されたハードディスクからそのハードディスクの識別情報を取得する。次に、ハードディスク更新部１８８は、以下の（１）〜（３）の３つの条件を全て満たすか否かを判定する。
（１）構成情報選択部１８３により選択された構成情報が、取得された識別情報を含むこと。
（２）選択された構成情報において、取得された識別情報に対応するハードディスクの状態情報が正常であること。
（３）新たに検出されたハードディスクに初期化済フラグが設定されていること。
【００８５】
（１）〜（３）の条件を全て満たす場合、ハードディスク更新部１８８は、一連の処理を終了する。
【００８６】
（１）〜（３）の条件のうち少なくとも１つの条件を満たさない場合、ハードディスク更新部１８８は、ハードディスクの初期化処理を実行し、一連の処理を終了する。
【００８７】
初期化処理において、ハードディスク更新部１８８は、初期化済フラグの設定をクリアする。次に、ハードディスク更新部１８８は、新たに検出されたハードディスクのパーティション及びパーティションテーブルを、選択された構成情報を記憶するハードディスクに記憶されているパーティション設定情報に従って設定する。次に、ハードディスク更新部１８８は、パーティションが設定されたハードディスクに、選択された構成情報を記憶するハードディスクに記憶されているローダ位置、ブートローダ、構成情報、カーネル及びファイルシステムを複写する。次に、ハードディスク更新部１８８は、ブートローダ等が複写されたハードディスクに初期化済フラグを設定して、初期化処理を終了する。
【００８８】
情報処理装置１は、新たに検出されたハードディスクに、選択された構成情報を記憶するハードディスクに記憶されているブートローダ等を複写する。従って、情報処理装置１は、次回以降の起動処理において新たに検出されたハードディスクが選択された際に、不適切な動作をすることを防止することが可能となる。
【００８９】
新たなハードディスクが検出されなかった場合（ステップＳ５１−Ｎ）、構成情報変更部１８９は、情報処理装置１が有する各ハードディスク１６からＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を取得する。構成情報変更部１８９は、取得したＳ．Ｍ．Ａ．Ｒ．Ｔ．情報に基づいて、ハードディスクに異常が発生したか否かを判定する（ステップＳ５３）。例えば、構成情報変更部１８９は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報に含まれる、ハードディスクからデータを読み込むときのエラー率が所定値より高い場合、ハードディスクに異常が発生したと判定する。
【００９０】
ハードディスクに異常が発生していない場合（ステップＳ５３−Ｎ）、構成情報変更部１８９は、一連の処理を終了する。
【００９１】
ハードディスクに異常が発生した場合（ステップＳ５３−Ｙ）、構成情報変更部１８９は、異常が検出されたハードディスクの識別情報を取得する。次に、構成情報変更部１８９は、各ハードディスク１６に記憶されている構成情報の、異常を検出したハードディスクの識別情報に対応する状態情報を異常に設定して（ステップＳ５４）、一連の処理を終了する。
【００９２】
以上詳述したように、情報処理装置１は、特定のハードディスクに記憶されたブートローダに従って起動する際に、複数のハードディスクのそれぞれに記憶された構成情報の中から自装置に関する構成情報を選択する。情報処理装置１は、選択した構成情報にそのブートローダが記憶されたハードディスクの識別情報が含まれない場合、起動処理を停止する。これにより、情報処理装置１は、不適切に動作することを防止可能である。
【００９３】
情報処理装置１を含む各情報処理装置の使用する各ハードディスクには、自装置のＭＡＣアドレス及びハードディスクの識別情報を含む構成情報が記憶されている。また、情報処理装置１は、起動処理において、各ハードディスクに記憶された構成情報から、自装置のＭＡＣアドレスと一致するＭＡＣアドレスを含む構成情報を抽出及び選択することにより、自装置用の構成情報を適切に選択する。従って、適切に選択された構成情報が、ブートハードディスクの識別情報を含まない場合、ブートハードディスクは、電源が切られた情報処理装置１に新たに接続され、且つ、接続前には他の情報処理装置で使用されていた可能性が高い。
【００９４】
他の情報処理装置で使用されていたブートハードディスクが記憶するブートローダは、他の情報処理装置で使用されていたカーネルを起動しようとする。しかし、そのカーネルは、以前から情報処理装置１で使用されていたハードウェア又はソフトウェアを適切に制御できない可能性がある。情報処理装置１は、他の情報処理装置で使用されていたブートローダに従って起動しようとする場合、起動処理を停止するため、不適切な動作をすることを防止することが可能となる。
【００９５】
また、情報処理装置１は、自装置に関する構成情報の中で、版数が最も新しい構成情報を選択する。構成情報の中で版数が最も新しい構成情報は、現在の状態に最も近いハードディスクの情報を示す。従って、情報処理装置１は、不適切な動作をする可能性をより低減させることが可能となる。
【００９６】
また、情報処理装置１は、構成情報に含まれる選択したハードディスクの状態情報が異常を示している場合、起動処理を停止する。従って、情報処理装置１は、不適切な動作をする可能性をより低減させることが可能となる。
【００９７】
なお、情報処理装置１のファイルシステムは、カーネル部１８２が最初に展開する初期ファイルシステムと、その後に展開されるルートファイルシステムとに分割されていてもよい。この場合、カーネル部１８２が展開した初期ファイルシステムに含まれるプログラムは、ＲＡＩＤの構成、ルートファイルシステムのＲＡＭ１５ｂ上への展開等の処理を実行してもよい。
【００９８】
また、構成情報は、ＲＡＩＤを構成するハードディスクの識別情報を含んでもよく、カーネル部１８２が展開した初期ファイルシステムに含まれるプログラムは、構成情報に含まれる識別情報により識別されるハードディスクを用いてＲＡＩＤを構成してもよい。
【符号の説明】
【００９９】
１    情報処理装置
１１ａ    通信メモリ（メモリ）
１６    ハードディスク
１７    ＣＰＵ（プロセッサ）
１６１    ブートローダ
【図１】
2019164489.tif 000003
【図２】
2019164489.tif 000004
【図３】
2019164489.tif 000005
【図４】
2019164489.tif 000006
【図５】
2019164489.tif 000007
【図６】
2019164489.tif 000008
【図７】
2019164489.tif 000009
【図８】
2019164489.tif 000010
【図９】
2019164489.tif 000011