(57)【要約】      （修正有）【課題】スタンドアロンダンププログラムを、直前に運用していたＯＳに最適なメモリダンプ採取をサポートするものに設定可能とする。【解決手段】コンピュータシステムのブートファームウェアが管理する不揮発性変数に、コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を定義し、ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、ブート情報を特定して、特定したブート情報を示す情報を不揮発性変数に書き込み、スタンドアロンダンプの起動が指定されたときに、その情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する１つのスタンドアロンダンププログラムをブートするように構成する。【選択図】図１
2006209320.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムのブートファームウェアが管理する不揮発性変数に、該コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、該複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を定義するステップと、
該ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、該テーブル変数から対応する１つのスタンドアロンダンププログラムのブート情報を特定して、特定したブート情報を示す情報をスタンドアロンダンプ実行時に参照する不揮発性変数に書き込むステップと、
該スタンドアロンダンプの起動が指定されたときに、該スタンドアロンダンプ実行時に参照する変数の有無と、存在する場合にはその情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する該１つのスタンドアロンダンププログラムをブートするステップとを含むことを特徴とする、メモリダンププログラムのブート方法。
【請求項２】
ブートする該１つのオペレーティングシステムが対応するスタンドアロンダンププログラムを持たない場合には、スタンドアロンダンプ実行時に参照する変数自体を作らないことを特徴とする、請求項１記載のメモリダンププログラムのブート方法。
【請求項３】
該ブート情報は、ブート対象装置がコンピュータシステムのどこに接続されているかを示すデバイスパス情報とオペレーティングシステムローダプログラムのファイル位置やファイル名を情報として持つ第１の変数と、複数存在する該第１の変数で表されるブート対象装置にブート起動をかける順番を指定する第２の変数と、スタンドアロンダンププログラムのローダプログラムが格納されているブート対象装置のデバイスパス情報と該スタンドアロンダンププログラムのローダプログラムのファイル位置やファイル名を情報として持つ第３の変数と、次回起動する該スタンドアロンダンププログラムのローダプログラムのブート情報である該第３の変数を保持する第４の変数と、該スタンドアロンダンプがエラー終了した場合の処理を指定する第５の変数とを含むことを特徴とする、請求項１又は２記載のメモリダンププログラムのブート方法。
【請求項４】
コンピュータシステムのブートファームウェアが管理する不揮発性変数に、該コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、該複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を格納する不揮発性メモリと、
該ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、該テーブル変数から対応する１つのスタンドアロンダンププログラムのブート情報を特定して、特定したブート情報を示す情報をスタンドアロンダンプ実行時に参照する不揮発性変数に書き込む手段と、
該スタンドアロンダンプの起動が指定されたときに、該スタンドアロンダンプ実行時に参照する変数の有無と、存在する場合にはその情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する該１つのスタンドアロンダンププログラムをブートする手段とを備えたことを特徴とする、メモリダンププログラムのブート装置。
【請求項５】
ブートする該１つのオペレーティングシステムが対応するスタンドアロンダンププログラムを持たない場合には、スタンドアロンダンプ実行時に参照する変数自体を作らないことを特徴とする、請求項４記載のメモリダンププログラムのブート装置。
【請求項６】
該ブート情報は、ブート対象装置がコンピュータシステムのどこに接続されているかを示すデバイスパス情報とオペレーティングシステムローダプログラムのファイル位置やファイル名を情報として持つ第１の変数と、複数存在する該第１の変数で表されるブート対象装置にブート起動をかける順番を指定する第２の変数と、スタンドアロンダンププログラムのローダプログラムが格納されているブート対象装置のデバイスパス情報と該スタンドアロンダンププログラムのローダプログラムのファイル位置やファイル名を情報として持つ第３の変数と、次回起動する該スタンドアロンダンププログラムのローダプログラムのブート情報である該第３の変数を保持する第４の変数と、該スタンドアロンダンプがエラー終了した場合の処理を指定する第５の変数とを含むことを特徴とする、請求項４又は５記載のメモリダンププログラムのブート装置。
【請求項７】
スタンドアロンダンププログラムのローダプログラムのイメージと、スタンドアロンダンププログラムのイメージとは、該オペレーティングシステムのローダプログラムのイメージや該オペレーティングシステムのイメージを格納し該コンピュータシステムに接続されているブート対象装置内の格納場所に依存しない格納場所に格納されていることを特徴とする、請求項４〜６のいずれか１項記載のメモリダンププログラムのブート装置。
【請求項８】
コンピュータシステムのコンピュータにメモリダンププログラムのブートを行わせるプログラムであって、
該コンピュータに、該コンピュータシステムのブートファームウェアが管理する不揮発性変数に、該コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、該複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を定義させる手順と、
該コンピュータに、該ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、該テーブル変数から対応する１つのスタンドアロンダンププログラムのブート情報を特定して、特定したブート情報を示す情報をスタンドアロンダンプ実行時に参照する不揮発性変数に書き込ませる手順と、
該コンピュータに、該スタンドアロンダンプの起動が指定されたときに、該スタンドアロンダンプ実行時に参照する変数の有無と、存在する場合にはその情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する該１つのスタンドアロンダンププログラムをブートさせる手順とを含むことを特徴とする、プログラム。
【請求項９】
該コンピュータに、ブートする該１つのオペレーティングシステムが対応するスタンドアロンダンププログラムを持たない場合には、スタンドアロンダンプ実行時に参照する変数自体を作らせないことを特徴とする、請求項８記載のプログラム。
【請求項１０】
該ブート情報は、ブート対象装置がコンピュータシステムのどこに接続されているかを示すデバイスパス情報とオペレーティングシステムローダプログラムのファイル位置やファイル名を情報として持つ第１の変数と、複数存在する該第１の変数で表されるブート対象装置にブート起動をかける順番を指定する第２の変数と、スタンドアロンダンププログラムのローダプログラムが格納されているブート対象装置のデバイスパス情報と該スタンドアロンダンププログラムのローダプログラムのファイル位置やファイル名を情報として持つ第３の変数と、次回起動する該スタンドアロンダンププログラムのローダプログラムのブート情報である該第３の変数を保持する第４の変数と、該スタンドアロンダンプがエラー終了した場合の処理を指定する第５の変数とを含むことを特徴とする、請求項８又は９記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリダンププログラムのブート方法、機構及びプログラムに係り、特にスタンドアロンダンププログラムによりメモリダンプを採取するコンピュータシステムにおいてスタンドアロンダンププログラムのブート処理を行うメモリダンププログラムのブート方法、機構及びプログラム関する。
【０００２】
コンピュータシステムは、一般的には複数のブート装置をサポートしており、ブート装置のデバイスパス情報を設定することによって、複数のブート可能な装置から実際にブート対象となる装置を選択してブートする。複数のブート装置にインストールされたオペレーティングシステム（OS:Operating System）は、同一の場合もあれば、異なる種類の場合もある。又、同じ種類のOSであっても、OSの版数が異なる場合もある。このようなコンピュータシステムにおいて、あるOSを運用中に障害が発生した場合、スタンドアロンダンププログラムを起動してメモリダンプを採取するが、上記の如き様々なOSのうちどのOSを運用していたかによって、起動するスタンドアロンダンププログラムを選択することができなければいけない。又、スタンドアロンダンププログラムは、OSで障害が発生した時だけ、その障害をトリガに起動できるようにすることが望ましい。
【０００３】
本発明は、このようなコンピュータシステムにおいて、複数のスタンドアロンダンププログラムを登録可能とし、障害発生時に複数あるスタンドアロンダンププログラムの中から最適なものを選択してブートするブート処理に関するものである。
【背景技術】
【０００４】
コンピュータシステムを運用中に何らかのシステム異常が発生して業務を継続することが困難になった場合、直ちにコンピュータシステムを立ち上げ直して業務を継続させる必要がある。このような場合、発生した障害の原因を後で究明できるようにするために、システム異常が発生した時のコンピュータシステムのメモリ内のデータをダンプデータとして保存することが良く行なわれる。このダンプデータ採取処理としては、運用しているOS内にメモリダンプ採取プログラムを組み込んでおき、運用中に障害が発生した場合に制御をメモリダンプ採取プログラムに移してメモリダンプを行なう方法と、システム運用中に障害が発生した場合にコンピュータシステムにメモリデータを保持したままコンピュータシステムをリセットした上で、運用中のOSとは異なるスタンドアロンダンププログラムを起動し、保持されたメモリデータをダンプする方法とがある。これら２つの方法のうち、一方の処理だけを行なうシステムもあれば、両方の処理をサポートするシステムもある。
【０００５】
異常終了時のコンピュータシステムのメモリダンプとしては、特許文献１に提案されている如きものがある。
【特許文献１】特開平８−９５８３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
スタンドアロンダンププログラムによりメモリダンプを採取する際、コンピュータシステムが複数のOSをサポートする場合には以下の如き問題が発生する。
【０００７】
つまり、大規模サーバシステムのようなコンピュータシステムでは、搭載されるメインメモリのサイズが例えば２５６GBを超えることも珍しくない。このようなコンピュータシステムにおいて、障害解析のためにメインメモリを全てダンプすることは現実的ではない。従って、メモリダンプを採取する際には、ダンプ対象領域をカーネルデータ等の障害解析に必要な特定の領域に絞って行なうのが一般的である。このカーネルデータ等の障害解析に必要な特定の領域は、OSの種類が違うと当然異なった領域になるが、仮に同じ種類のOSであっても版数が異なる場合には異なったものとなることがある。このため、一般に、スタンドアロンダンププログラムは、OSの種類により異なったものが要求され、更に、同じ種類のOSの場合でも版数が異なる場合には版数に対応して異なったスタンドアロンダンププログラムが必要となる場合がある。又、場合によっては、スタンドアロンダンププログラムによるメモリダンプをサポートしていないOSもある。そこで、スタンドアロンダンプのブート処理では、存在する複数のスタンドアロンダンププログラムのうち、直前に運用していたOSに対応するスタンドアロンダンププログラムを選択してブートする機能が要求される。
【０００８】
１つのOSのみのブートが許されるコンピュータシステムであれば、１つのスタンドアロンプログラムを起動すれば良いが、複数のOSがブート可能で、ブート時に選択することで異なったOSを運用可能なコンピュータシステムの場合には、障害発生時に運用していたOSに対応したスタンドアロンダンププログラムをブートしないと適切なメモリダンプが行なえないという問題があった。
【０００９】
そこで、本発明は、複数のOSがブート可能で、OSをブートするときに、複数のブート対象装置から自動若しくは手動でブート対象装置を選択することによりOSを切り替えて運用可能なコンピュータシステムにおいて、OSを運用中に障害が発生するとコンピュータシステムをリセットして起動するスタンドアロンダンププログラムを、直前に運用していたOSに最適なメモリダンプ採取をサポートするものに設定可能であるスタンドアロンダンププログラムのブート方法、機構及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記の課題は、コンピュータシステムのブートファームウェアが管理する不揮発性変数に、該コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、該複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を定義するステップと、該ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、該テーブル変数から対応する１つのスタンドアロンダンププログラムのブート情報を特定して、特定したブート情報を示す情報をスタンドアロンダンプ実行時に参照する不揮発性変数に書き込むステップと、該スタンドアロンダンプの起動が指定されたときに、該スタンドアロンダンプ実行時に参照する変数の有無と、存在する場合にはその情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する該１つのスタンドアロンダンププログラムをブートするステップとを含むことを特徴とするメモリダンププログラムのブート方法によって達成できる。
【００１１】
上記の課題は、コンピュータシステムのブートファームウェアが管理する不揮発性変数に、該コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、該複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を格納する不揮発性メモリと、該ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、該テーブル変数から対応する１つのスタンドアロンダンププログラムのブート情報を特定して、特定したブート情報を示す情報をスタンドアロンダンプ実行時に参照する不揮発性変数に書き込む手段と、該スタンドアロンダンプの起動が指定されたときに、該スタンドアロンダンプ実行時に参照する変数の有無と、存在する場合にはその情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する該１つのスタンドアロンダンププログラムをブートする手段とを備えたことを特徴とするメモリダンププログラムのブート装置によっても達成できる。
【００１２】
上記の課題は、コンピュータシステムのコンピュータにメモリダンププログラムのブートを行わせるプログラムであって、該コンピュータに、該コンピュータシステムのブートファームウェアが管理する不揮発性変数に、該コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、該複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を定義させる手順と、該コンピュータに、該ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、該テーブル変数から対応する１つのスタンドアロンダンププログラムのブート情報を特定して、特定したブート情報を示す情報をスタンドアロンダンプ実行時に参照する不揮発性変数に書き込ませる手順と、該コンピュータに、該スタンドアロンダンプの起動が指定されたときに、該スタンドアロンダンプ実行時に参照する変数の有無と、存在する場合にはその情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する該１つのスタンドアロンダンププログラムをブートさせる手順とを含むことを特徴とするプログラムによっても達成できる。
【発明の効果】
【００１３】
本発明によれば、複数のOSがブート可能で、OSをブートするときに、複数のブート対象装置から自動若しくは手動でブート対象装置を選択することによりOSを切り替えて運用可能なコンピュータシステムにおいて、OSを運用中に障害が発生するとコンピュータシステムをリセットして起動するスタンドアロンダンププログラムを、直前に運用していたOSに最適なメモリダンプ採取をサポートするものに設定可能であるスタンドアロンダンププログラムのブート方法、機構及びプログラムを実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明になるメモリダンププログラムのブート方法、機構及びプログラムの各実施例を、図面と共に説明する。プログラムの実施例は、適切なコンピュータ読み取り可能な記憶媒体に格納されていても、外部装置からダウンロードされるものであっても良い。
【実施例】
【００１５】
図１は、本発明の一実施例が適用されたコンピュータシステムを示す図である。図１において、コンピュータシステム１は、本体部１１及びシステム監視機構１２からなる。複数のハードディスク装置（HDD:Hard Disk Drive）２−１，２−２，２−３，…と、CDROM／DVDROM装置３がコンピュータシステム１に接続されている。本体部１１は、ROMファームウェア２１、ROM（Read Only Memory）又はFMEM（Flash Memory）２２、不揮発性メモリ（NVRAM:Non-Volatile RAM)２３及びメインメモリ２４を有する。又、メインメモリ２４は、ブートファームウェア２４１、オペレーティングシステム（OS）ローダプログラム（以下、単にOSローダと言う）２４２、OS２４３、スタンドアロンダンプ（SADUMP:Stand Alone Dump）プログラムインストーラ（以下、単にSADUMPインストーラと言う）２４４及びスタンドアロンダンプ（SADUMP:Stand Alone Dump）プログラムアンインストーラ（以下、単にSADUMPアンインストーラと言う）２４５を有する。尚、SADUMPアンインストーラ２４５は、SADUMPインストーラ２４４に含まれていても良い。
【００１６】
本実施例では、ROMファームウェア２１は、ROM(Read Only Memory)若しくはFMEM(Flash Memory)に書き込まれており、コンピュータシステム１の電源が投入されると、このROMファームウェア２１が起動され、コンピュータシステム１内のハードウェアの診断と初期化処理が実行される。その後、コンピュータシステム１内のROM又はFMEM２２に圧縮して保存されているブートファームウェアをメインメモリ２４上に展開し、制御をブートファームウェア２４１に移す。ブートファームウェア２４１は、コンピュータシステム１がサポートするブート対象装置を制御するためのドライバプログラム（以下、単にドライバと言う）を持っており、予め設定されたブート情報に従ってコンピュータシステム１に接続されているブート対象装置のうちから、実際にブートする対象装置を選択しブート処理を実行する。通常、ブートファームウェア２４１は、対象とするOS２４３をブートするためのOSローダ２４２のブートを行なう。ブートファームウェア２４１は、OS２４３のファイルシステムを解析できる必要はない。OS２４３に対応したOSローダ２４２がOS２４３のファイルシステムを解析できるので、ブートファームウェア２４１はOSローダ２４２がブート対象装置のどこにあるかが分かり、このOSローダ２４２がブートできれば、以降のOS２４３のブートはこのOSローダ２４２が実行するようになっている。
【００１７】
図１に示すコンピュータシステム１では、NVRAM２３にブート情報が保存される。NVRAM２３に保存されたブート情報に従って、コンピュータシステム１に接続された複数のブート対象装置のうちからコンピュータシステム１の起動時に自動的にブートするべきブート対象装置を決定する。NVRAM２３に保存されるブート情報には、ブート対象装置がコンピュータシステム１のどこに接続されているかを示すデバイスパス情報とOSローダ２４２のファイル位置やファイル名を情報として持つBootXXXX変数 (XXXXは0000からFFFFまでの１６進数) と、複数存在するBootXXXX変数で表されるブート対象装置にどのような順番でブート起動をかけるかを指定するBootOrder変数がある。ブートファームウェア２４１に制御が渡ると、ブートファームウェア２４１はブート用の各種ドライバを初期化し、接続されたディスク装置２−１，２−２，２−３，…のプローブ処理を行なう。その後、NVRAM変数のBootOrder変数からBootXXXX変数のXXXXの部分の値を特定し、そのBootXXXX変数が指定するブート対象装置とOSローダ２４２をブートする。
【００１８】
次に、本実施例の特徴的な部分について説明する。本実施例では、コンピュータシステム１内のNVRAM２３に保存するブート情報（又は、NVRAM変数）として、上記BootXXXX変数とBootOrder変数に加えて、SADUMPプログラム（以下、単にSADUMPと言う）のローダプログラムであるSADUMPローダをブートするために以下の4つの変数V１）〜V４）が追加されている。
【００１９】
V１）FjSdBootYYYY（YYYYは0000からFFFFまでの１６進数）：SADUMPローダが格納されているブート対象装置のデバイスパス情報とSADUMPローダのファイル位置やファイル名を情報として持つ変数である。
【００２０】
V２）FjSdBtTbl：OS２４３とSADUMPの対応関係を示す情報を格納したテーブル変数である。
【００２１】
V３）FjSdBootNext：次回起動するSADUMPローダのブート情報であるFjSdBootYYYYのYYYYを保持する変数である。OS２４３を運用しているときに障害が発生して、パニックしたり、ハングする等して、コンピュータシステム１にリセットをかけてSADUMPを起動するときには、本変数に従ったFjSdBootYYYYをSADUMPローダのブート情報として使用する。
【００２２】
V４）FjSdBtTerm：SADUMPがエラー終了した場合の処理を指定する変数である。この変数FjSdBtTermが「０」であるとエラー通知をしてOS２４３を再起動し、「０」以外であるとCDROM／DVDROM装置３をブート対象としてCDROM／DVDROMに記録されたSADUMPをブートする。
【００２３】
又、コンピュータシステム１に接続されたハードディスク装置２−１，２−２，２−３，…には、OSローダイメージとOSイメージに加えて、スタンドアロンダンプのために、SADUMPローダイメージとSADUMPイメージ が追加されているものがある。ここで、OSローダイメージとは、OSローダ２４２の本体のイメージであり、OSイメージとは、OS２４３の本体のイメージである。又、SADUMPイメージとは、SADUMPの本体のイメージであり、SADUMPローダによりブートされてメモリダンプを実行するプログラムである。SADUMPローダイメージとは、SADUMPローダの本体のイメージである。OS２４３の中にはSADUMPをサポートしないものもあるため、対応するSADUMPローダイメージとSADUMPイメージを持たないものもある。尚、SADUMPローダイメージとSADUMPローダの格納場所は、OSローダイメージやOSイメージを格納したディスク装置２−１，２−２，２−３，…とは無関係な場所であっても良い。又、図１では、SADUMPローダイメージとSADUMPイメージがOS２４３とは独立してCDROM／DVDROMにも格納されている場合を示す。又、説明の便宜上、SADUMPローダ及びSADUMPイメージがメインメモリ２４上にある状態の図示は省略する。
【００２４】
図２は、コンピュータシステム１におけるROMファームウェア２１及びブートファームウェア２４１の処理を説明するフローチャートである。
【００２５】
OS２４３を運用中に障害が発生して、コンピュータシステム１がパニックしたりハングした場合には、システム監視機構１２にスタンドアロンダンプの指示を行ないリセット要求を発行する。システム監視機構１２は、コンピュータシステム１の電源制御やファンの監視やリセット処理等を行なう本体部１１とは独立したプロセッサで動作するハードウェアである。システム監視機構１２は、スタンドアロンダンプ要求を受けると、自身の持つシステム制御変数の中のSADUMP指定フラグをONに設定して本体部１１にリセットをかける。本体部１１にリセットがかかると、先ず最初に図２に示すステップS1でROMファームウェア２１が起動されて、ステップS2でハードウェアの診断（メモリ診断を含む）と初期化を実行するが、ここでシステム監視機構１２からSADUMP指定フラグを取得してステップS3でSADUMPフラグがONであるか否かを判定する。SADUMPフラグがONでありステップS3の判定結果がYESであれば、ステップS4はメモリ診断を行なわずに処理がステップS6へ進み、メモリデータを保存したままブートファームウェア２４１に制御が移される。他方、SADUMPフラグがOFFでありステップS3の判定結果がNOであると、ステップS5はメモリ診断を行ってから処理がステップS6へ進む。ブートファームウェア２４１は、ステップS7でブート処理用の各種ドライバの初期化と接続ディスク装置２−１，２−２，２−３，…のプローブ処理を行なった後、ステップS8でSADUMP指定フラグがONであるか否かをチェックする。このとき、SADUMP指定フラグの値はシステム監視機構１２から取得しても、ROMファームウェア２１から取得しても良い。ここで、SADUMP指定フラグがONでありステップS8の判定結果がYESである場合には、図３と共に後述するSADUMPローダのブート処理に制御が移される。SADUMP指定フラグがOFFでありステップS8の判定結果がNOである場合には、ステップS9以降のOSローダ２４２のブート処理に制御が移される。
【００２６】
次に、OSローダ２４２のブート処理を説明する。OSローダ２４２のブート処理では、最初に、ステップS9でFjSdBootNext変数の有無をチェックし、存在する場合には削除する。ステップS10は、システム監視機構１２からリモートブート指定があるか否かをチェックし、あれば指定された処理を実行する。このシステム監視機構１２からのリモートブート指定は、本発明の要旨と直接関係がないため、本明細書ではその詳細な説明は省略する。
【００２７】
次に、ステップS11は、NVRAM２３に複数存在しているBootXXXX変数から、実際にブート対象とする変数を決定する。このステップS11での決定は、通常はBootOrder変数に設定された順番に従って決定されるが、システム監視機構１２からリモートブートが指定された場合にはBootOrder変数によらずに決定されても良い。いずれにしろ、ブートファームウェア２４１は、決定したブート対象のBootXXXX変数のXXXXの値をメモリ変数であるBootCurrent変数に設定する。このBootCurrent変数は、ブートファームウェア２４１の管理する変数であるが、NVRAM変数ではないため、コンピュータシステム１の電源が落ちると失われてしまう。OS２４３が起動した後でこのBootCurrent変数を調べることにより、どのブート装置からブートしたかをOS２４３側で判断することができる。
【００２８】
次に、ブートファームウェア２４１は、ステップS12で、選択されたブート対象装置がCDROM／DVDROM装置４でもなく、且つ、PXE (ネットワークブート)でもないか否かをチェックする。選択されたブート対象装置がCDROM／DVDROM装置４又はPXEでありステップS12の判定結果がNOである場合には、ステップS17で直ちに選択されたBootXXXX変数に従ってOSローダ２４２をロードしてブートし、ステップS18でOS２４２を起動して処理は終了する。選択されたブート対象装置がCDROM／DVDROM装置４でもPXEでもなくステップS12の判定結果がYESの場合には、ステップS13でNVRAM変数にFjSdBtTblテーブル変数が存在しているか否かをチェックする。その結果、FjSdBtTblテーブル変数が存在してステップS13の判定結果がNOである場合には、ステップS17で直ちに選択されたBootXXXX変数に従ってOSローダ２４２をロードしてブートするが、存在して判定結果がYESである場合には、ステップS14で、BootCurrent変数に設定された、選択されたBootXXXX変数のXXXXの番号をキーとしてFjSdBtTblテーブル変数を検索する。このステップS14の検索処理については後述する。ステップS15は、このステップS14の検索処理の結果、キーに対応したエントリが存在するか否かを判定する。ステップS14の判定結果がNOである場合には、ステップS17で直ちに選択されたBootXXXX変数に従ってOSローダ２４２をロードしてブートするが、存在してステップS15の判定結果がYESである場合には、ステップS16で対応するエントリからFjSdBootYYYY変数のYYYYの値を取り出し、FjSdBootNext変数を作成して、取り出したYYYYをFjSdBootNext変数に設定した後、処理はステップS17へ進んで選択されたBootXXXX変数に従ってOSローダ２４２をロードしてブートする。
【００２９】
次に、SADUMPローダのブート処理を、図３と共に説明する。図３は、SADUMPローダのブート処理を説明するフローチャートである。
【００３０】
図３において、ステップS21でSADUMPローダのブート処理が開始されると、最初にステップS22でFjSdBootNext変数が存在するか否かをチェックする。FjSdBootNext変数が存在せずステップS22の判定結果がNOである場合には、ステップS23はシステム監視機構１２のSADUMP指定フラグをOFFに設定してエラー通知を行なった後、コンピュータシステム１をリセットし、処理は終了する。FjSdBootNext変数が存在しステップS22の判定結果がYESである場合には、ステップS24でFjSdBootNext変数が指定するFjSdBootYYYY変数のデータを解析し、FjSdBootYYYY変数のデバイスパス情報が正しいか否かを判定する。即ち、ステップS24は、ブート情報に設定されたデバイス情報及びSADUMPローダ情報をチェックし、コンピュータシステム１に接続されているものと一致するか否かを判定する。ステップS24の判定結果がNOであると、ステップS25は、このFjSdBootNext変数を削除し、システム監視機構１２のSADUMP指定フラグをOFFにクリアする。その後、ステップS26で、エラー処理のためにNVRAM変数であるFjSdBtTerm変数をチェックする。具体的には、ステップS26は、FjSdBtTerm変数の値が「０」であるか否かを判定する。ステップS26の判定結果がYESであると、ステップS27はエラー通知を行った後、コンピュータシステム１をリセットし、処理は終了する。他方、FjSdBtTerm変数の値が「０」以外でステップS26の判定結果がNOの場合には、ステップS28は、CDROM／DVDROM装置３をブート対象とし、ステップS35でこのブート対象装置に対してブート処理を行ない、処理は終了する。
【００３１】
FjSdBootYYYY変数のデータを解析した結果、コンピュータシステム１に接続されたものと一致してステップS24の判定結果がYESであると、ステップS29は、FjSdBootNext変数が指定するFjSdBootYYYY変数に設定されているSADUMPローダをブート対象とする。このとき、実際にブート処理を行う前に、ステップS30でFjSdBtTerm変数をチェックする。ステップS30は、FjSdBtTerm変数の値が「０」か否かを判定する。ステップS30の判定結果がYESの場合には、その後エラーが発生してもCDROM／DVDROM装置３からのリトライに移行しないので、ステップS31でFjSdBootNext変数を削除してSADUMP指定フラグをOFFにクリアした後、ステップS35でブート対象装置に対してブート処理を行い、処理は終了する。
【００３２】
FjSdBtTerm変数が「０」以外でステップS３０の判定結果がNOの場合には、CDROM／DVDROM装置３によるリトライを実行する可能性があるので、先ず、ステップS３２で,現在既にブート対象装置がCDROM／DVDROM装置３であるか否かのチェックをFjSdBootYYYYのデバイス情報に基づいて行なう。ブート対象装置がCDROM／DVDROM装置３でありステップS32の判定結果がYESである場合には、エラー終了しても更にCDROM／DVDROM装置３からリトライすることはないので、ステップS33でFjSdBootNext変数を削除し、システム監視機構１２のSADUMP指定フラグをOFFにクリアした後、ステップS35でブート対象装置に対してブート処理を行い、処理は終了する。他方、ブート対象装置がCDROM／DVDROM装置３ではなくステップS32の判定結果がNOである場合には、エラー終了した場合に、次にCDROM／DVDROM装置３でリトライが可能なようにステップS34でFjSdBootNext変数にCDROM／DVDROM装置３の情報を設定した後、ステップS35でブート対象装置に対してブート処理を行い、処理は終了する。
【００３３】
次に、FjSdBtTblテーブル変数の仕様について説明する。FjSdBtTblテーブル変数は、OSローダ２４２のブート対象装置を指定するブートオプション変数であるBootXXXXのXXXXの部分の値を持つ２バイトのOsBootNum変数と、SADUMPローダのブート対象装置を指定するブートオプション変数であるFjSdBootYYYYのYYYYの部分の値を持つ２バイトのSdBootNum変数をメンバとする構造体を要素とする配列から構成されている。
typedef  struct  _FJSV_SD_BT_TBL_ENTRY {
UINT16    OsBootNum ;        // BootXXXXのXXXXに対応した番号
UNIT16    SdBootNum ;        // FjSdBootYYYYのYYYYに対応した番号
} FJSV_SD_BT_TBL_ENTRY ;
本実施例では、説明の便宜上、FjSdBootテーブル変数には、予めOSローダ２４２と対応するSADUMPローダのエントリデータが設定されているものとする。このFjSdBtTblテーブル変数の設定は、SADUMPインストーラ２４４により、以下の規則で設定可能である。
【００３４】
（１）FjSdBtTblテーブル変数は、コンピュータシステム１にインストールされたSADUMPがサポートするOS２４３のブートオプションBootXXXXに対応したエントリのみで構成されるものとする。ここで、SADUMPがサポートするOS２４３とは、そのOS２４３を運用中に障害が発生した場合に、SADUMPを起動することにより障害調査用のメモリダンプが実行できるOS２４３のことである。複数のOS２４３がコンピュータシステム１でブート可能である場合等で、インストールされたSADUMPが一部のOS２４３しかサポートしていない場合には、サポートしているOS２４３に対応したものだけでエントリを構成する。又、仮にSADUMPがOS２４３をサポートすることができても、FjSdBtTblテーブル変数のエントリに加えられていなければ、そのOS２４３の運用時に障害が発生してもSADUMPは起動されない。
【００３５】
（２）OsBootNum変数に設定される番号は、FjSdBtTblテーブル変数のエントリの番号が小さいほど、小さい値になるように設定される。
【００３６】
（３）SADUMPは１つで複数のOS２４３をサポートできる。従って、SdBootNum変数は、異なったエントリに同じ値が入ることがあり得る。
【００３７】
（４）コンピュータシステム１には、複数のSADUMPをインストール可能である。ただし、インストールされた複数のOS２４３の夫々をどのSADUMPに対応させるかは、一意に決める必要がある。
【００３８】
（５）FjSdBtTblテーブル変数は、SADUMPのインストール時にSADUMPインストーラ２４４によって、コンピュータシステム１でブート可能なOS２４３との関係を対応付けした上で作成される。又、SADUMPのアンインストール時に、SADUMPアンインストーラ２４５によりアンインストールするSADUMPのローダ番号を持つエントリが全て削除される。更に、SADUMPインストール後にOS２４３を新規にインストールしたり、アンインストールした場合に、SADUMPインストーラ２４４を起動することによって、新規のOS２４３をSADUMPと関係付けして新たにエントリに加えたり、アンインストールしたOS２４３のブートオプション番号を持つエントリを削除したりすることにより、メンテナンスが行われる。
【００３９】
以下に、FjSdBtTblテーブル変数を利用して、OSローダ２４２のブート対象装置に対応したSADUMPローダのブート対象装置の取得処理を説明する。
【００４０】
OS２４３のブート時に、複数存在するブートオプションの中からブート対象のブートオプションであるBootXXXXが選択されるが、選択したOS２４３でコンピュータシステム１を運用中に障害が発生してSADUMPを起動したときに、コンピュータシステム１にインストールされたどのSADUMPを起動するかを予め設定するためにFjSdBootNext変数を作成し、起動するSADUMPのブートオプションであるFjSdBootYYYYのYYYYの部分の番号を設定しておく。ここで、選択したOS２４３のブートオプションであるBootXXXXがどのFjSdBootYYYYに対応するかを調べるためにFjSdBtTblテーブル変数を使用する。即ち、選択したブート対象のBootXXXXのXXXXの値とFjSdBtTblテーブル変数のOsBootNum変数の値をエントリの小さい方から大きい方へ順番に比較して行く。ここで、存在するエントリを全て比較した結果一致するものがない場合には、FjSdBootNext変数を作成せずにBootXXXXに従ったOS２４３をブートする。この場合、起動するOS２４３は対応するSADUMPを持たないため、SADUMPは実行されない。一致するエントリが存在する場合には、FjSdBootNext変数を作成し、一致したエントリのSdBootNum変数に保存された値をFjSdBootNext変数の値とする。
【００４１】
図４は、FjSdBtTblテーブル変数を利用してBootXXXX変数に対応するFjSdBootYYYY変数を決定する処理を説明する図である。図４は、Boot0003変数にFjSdBoot0002変数が対応している場合を示す。
【００４２】
通常のOSローダ２４２のブート処理では、BootOrder, BootNext等のブート変数（又は、NVRAM変数）からブート対象とするBootXXXX変数を決定する。そして、決定したBootXXXX変数のXXXXの値をBootCurrent (メモリ変数)に設定するが、更に、このXXXXの値をキーにしてFjSdTblテーブル変数を検索し、キーに対応したエントリが存在する場合にはNVRAM変数であるFjSdNextを作成し、キーに対応したエントリからFjSdBootYYYY変数のYYYYの値を取り出しFjSdBootNext変数に設定する。ここで、キーに対応したエントリが存在しない場合には、NVRAM変数であるFjSdNextを削除する。その後、Boot0003変数に設定されたブート対象装置からOSローダ２４２をブートする。
【００４３】
次にｍFjSdBootYYYY変数の仕様について説明する。 FjSdBootYYYY変数は、例えば以下のような仕様となっている。
typedef  struct   _FJSV_SD_BOOT  {
UINT32     Attributes ;
UINT16      FilePathListLength ;
CHAR16     Description[] ;
DEVICE_PATH          FilePathList[] ;
UINT8                OptionalData[] ;
} FJ_SD_BOOT ;
ここで、Attributes、FilePathListLength、FilePathList及びOptionalDataなる変数は、次の通り定義される。
【００４４】
１）Attributes: SADUMPをロード時の追加処理を指定する情報である。
【００４５】
２）FilePathListLength:FilePathListのバイトサイズを示す情報である。
【００４６】
３）Description:SADUMPのブートオプションの説明を入れる情報であり、NULL文字で終了するユニコード文字列である。
【００４７】
４）FilePathList:対象とするSADUMPを起動するためのSADUMPローダの場所を特定するためのデバイスパス情報である。
【００４８】
５）OptionalData:SADUMPローダに受け渡すデータである。
【００４９】
図５は、SADUMPインストーラ２４４がNVRAM変数に対して実施する処理を説明するフローチャートである。
【００５０】
図５において、ステップS41で、SADUMPのインストール時に実施するSADUMPのブートオプション設定処理が開始されると、ステップS42は、SADUMPのブートオプション設定を開始し、ステップS43は、FjSdBootZZZZ変数がNVRAM23内に存在するか否かを判定する。ステップS43の判定結果がYESであると、ステップS44は、FjSdBootZZZZ変数のZZZZの値を更新した新規のFjSdBootYYYY変数を作成し、インストールするSADUMPのSADUMPローダのデバイスパス情報を設定する。他方、ステップS43の判定結果がNOであると、ステップS45は、FjSdBoot0000変数を作成し、インストールするSADUMPのSADUMPローダのデバイスパス情報を設定する。
【００５１】
ステップS44又はS45の後、ステップS46は、FjSdBtTblテーブル変数がNVRAM２３内に存在するか否かを判定する。ステップS46の判定結果がYESであると、ステップS47は、FjSdBtTblテーブル変数をNVRAM２３からリードする。ステップS46の判定結果がNO、或いは、ステップS47の後、ステップS48は、新規に作成したFjSdBootYYYYのYYYYの値を対応するOSローダ２４２のブートオプションであるBootXXX変数のXXXXと対にしたデータを作成し、FjSdBtTblテーブル変数がNVRAM２３内に存在している場合には既存のデータに追加して新規のFjSdBtTblテーブル変数とする。又、ステップS49は、SADUMPのブートオプション設定を終了する。
【００５２】
図６は、SADUMPアンインストーラ２４５がNVRAM変数に対して実施する処理を説明するフローチャートである。
【００５３】
図６において、ステップS51で、SADUMPのアンインストール時に実施するSADUMPのブートオプション削除処理が開始されると、ステップS52は、FjSdBtTblテーブル変数をNVRAM２３からリードし、アンインストールするSADUMPのブートオプションの番号（FjSdBootYYYYのYYYY）の値を有するエントリを削除したデータを作成し、新規のFjSdBtTblテーブル変数とすると共に、エントリが全てなくなった場合にはFjSdBtTblテーブル変数を削除したまま作成しない。ステップS53は、アンインストールするSADUMPのブートオプションであるFjSdBootYYYY変数を削除する。ステップS54は、SADUMPのブートオプションの削除を終了する。
【産業上の利用可能性】
【００５４】
本発明は、複数のOSがブート可能で、OSをブートするときに、複数のブート対象装置から自動若しくは手動でブート対象装置を選択することによりOSを切り替えて運用可能なコンピュータシステムに適用可能であり、OSを運用中に障害が発生するとコンピュータシステムをリセットして起動するスタンドアロンダンププログラムを、直前に運用していたOSに最適なメモリダンプ採取をサポートするものに設定可能とする。
【００５５】
尚、本発明は、以下に付記する発明をも包含するものである。
（付記１）  コンピュータシステムのブートファームウェアが管理する不揮発性変数に、該コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、該複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を定義するステップと、
該ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、該テーブル変数から対応する１つのスタンドアロンダンププログラムのブート情報を特定して、特定したブート情報を示す情報をスタンドアロンダンプ実行時に参照する不揮発性変数に書き込むステップと、
該スタンドアロンダンプの起動が指定されたときに、該スタンドアロンダンプ実行時に参照する変数の有無と、存在する場合にはその情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する該１つのスタンドアロンダンププログラムをブートするステップとを含むことを特徴とする、メモリダンププログラムのブート方法。
（付記２）  ブートする該１つのオペレーティングシステムが対応するスタンドアロンダンププログラムを持たない場合には、スタンドアロンダンプ実行時に参照する変数自体を作らないことを特徴とする、付記１記載のメモリダンププログラムのブート方法。
（付記３）  該ブート情報は、ブート対象装置がコンピュータシステムのどこに接続されているかを示すデバイスパス情報とオペレーティングシステムローダプログラムのファイル位置やファイル名を情報として持つ第１の変数と、複数存在する該第１の変数で表されるブート対象装置にブート起動をかける順番を指定する第２の変数と、スタンドアロンダンププログラムのローダプログラムが格納されているブート対象装置のデバイスパス情報と該スタンドアロンダンププログラムのローダプログラムのファイル位置やファイル名を情報として持つ第３の変数と、次回起動する該スタンドアロンダンププログラムのローダプログラムのブート情報である該第３の変数を保持する第４の変数と、該スタンドアロンダンプがエラー終了した場合の処理を指定する第５の変数とを含むことを特徴とする、付記１又は２記載のメモリダンププログラムのブート方法。
（付記４）  該ブート対象装置は、ハードディスク装置及び／又はCDROM／DVDROM装置であり、該第５の変数は、エラー通知を行って該１つの任意のオペレーティングシステムを再起動するか、或いは、ブート対象装置である該CDROM／DVDROM装置に格納されているスタンドアロンダンププログラムをブートすることを示すことを特徴とする、付記３記載のメモリダンププログラムのブート方法。
（付記５）  スタンドアロンダンププログラムのローダプログラムのイメージと、スタンドアロンダンププログラムのイメージとは、該オペレーティングシステムのローダプログラムのイメージや該オペレーティングシステムのイメージを格納し該コンピュータシステムに接続されているブート対象装置内の格納場所に依存しない格納場所に格納されていることを特徴とする、付記１〜４のいずれか１項記載のメモリダンププログラムのブート方法。
（付記６）  該コンピュータシステムの本体部とは独立したハードウェアで動作するシステム監視機構により、メモリ診断を行うか否かを示すフラグを管理するステップを更に含むことを特徴とする、付記１〜５のいずれか１項記載のメモリダンププログラムのブート方法。
（付記７）  コンピュータシステムのブートファームウェアが管理する不揮発性変数に、該コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、該複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を格納する不揮発性メモリと、
該ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、該テーブル変数から対応する１つのスタンドアロンダンププログラムのブート情報を特定して、特定したブート情報を示す情報をスタンドアロンダンプ実行時に参照する不揮発性変数に書き込む手段と、
該スタンドアロンダンプの起動が指定されたときに、該スタンドアロンダンプ実行時に参照する変数の有無と、存在する場合にはその情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する該１つのスタンドアロンダンププログラムをブートする手段とを備えたことを特徴とする、メモリダンププログラムのブート装置。
（付記８）  ブートする該１つのオペレーティングシステムが対応するスタンドアロンダンププログラムを持たない場合には、スタンドアロンダンプ実行時に参照する変数自体を作らないことを特徴とする、付記７記載のメモリダンププログラムのブート装置。
（付記９）  該ブート情報は、ブート対象装置がコンピュータシステムのどこに接続されているかを示すデバイスパス情報とオペレーティングシステムローダプログラムのファイル位置やファイル名を情報として持つ第１の変数と、複数存在する該第１の変数で表されるブート対象装置にブート起動をかける順番を指定する第２の変数と、スタンドアロンダンププログラムのローダプログラムが格納されているブート対象装置のデバイスパス情報と該スタンドアロンダンププログラムのローダプログラムのファイル位置やファイル名を情報として持つ第３の変数と、次回起動する該スタンドアロンダンププログラムのローダプログラムのブート情報である該第３の変数を保持する第４の変数と、該スタンドアロンダンプがエラー終了した場合の処理を指定する第５の変数とを含むことを特徴とする、付記７又は８記載のメモリダンププログラムのブート装置。
（付記１０）  該ブート対象装置は、ハードディスク装置及び／又はCDROM／DVDROM装置からなり、該第５の変数は、エラー通知を行って該１つの任意のオペレーティングシステムを再起動するか、或いは、ブート対象装置である該CDROM／DVDROM装置に格納されているスタンドアロンダンププログラムをブートすることを示すことを特徴とする、付記９記載のメモリダンププログラムのブート装置。
（付記１１）  スタンドアロンダンププログラムのローダプログラムのイメージと、スタンドアロンダンププログラムのイメージとは、該オペレーティングシステムのローダプログラムのイメージや該オペレーティングシステムのイメージを格納し該コンピュータシステムに接続されているブート対象装置内の格納場所に依存しない格納場所に格納されていることを特徴とする、付記７〜１０のいずれか１項記載のメモリダンププログラムのブート装置。
（付記１２）  該コンピュータシステムの本体部とは独立したハードウェアで動作すると共に、メモリ診断を行うか否かを示すフラグを管理するシステム監視機構を更に備えたことを特徴とする、付記７〜１１のいずれか１項記載のメモリダンププログラムのブート装置。
（付記１３）  コンピュータシステムのコンピュータにメモリダンププログラムのブートを行わせるプログラムであって、
該コンピュータに、該コンピュータシステムのブートファームウェアが管理する不揮発性変数に、該コンピュータシステムにインストールされている複数のスタンドアロンダンププログラムのブート情報と、該複数のスタンドアロンダンププログラムと複数のオペレーティングシステムの対応関係を示すテーブル変数を定義させる手順と、
該コンピュータに、該ブートファームウェアが１つの任意のオペレーティングシステムをブートするときに、該テーブル変数から対応する１つのスタンドアロンダンププログラムのブート情報を特定して、特定したブート情報を示す情報をスタンドアロンダンプ実行時に参照する不揮発性変数に書き込ませる手順と、
該コンピュータに、該スタンドアロンダンプの起動が指定されたときに、該スタンドアロンダンプ実行時に参照する変数の有無と、存在する場合にはその情報を参照することにより、複数のスタンドアロンダンププログラムのうち対応する該１つのスタンドアロンダンププログラムをブートさせる手順とを含むことを特徴とする、プログラム。
（付記１４）  該コンピュータに、ブートする該１つのオペレーティングシステムが対応するスタンドアロンダンププログラムを持たない場合には、スタンドアロンダンプ実行時に参照する変数自体を作らせないことを特徴とする、付記１３記載のプログラム。
（付記１５）  該ブート情報は、ブート対象装置がコンピュータシステムのどこに接続されているかを示すデバイスパス情報とオペレーティングシステムローダプログラムのファイル位置やファイル名を情報として持つ第１の変数と、複数存在する該第１の変数で表されるブート対象装置にブート起動をかける順番を指定する第２の変数と、スタンドアロンダンププログラムのローダプログラムが格納されているブート対象装置のデバイスパス情報と該スタンドアロンダンププログラムのローダプログラムのファイル位置やファイル名を情報として持つ第３の変数と、次回起動する該スタンドアロンダンププログラムのローダプログラムのブート情報である該第３の変数を保持する第４の変数と、該スタンドアロンダンプがエラー終了した場合の処理を指定する第５の変数とを含むことを特徴とする、付記１３又は１４記載のプログラム。
（付記１６）  該ブート対象装置は、ハードディスク装置及び／又はCDROM／DVDROM装置であり、該第５の変数は、エラー通知を行って該１つの任意のオペレーティングシステムを再起動するか、或いは、ブート対象装置である該CDROM／DVDROM装置に格納されているスタンドアロンダンププログラムをブートすることを示すことを特徴とする、付記１５記載のプログラム。
（付記１７）  スタンドアロンダンププログラムのローダプログラムのイメージと、スタンドアロンダンププログラムのイメージとは、該オペレーティングシステムのローダプログラムのイメージや該オペレーティングシステムのイメージを格納し該コンピュータシステムに接続されているブート対象装置内の格納場所に依存しない格納場所に格納されていることを特徴とする、付記１３〜１６のいずれか１項記載のプログラム。
（付記１８）  該コンピュータに、該コンピュータシステムの本体部とは独立したハードウェアで動作するシステム監視機構により、メモリ診断を行うか否かを示すフラグを管理させる手順を更に含むことを特徴とする、付記１３〜１７のいずれか１項記載のプログラム。
【００５６】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、種々の変形及び改良が可能であることは、言うまでもない。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施例が適用されたコンピュータシステムを示す図である。
【図２】コンピュータシステムにおけるROMファームウェア及びブートファームウェアの処理を説明するフローチャートである。
【図３】SADUMPローダのブート処理を説明するフローチャートである。
【図４】FjSdBtTblテーブル変数を利用してBootXXXXに対応するFjSdBootYYYYを決定する処理を説明する図である。
【図５】SADUMPインストーラがNVRAM変数に対して実施する処理を説明するフローチャートである。
【図６】SADUMPアンインストーラがNVRAM変数に対して実施する処理を説明するフローチャートである。
【符号の説明】
【００５８】
１      コンピュータシステム
２−１〜２−３      ハードディスク装置
３      CDROM／DVDROM装置
１１      本体部
１２      システム監視機構
２１      ROMファームウェア
２２      ROM（FMEM）
２３      NVRAM
２４      メインメモリ
２４１      ブートファームウェア
２４２      OSローダ
２４３      OS
２４４      SADUMPインストーラ
２４５      SADUMPアンインストーラ
【図１】
2006209320.tif 000003
【図２】
2006209320.tif 000004
【図３】
2006209320.tif 000005
【図４】
2006209320.tif 000006
【図５】
2006209320.tif 000007
【図６】
2006209320.tif 000008