(57)【要約】【課題】ＯＳに起動に伴って変更された設定情報の内容を変更前の状態に戻すことを可能とするブートローダプログラム、情報処理装置及びブート方法を提供する。【解決手段】オペレーティングシステムのブート指示を受信したときに、オペレーティングシステムのブートに用いられる第１設定ファイルが記憶された記憶部を参照し、第１設定ファイルによってオペレーティングシステムのブートを行い、第１設定ファイルと異なる第２設定ファイルの退避が行われている場合、第２設定ファイルを第１設定ファイルに置き換える。【選択図】図９
2018063611.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムのブート指示を受信したときに、オペレーティングシステムのブートに用いられる第１設定ファイルが記憶された記憶部を参照し、前記第１設定ファイルによってオペレーティングシステムのブートを行い、
前記第１設定ファイルと異なる第２設定ファイルの退避が行われている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える、
処理をコンピュータに実行させることを特徴とするブートローダプログラム。
【請求項２】
請求項１において、
前記第１設定ファイルを置き換える処理では、前記第２設定ファイルが前記記憶部に記憶されている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とするブートローダプログラム。
【請求項３】
請求項２において、
前記ブートを行う処理では、前記記憶部に記憶されたファイルのうち、ファイルの識別情報が第１識別情報であるファイルを前記第１設定ファイルとして参照し、
前記第１設定ファイルを置き換える処理では、ファイルの識別情報が前記第１識別情報と異なる第２識別情報であるファイルが前記記憶部に記憶されている場合、前記第２設定ファイルが前記記憶部に記憶されていると判定し、前記第２設定ファイルの識別情報を前記第１識別情報に変更することにより、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とするブートローダプログラム。
【請求項４】
請求項３において、さらに、
前記ブートを行う処理の前に、前記記憶部に記憶されたファイルのうち、ファイルの識別情報が前記第１識別情報であるファイルの識別情報を前記第２識別情報に変更することにより、前記第２設定ファイルの退避を行い、
識別情報を前記第１識別情報にした前記第１設定ファイルを前記記憶部に記憶する、
処理をコンピュータに実行させることを特徴とするブートローダプログラム。
【請求項５】
請求項１において、
前記ブートを行う処理では、
前記第１設定ファイルをメモリに展開し、
前記メモリに展開した前記第１設定ファイルによってオペレーティングシステムのブートを行い、
前記第１設定ファイルを置き換える処理は、前記メモリに展開する処理の後であって、前記メモリに展開した前記第１設定ファイルによってブートを行う処理の前に行われる、
ことを特徴とするブートローダプログラム。
【請求項６】
オペレーティングシステムのブート指示を受信したときに、オペレーティングシステムのブートに用いられる第１設定ファイルが記憶された記憶部を参照し、前記第１設定ファイルによってオペレーティングシステムのブートを行うブート実行部と、
前記第１設定ファイルと異なる第２設定ファイルの退避が行われている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える情報管理部と、を有する、
ことを特徴とする情報処理装置。
【請求項７】
オペレーティングシステムのブート指示を受信したときに、オペレーティングシステムのブートに用いられる第１設定ファイルが記憶された記憶部を参照し、前記第１設定ファイルによってオペレーティングシステムのブートを行い、
前記第１設定ファイルと異なる第２設定ファイルの退避が行われている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とするブート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブートローダプログラム、情報処理装置及びブート方法に関する。
【背景技術】
【０００２】
近年、物理マシンの性能向上に伴い、複数の仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を１つの物理マシンに集約する仮想化技術の研究が進められている。この仮想化技術は、例えば、仮想化ソフトウエア（以下、ハイパーバイザとも呼ぶ）が物理マシンの物理リソースを複数の仮想マシンに割当てることにより、各仮想マシンにおいて動作するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションによるサービスの提供を可能にする。
【０００３】
上記のような仮想マシンの起動が行われる場合、物理マシンに予めインストールされたブートローダ（以下、通常のブートローダとも呼ぶ）は、物理マシンに予めインストールされている仮想ＯＳ（以下、通常ＯＳとも呼ぶ）の起動（ブート）を行う。具体的に、通常のブートローダは、この場合、物理マシンで動作するホストＯＳ及びハイパーバイザ上において通常ＯＳ（ゲストＯＳ）の起動を行う。
【０００４】
一方、例えば、通常ＯＳをシャットダウンした状態でのイメージファイルのバックアップを行う必要がある場合、例えば、通常ＯＳと異なる外部のＯＳ（以下、外部ＯＳとも呼ぶ）による仮想マシンの起動を行う必要がある。そのため、仮想マシンの管理者は、この場合、外部のブートローダ（例えば、ＣＤ／ＤＶＤデバイスに挿入された起動媒体内のブートローダ）が通常のブートローダよりも優先して起動するように、ＢＩＯＳ（ＢＡＳＩＳ  ＩＮＰＵＴ／ＯＵＴＰＵＴ  ＳＹＳＴＥＭ）に対して設定変更を行う。これにより、仮想マシンの管理者は、外部ＯＳによる仮想マシンの起動を行うことが可能になる（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−０３２６７９号公報
【特許文献２】特開２０１３−２４２７７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、例えば、仮想マシンの管理者がホストＯＳやハイパーバイザ（以下、これらを総称して仮想ホストとも呼ぶ）の管理者と異なる場合、仮想マシンの管理者は、ＢＩＯＳの設定変更を行う権限を有していない場合がある。そのため、仮想マシンの管理者は、この場合、ＢＩＯＳの設定変更によって、外部ＯＳの起動を優先的に行うことができない。
【０００７】
そこで、仮想マシンの管理者は、例えば、外部ＯＳの起動が通常ＯＳの起動よりも優先して行われるように、通常のブートローダがＯＳの起動時に参照する情報（以下、設定情報とも呼ぶ）の内容を変更する。これにより、仮想マシンの管理者は、ＢＩＯＳによって起動された通常のブートローダに、外部ＯＳの起動を行わせることが可能になる。そのため、仮想マシンの管理者は、ＢＩＯＳの設定変更を行うことなく、外部ＯＳの起動を行うことが可能になる。
【０００８】
ここで、仮想マシンの管理者は、外部ＯＳを起動に伴う処理（例えば、通常ＯＳをシャットダウンした状態でのイメージファイルのバックアップ）が完了した後、設定情報の内容を変更前の状態に戻す必要がある。しかしながら、外部ＯＳが設定情報の内容を変更する機能（設定情報の内容を変更前の状態に戻す機能）を有していない場合、通常のブートローダは、通常ＯＳの起動を再び行うことができなくなる。そのため、仮想マシンの管理者は、設定情報の内容を変更する機能を有していない外部ＯＳによる仮想マシンの起動を行うことができない。
【０００９】
そこで、一つの側面では、ＯＳに起動に伴って変更された設定情報の内容を変更前の状態に戻すことを可能とするブートローダプログラム、情報処理装置及びブート方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施の形態の一つの態様によれば、オペレーティングシステムのブート指示を受信したときに、オペレーティングシステムのブートに用いられる第１設定ファイルが記憶された記憶部を参照し、前記第１設定ファイルによってオペレーティングシステムのブートを行い、前記第１設定ファイルと異なる第２設定ファイルの退避が行われている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える、処理をコンピュータに実行させる。
【発明の効果】
【００１１】
一つの側面によれば、ＯＳに起動に伴って変更された設定情報の内容を変更前の状態に戻すことを可能とする。
【図面の簡単な説明】
【００１２】
【図１】図１は、情報処理システム１０の全体構成を示す図である。
【図２】図２は、情報処理装置１において仮想マシン３が起動する際の具体例について説明する図である。
【図３】図３は、情報処理装置１において仮想マシン３が起動する際の具体例について説明する図である。
【図４】図４は、情報処理装置１において仮想マシン３が起動する際の具体例について説明する図である。
【図５】図５は、情報処理装置１において仮想マシン３が起動する際の具体例について説明する図である。
【図６】図６は、情報処理装置１において仮想マシン３が起動する際の具体例について説明する図である。
【図７】図７は、情報処理装置１のハードウエア構成を説明する図である。
【図８】図８は、図７の情報処理装置１の機能ブロック図である。
【図９】図９は、第１の実施の形態におけるブート処理の概略を説明するフローチャートである。
【図１０】図１０は、第１の実施の形態におけるブート処理の詳細を説明するフローチャートである。
【図１１】図１１は、第１の実施の形態におけるブート処理の詳細を説明するフローチャートである。
【図１２】図１２は、第１の実施の形態におけるブート処理の詳細を説明する図である。
【図１３】図１３は、第１の実施の形態におけるブート処理の詳細を説明する図である。
【図１４】図１４は、第１の実施の形態におけるブート処理の詳細を説明する図である。
【図１５】図１５は、第１の実施の形態におけるブート処理の詳細を説明する図である。
【図１６】図１６は、第１の実施の形態におけるブート処理の詳細を説明する図である。
【図１７】図１７は、Ｓ１２の処理が行われた後の設定情報１３１の具体例を説明する図である。
【図１８】図１８は、Ｓ１２の処理が行われた後の退避情報１３４の具体例を説明する図である。
【図１９】図１９は、Ｓ１３の処理が行われた後の設定情報１３１の具体例を説明する図である。
【図２０】図２０は、第２の実施の形態におけるブート処理を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
［情報処理システムの構成］
図１は、情報処理システム１０の全体構成を示す図である。図１に示す情報処理システム１０は、例えば、利用者にサービスを提供するための業務システムである。図１に示す情報処理システム１０は、情報処理装置１と、１台以上（図１に示す例では３台）の管理者端末５とを含む。管理者端末５は、インターネットやイントラネット等のネットワークを介して、情報処理装置１にアクセス可能になっている。
【００１４】
情報処理装置１は、例えば、複数の物理マシンから構成される。各物理マシンは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｃｏｍｐｕｔｉｎｇ  Ｕｎｉｔ）と、メモリ（ＤＲＡＭ：Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、ハードディスク（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の大容量メモリとを有する。そして、情報処理装置１の物理リソースは、複数の仮想マシン３（図１に示す例では、仮想マシン３ａ、仮想マシン３ｂ及び仮想マシン３ｃ）に割当てられる。
【００１５】
仮想マシン３は、そのインフラをネットワーク経由で利用者に提供するもの（以下、クラウドサービスとも呼ぶ）である。クラウドサービスは、コンピュータシステムを構築し稼働させるための基盤、すなわち、仮想マシン３やネットワーク等のインフラストラクチャを、ネットワーク経由で提供するサービスである。利用者は、例えば、管理者端末５を介して、仮想マシン３に必要な仕様、例えば、ＣＰＵのクロック周波数、メモリの容量、ハードディスクの容量及びネットワークの通信帯域幅を選択し、それらについてクラウド利用契約を締結する。そして、利用者は、例えば、管理者端末５を介して、仮想マシン３の稼働状態を監視や仮想マシン３に対する操作等を行う。
【００１６】
仮想化ソフトウエア４は、情報処理装置１からの指示に応じて、情報処理装置１のＣＰＵ、メモリ、ハードディスク及びネットワークを割当てることにより、仮想マシン３を動作させる基盤ソフトウエアである。仮想化ソフトウエア４は、例えば、情報処理装置１において動作する。
【００１７】
［仮想マシンが起動する際の具体例］
次に、情報処理装置１において仮想マシン３が起動する際の具体例について説明を行う。図２から図６は、情報処理装置１において仮想マシン３が起動する際の具体例について説明する図である。
【００１８】
情報処理装置１は、図２に示すように、例えば、仮想マシン３の管理者が管理者端末５を介して入力した仮想マシン３ａの起動指示を受信した場合、仮想マシン３ａに割当てられたハードウエア１２（以下、仮想ハードウエア１２とも呼ぶ）において、仮想マシン３ａのＢＩＯＳ１２ｂの起動を行う。そして、起動されたＢＩＯＳ１２ｂは、仮想マシン３ａの仮想ＯＳを起動するためのプログラムであるブートローダプログラム１２ａ（以下、単にブートローダ１２ａとも呼ぶ）の起動を行う。
【００１９】
その後、起動したブートローダ１２ａは、図３に示すように、記憶領域１２ｃに記憶された設定情報１３１を参照する。そして、ブートローダ１２ａは、例えば、設定情報１３１が指し示す通常起動情報１３２（通常ＯＳ１１ａを起動するために用いられるファイル等の情報）を参照し、通常ＯＳ１１ａの起動を行う。
【００２０】
一方、例えば、通常ＯＳをシャットダウンした状態でのイメージファイルのバックアップを行う必要がある場合、仮想マシン３ａの管理者は、例えば、ＣＤ／ＤＶＤデバイスに挿入された起動媒体内の記憶領域１２ｄに記憶された外部ＯＳ１１ｂの起動を行う。具体的に、仮想マシン３ａの管理者は、この場合、図４に示すように、外部ＯＳ１１ｂを起動するためのファイル等である外部起動情報１３３を記憶領域１２ｄに記憶した記憶媒体を、ＣＤ／ＤＶＤデバイスに挿入する。そして、仮想マシン３ａの管理者は、ブートローダ１２ａが外部ＯＳ１１ｂの起動を通常ＯＳ１１ａの起動よりも優先して行うように、設定情報１３１の内容を変更する。
【００２１】
これにより、仮想マシン３の管理者は、図５に示すように、ブートローダ１２ａに設定情報１３１を参照させることで、外部ＯＳ１１ｂの起動を行わせることが可能になる。そのため、仮想マシン３の管理者は、ＢＩＯＳ１２ｂの設定変更を行うことなく、外部ＯＳ１１ｂの起動を行うことが可能になる。
【００２２】
ここで、仮想マシン３の管理者は、外部ＯＳ１１ｂを起動に伴う処理（例えば、通常ＯＳ１１ａをシャットダウンした状態でのイメージファイルのバックアップ）が完了した後、設定情報１３１の内容を変更前の状態に戻す必要がある。しかしながら、図６に示すように、外部ＯＳ１１ｂが設定情報１３１の内容を変更する機能を有していない場合、仮想マシン３の管理者は、通常ＯＳ１１ａの起動を再び行うことができなくなる。そのため、仮想マシン３の管理者は、設定情報１３１の内容を変更する機能を有していない外部ＯＳ１１ｂによる仮想マシン３の起動を行うことができない。
【００２３】
そこで、本実施の形態におけるブートローダ１２ａは、ＯＳのブート指示を受信したときに、ＯＳのブートに関する情報である設定情報１３１（以下、第１設定ファイル１３１とも呼ぶ）が記憶された記憶領域１２ｃを参照し、設定情報１３１によってＯＳのブートを行う。そして、ブートローダ１２ａは、過去の設定情報１３１の内容を退避することにより生成された情報である退避情報１３４（以下、第２設定ファイル１３４とも呼ぶ）が存在する場合、現在の設定情報１３１の内容を退避情報１３４の内容に置き換える。
【００２４】
すなわち、ブートローダ１２ａは、例えば、外部ＯＳ１１ｂによる仮想マシン３の起動が行われる場合、通常ＯＳ１１ａによって仮想マシン３が起動されている間に、設定情報１３１の内容（通常起動情報１３２を指し示す内容）と同一の内容である退避情報１３４の生成を行う。そして、ブートローダ１２ａは、外部起動情報１３３を指し示すように設定情報１３１の内容を更新する。
【００２５】
その後、ブートローダ１２ａは、設定情報１３１の内容（外部起動情報１３３を指し示す内容）を参照し、外部起動情報１３３に基づいて外部ＯＳ１１ｂによるブートを行う。そして、ブートローダ１２ａは、設定情報１３１の内容（外部起動情報１３３を指し示す内容）が参照された後において、退避情報１３４が存在している場合、設定情報１３１が指し示す内容を元の内容（通常起動情報１３２を指し示す内容）に変更する。
【００２６】
これにより、ブートローダ１２ａは、外部ＯＳ１１ｂによる仮想マシン３の起動が行われた後であっても、通常起動情報１３２を指し示す設定情報１３１を参照し、通常ＯＳ１１ａによる仮想マシン３の起動を再度行うことが可能になる。そのため、仮想マシン３の管理者は、設定情報１３１の内容を変更する機能を有していない外部ＯＳ１１ｂによる仮想マシン３の起動を行うことが可能になる。
【００２７】
［情報処理装置のハードウエア構成］
次に、情報処理装置１のハードウエア構成について説明する。図７は、情報処理装置１のハードウエア構成を説明する図である。
【００２８】
情報処理装置１は、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体（ストレージ）１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００２９】
記憶媒体１０４は、記憶媒体１０４内のプログラム格納領域（図示しない）に、ブートローダ１２ａがＯＳのブートを行う処理（以下、ブート処理とも呼ぶ）を行うためのプログラム１１０（以下、ブートローダプログラム１１０とも呼ぶ）を記憶する。
【００３０】
ＣＰＵ１０１は、図７に示すように、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働してブート処理を行う。
【００３１】
記憶媒体１０４は、例えば、ブート処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。また、外部インターフェース１０３は、情報処理装置１と通信を行う。情報格納領域１３０は、例えば、図２等で説明した記憶領域１２ｃ及び記憶領域１２ｄに対応する。なお、以下、記憶領域１２ｃに対応する情報格納領域１３０を情報格納領域１３０ｃとも呼び、記憶領域１２ｄに対応する情報格納領域１３０を情報格納領域１３０ｄとも呼ぶ。
【００３２】
［情報処理装置のソフトウエア構成]
次に、情報処理装置１のソフトウエア構成について説明する。図８は、図７の情報処理装置１の機能ブロック図である。なお、図８に示す各機能は、ブートローダ１２ａに含まれる機能である。
【００３３】
ＣＰＵ１０１は、プログラム１１０と協働することにより、情報送受信部１１１と、情報管理部１１２と、ブート指示受信部１１３と、ブート実行部１１４と、退避判定部１１５として動作する。また、図８に示すように、情報格納領域１３０には、設定情報１３１と、通常起動情報１３２と、外部起動情報１３３と、退避情報１３４とが記憶される。
【００３４】
情報送受信部１１１は、例えば、仮想マシン３の管理者が管理者端末５を介して入力した指示を受信する。具体的に、情報送受信部１１１は、外部ＯＳ１１ｂによる仮想マシン３の起動を行う旨の指示（以下、外部起動指示とも呼ぶ）を受信する。
【００３５】
情報管理部１１２は、情報送受信部１１１が外部起動指示を受信した場合、情報格納領域１３０に記憶された設定情報１３１と同一の内容である退避情報１３４を生成する。そして、情報管理部１１２は、生成した退避情報１３４を情報格納領域１３０に記憶する。
【００３６】
ブート指示受信部１１３は、外部から入力されたＯＳのブートを行う旨の指示（以下、ブート指示とも呼ぶ）を受信する。具体的に、ブート指示受信部１１３は、例えば、仮想マシン３の管理者が管理者端末５を介して入力したブート指示を受信する。
【００３７】
ブート実行部１１４は、ブート指示受信部１１３がブート指示を受信したときに、情報格納領域１３０に記憶された設定情報１３１を参照し、設定情報１３１が指し示すファイル等によってＯＳのブートを行う。具体的に、設定情報１３１が通常起動情報１３２を指し示している場合、ブート実行部１１４は、通常起動情報１３２に含まれるファイル等によって通常ＯＳ１１ａの起動を行う。また、設定情報１３１が外部起動情報１３３を指し示している場合、ブート実行部１１４は、外部起動情報１３３に含まれるファイル等によって外部ＯＳ１１ｂの起動を行う。
【００３８】
退避判定部１１５は、例えば、情報格納領域１３０に退避情報１３４が記憶されているか否かを判定する。そして、情報管理部１１２は、退避情報１３４が存在すると判定された場合、設定情報１３１の内容を退避情報１３４の内容に置き換える。
【００３９】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図９は、第１の実施の形態におけるブート処理の概略を説明するフローチャートである。
【００４０】
ブートローダ１２ａは、図９に示すように、ブート指示を受信するまで待機する（Ｓ１のＮＯ）。具体的に、ブートローダ１２ａは、例えば、仮想マシン３の管理者が管理者端末５を介してブート指示を送信するまで待機する。そして、ブート指示を受信した場合（Ｓ１のＹＥＳ）、ブートローダ１２ａは、設定情報１３１が記憶された情報格納領域１３０を参照し、設定情報１３１によってＯＳのブートを行う（Ｓ２）。具体的に、ブートローダ１２ａは、設定情報１３１が指し示すファイル等（例えば、外部起動情報１３３に含まれるファイル）を実行することによって、ＯＳのブートを行う。
【００４１】
また、ブートローダ１２ａは、過去の設定情報１３１の内容を退避することによって生成された退避情報１３４が存在するか否かを判定する（Ｓ３）。具体的に、ブートローダ１２ａは、情報格納領域１３０に退避情報１３４が記憶されているか否かを判定する。その結果、退避情報１３４が存在すると判定した場合（Ｓ３のＹＥＳ）、ブートローダ１２ａは、Ｓ３の処理で退避されていると判定した退避情報１３４の内容を設定情報１３１の内容に置き換える（Ｓ４）。一方、退避情報１３４が存在しないと判定した場合（Ｓ３のＮＯ）、ブートローダ１２ａは、Ｓ４の処理を行わない。
【００４２】
すなわち、ブートローダ１２ａは、例えば、外部ＯＳ１１ｂによる仮想マシン３の起動が行われる場合、通常ＯＳ１１ａによって仮想マシン３が起動されている間に、設定情報１３１の内容（通常起動情報１３２を指し示す内容）と同一の内容である退避情報１３４の生成を行う。そして、ブートローダ１２ａは、外部起動情報１３３を指し示すように設定情報１３１の内容を更新する。
【００４３】
その後、ブートローダ１２ａは、設定情報１３１の内容（外部起動情報１３３を指し示す内容）を参照し、外部起動情報１３３に基づいて外部ＯＳ１１ｂによるブートを行う。そして、ブートローダ１２ａは、設定情報１３１の内容（外部起動情報１３３を指し示す内容）が参照された後において、退避情報１３４が存在している場合、設定情報１３１が指し示す内容を元の内容（通常起動情報１３２を指し示す内容）に変更する。
【００４４】
これにより、ブートローダ１２ａは、外部ＯＳ１１ｂが設定情報１３１の内容を変更する機能を有しておらず、通常ＯＳ１１ａの機能（設定情報１３１の内容を変更する機能）を利用することができない場合であっても、外部ＯＳ１１ｂによる仮想マシン３の起動が行われた後に、通常ＯＳ１１ａによる仮想マシン３の起動を再度行うことが可能になる。そのため、仮想マシン３の管理者は、設定情報１３１の内容を変更する機能を有していない外部ＯＳ１１ｂによる仮想マシン３の起動を行うことが可能になる。
【００４５】
なお、ブートローダ１２ａは、外部ＯＳ１１ｂの起動を行うことが可能な外部のブートローダ（図示しない）を起動するものであってよい。そして、外部ＯＳ１１ｂは、外部のブートローダが外部起動情報１３３を参照することにより起動されるものであってもよい。
【００４６】
［第１の実施の形態の詳細]
次に、第１の実施の形態の詳細について説明する。図１０及び図１１は、第１の実施の形態におけるブート処理の詳細を説明するフローチャートである。また、図１２から図１９は、第１の実施の形態におけるブート処理の詳細を説明する図である。図１２から図１９を参照しながら、図１０及び図１１のブート処理を説明する。
【００４７】
初めに、情報処理装置１において行われるブート処理の前に行われる処理（以下、事前処理とも呼ぶ）について説明を行う。図１０は、事前処理を説明するフローチャートである。なお、以下、図１２に示すように、通常起動情報１３２によって通常ＯＳ１１ａが既に起動しているものとして説明を行う。
【００４８】
ブートローダ１２ａの情報送受信部１１１は、図１０に示すように、事前設定タイミングになるまで待機する（Ｓ１１のＮＯ）。事前設定タイミングは、例えば、情報送受信部１１１が管理者端末５から仮想マシン３の外部起動指示を受信したタイミングであってよい。
【００４９】
その結果、事前設定タイミングになった場合（Ｓ１１のＹＥＳ）、ブートローダ１２ａの情報管理部１１２は、例えば、情報格納領域１３０に記憶されたファイルのうち、ファイル名が特定のファイル名（以下、第１ファイル名または第１識別情報とも呼ぶ）である設定情報１３１（通常起動情報１３２を指し示す内容の情報）を特定する。そして、情報管理部１１２は、この場合、図１３に示すように、特定した設定情報１３１のファイル名を他のファイル名（以下、第２ファイル名または第２識別情報とも呼ぶ）に変更した退避情報１３４（通常起動情報１３２を指し示す内容の情報）を生成し、生成した退避情報１３４を情報格納領域１３０に記憶する（Ｓ１２）。
【００５０】
すなわち、情報管理部１１２は、情報格納領域１３０に記憶された各ファイルのファイル名を参照することにより、設定情報１３１を特定する。そして、情報管理部１１２は、例えば、設定情報１３１のファイル名を変更することによって退避情報１３４を生成する。これにより、情報管理部１１２は、通常起動情報１３２を指し示す内容の設定情報１３１の退避を行うことが可能になる。
【００５１】
なお、情報管理部１１２は、設定情報１３１の内容を複製したファイルのファイル名を第２ファイル名にすることにより、退避情報１３４を生成するものであってもよい。以下、Ｓ１２の処理が行われた後の設定情報１３１及び退避情報１３４の具体例について説明を行う。
【００５２】
［設定情報の具体例（１）]
図１７は、Ｓ１２の処理が行われた後の設定情報１３１の具体例を説明する図である。図１７に示す設定情報１３１は、設定情報１３１に含まれる各情報を識別する「項番」と、各ファイルの格納位置及びファイル名を示す「ファイル名」とを項目として有する。
【００５３】
具体的に、図１７に示す設定情報１３１において、「項番」が「１」である情報の「ファイル名」には、「／ｂｏｏｔ／ａａａ／ｂｂｂ」が設定されている。また、図１７に示す設定情報１３１において、「項番」が「２」である情報の「ファイル名」には、「／ｂｏｏｔ／ｆｏｏ／ｂａｒ」が設定されている。さらに、図１７に示す設定情報１３１において、「項番」が「３」である情報の「ファイル名」には、「／ｈｏｇｅ／ｆｕｇａ／ｆｆｆ」が設定されている。
【００５４】
なお、ブートローダ１２ａは、例えば、図１７に示す設定情報１３１を参照した場合、「項番」に「１」が設定された情報の「ファイル名」に情報が設定されたファイル（通常起動情報１３２に含まれるファイル）を実行する。すなわち、ブートローダ１２ａは、この場合、「項番」に「１」が設定された情報の「ファイル名」に情報が設定されたファイルを、通常起動情報１３２または外部起動情報１３３であると判定する。
【００５５】
そして、ブートローダ１２ａは、「項番」に「１」が設定された情報の「ファイル名」に情報が設定されたファイルの実行ができない場合、「項番」に「２」が設定された情報の「ファイル名」に情報が設定されたファイルの実行を行う。具体的に、ブートローダ１２ａは、例えば、「項番」に「１」が設定された情報の「ファイル名」に情報が設定されたファイルが存在しない場合に、「項番」に「２」が設定された情報の「ファイル名」に情報が設定されたファイルの実行を行う。さらに、ブートローダ１２ａは、「項番」に「２」が設定された情報の「ファイル名」に情報が設定されたファイルの実行ができない場合、「項番」に「３」が設定された情報の「ファイル名」に情報が設定されたファイルの実行を行う。
【００５６】
［退避情報の具体例]
続いて、Ｓ１２の処理が行われた後の退避情報１３４の具体例について説明を行う。図１８は、Ｓ１２の処理が行われた後の退避情報１３４の具体例を説明する図である。図１８に示す退避情報１３４は、図１７に示す設定情報１３１と同じ項目を有している。また、図１８に示す退避情報１３４は、図１７で説明した設定情報１３１と同じ情報を有している。
【００５７】
これにより、ブートローダ１２ａは、後述するように、例えば、外部ＯＳ１１ｂによる仮想マシン３の起動が行われた後、退避情報１３４の内容を設定情報１３１に置き換えることが可能になる。そのため、ブートローダ１２ａは、外部ＯＳ１１ｂによる仮想マシン３の起動が行われた場合であっても、通常ＯＳ１１ａによる仮想マシン３の起動を再度行うことが可能になる。
【００５８】
図１０に戻り、情報管理部１１２は、図１４に示すように、ファイル名を第１ファイル名にした設定情報１３１（外部起動情報１３３を指し示す内容の情報）を生成し、生成した設定情報１３１を情報格納領域に記憶する（Ｓ１３）。具体的に、情報管理部１１２は、例えば、仮想マシン３の管理者が管理者端末５を介して入力した情報の内容から、設定情報１３１（外部起動情報１３３を指し示す内容の情報）の生成を行う。以下、Ｓ１３の処理が行われた後の設定情報１３１の具体例について説明を行う。
【００５９】
［設定情報の具体例（２）]
図１９は、Ｓ１３の処理が行われた後の設定情報１３１の具体例を説明する図である。図１９に示す設定情報１３１は、図１７で説明した設定情報１３１と同じ項目を有している。
【００６０】
具体的に、図１９に示す設定情報１３１において、「項番」が「１」である情報の「ファイル名」には、「／ｈｏｇｅ／ｆｕｇａ／ｉｍｇ」が設定されている。
【００６１】
これにより、情報管理部１１２は、通常ＯＳ１１ａをブートするために必要な内容を含む設定情報１３１を退避するとともに、外部ＯＳ１１ｂをブートするために必要な内容を含む設定情報１３１を、ブートローダ１２ａが参照可能な状態で情報格納領域１３０に格納することが可能になる。
【００６２】
次に、情報処理装置１において行われるブート処理について説明を行う。図１１は、ブート処理を説明するフローチャートである。
【００６３】
ブートローダ１２ａのブート指示受信部１１３は、図１１に示すように、ブート指示を受信するまで待機する（Ｓ２１のＮＯ）。そして、ブート指示を受信した場合（Ｓ２１のＹＥＳ）、ブートローダ１２ａのブート実行部１１４は、図１５に示すように、情報格納領域１３０に記憶されたファイルのうち、ファイルのファイル名が第１ファイル名であるファイルを設定情報１３１（外部起動情報１３３を指し示す内容の設定情報１３１）として特定する。さらに、ブート実行部１１４は、特定した設定情報１３１によってＯＳのブートを行う（Ｓ２２）。具体的に、ブート実行部１１４は、特定した設定情報１３１が指し示すファイル等（外部起動情報１３３に含まれるファイル）を実行することによってＯＳのブートを行う。
【００６４】
すなわち、ブート実行部１１４は、情報格納領域１３０に記憶された各ファイルのファイル名を参照することにより、設定情報１３１を特定する。これにより、ブート実行部１１４は、外部起動情報１３３を指し示す内容の設定情報１３１を参照し、外部ＯＳ１１ｂの起動を行うことが可能になる。
【００６５】
そして、ブートローダ１２ａの退避判定部１１５は、過去の設定情報１３１の内容（通常起動情報１３２を指し示す内容）を退避することによって生成された退避情報１３４が存在するか否かを判定する（Ｓ２３）。すなわち、退避判定部１１５は、Ｓ１２の処理が行われることによって生成された退避情報１３４が存在するか否かを判定する。
【００６６】
その結果、退避情報１３４が存在すると判定した場合（Ｓ２３のＹＥＳ）、情報管理部１１２は、図１６に示すように、Ｓ２３の処理で退避されていると判定した退避情報１３４の内容を設定情報１３１の内容に置き換える（Ｓ２４）。具体的に、情報管理部１１２は、外部起動情報１３３を指し示す設定情報１３１の内容を、通常起動情報１３２を指し示す設定情報１３１の内容に置き換える。
【００６７】
すなわち、退避情報１３４は、外部ＯＳ１１ｂの起動が行われる場合（Ｓ１２の処理が行われた場合）に生成される。一方、外部ＯＳ１１ｂの起動が行われていない場合、退避情報１３４は生成されない。そのため、情報管理部１１２は、Ｓ２３の処理において、退避情報１３４が存在する場合に限り、設定情報１３１の内容の置き換えを行う。
【００６８】
なお、情報管理部１１２は、Ｓ２４の処理において、図１６に示すように、情報格納領域１３０から退避情報１３４を消去するものであってよい。これにより、情報管理部１１２は、通常ＯＳ１１ａによる仮想マシン３の起動が再度行われる場合に、Ｓ２４の処理が行われることを防止することが可能になる。
【００６９】
このように、本実施の形態におけるブートローダ１２ａは、ＯＳのブート指示を受信したときに、ＯＳのブートに関する情報である設定情報１３１が記憶された記憶領域１２ｃを参照し、設定情報１３１によってＯＳのブートを行う。そして、ブートローダ１２ａは、過去の設定情報１３１の内容を退避することにより生成された情報である退避情報１３４が存在する場合、現在の設定情報１３１の内容を退避情報１３４の内容に置き換える。
【００７０】
これにより、ブートローダ１２ａは、外部ＯＳ１１ｂが設定情報１３１の内容を変更する機能を有しておらず、通常ＯＳ１１ａの機能（設定情報１３１の内容を変更する機能）を利用することができない場合であっても、外部ＯＳ１１ｂによる仮想マシン３の起動が行われた後に、通常ＯＳ１１ａによる仮想マシン３の起動を再度行うことが可能になる。そのため、仮想マシン３の管理者は、設定情報１３１の内容を変更する機能を有していない外部ＯＳ１１ｂによる仮想マシン３の起動を行うことが可能になる。
【００７１】
［第２の実施の形態]
次に、第２の実施の形態について説明する。図２０は、第２の実施の形態におけるブート処理を説明するフローチャートである。
【００７２】
第１の実施の形態において説明したブートローダ１２ａは、ＯＳのブートに伴う処理の一部を、ブート対象であるＯＳ自体に行わせるものである場合がある。すなわち、第１の実施の形態において説明したブートローダ１２ａは、ＯＳのブートに伴う処理の一部のみを実行し、ＯＳのブートの完了を待たずに処理を終了するものである場合がある。
【００７３】
そのため、第１の実施の形態における設定情報１３１の内容を置き換える処理（図１３のＳ２３及びＳ２４の処理）は、ＯＳのブートを行う処理（図１３のＳ２２の処理）の前に行われることが好ましい場合がある。そこで、第２の実施の形態におけるブートローダ１２ａは、設定情報１３１の内容を置き換える処理を、ＯＳのブートを行う処理が行われる前に行う。以下、第２の実施の形態におけるブート処理のフローチャートについて説明を行う。
【００７４】
ブート指示受信部１１３は、図２０に示すように、ブート指示を受信するまで待機する（Ｓ３１のＮＯ）。そして、ブート指示を受信した場合（Ｓ３１のＹＥＳ）、ブート実行部１１４は、情報格納領域１３０に記憶されたファイルのうち、ファイルのファイル名が第１ファイル名であるファイルを設定情報１３１（外部起動情報１３３を指し示す内容の設定情報１３１）として特定する。さらに、ブート実行部１１４は、この場合、特定した設定情報１３１を情報処理装置１のメモリ等の他の記憶領域（以下、単にメモリとも呼ぶ）に展開する（Ｓ３２）。なお、ブート実行部１１４は、Ｓ３２の処理において、情報格納領域１３０に設定された設定情報１３１が指し示す外部起動情報１３３を併せてメモリに展開させるものであってもよい。
【００７５】
そして、退避判定部１１５は、過去の設定情報１３１（通常起動情報１３２を指し示す内容の情報）を退避することによって生成された退避情報１３４が存在するか否かを判定する（Ｓ３３）。その結果、退避情報１３４が存在する場合（Ｓ３３のＹＥＳ）、情報管理部１１２は、Ｓ３３の処理で退避されていると判定した退避情報１３４の内容を設定情報１３１の内容に置き換える（Ｓ３４）。
【００７６】
その後、ブート実行部１１４は、Ｓ３２の処理においてメモリに展開した設定情報１３１（外部起動情報１３３を指し示す内容の情報）によって、ＯＳのブートを行う（Ｓ３５）。具体的に、ブート実行部１１４は、メモリに展開された設定情報１３１が指し示すファイル等（外部起動情報１３３に含まれるファイル）を実行することによって、外部ＯＳ１１ｂのブートを行う。
【００７７】
すなわち、第２の実施の形態におけるブート実行部１１４は、外部起動情報１３３による外部ＯＳ１１ｂの起動が完了する前に、設定情報１３１（外部起動情報１３３を指し示す内容の情報）をメモリに展開する。そして、第２の実施の形態における情報管理部１１２及び退避判定部１１５は、外部起動情報１３３による外部ＯＳ１１ｂの起動が完了する前であって、設定情報１３１がメモリに展開された後に、退避情報１３４の内容を設定情報１３１に置き換える。
【００７８】
これにより、ブートローダ１２ａは、外部起動情報１３３による外部ＯＳ１１ｂの起動が完了する前に処理を終了する場合であっても、通常起動情報１３２を消去することなく、退避情報１３４の内容を設定情報１３１に置き換えることが可能になる。
【００７９】
以上の実施の形態をまとめると、以下の付記の通りである。
【００８０】
（付記１）
オペレーティングシステムのブート指示を受信したときに、オペレーティングシステムのブートに用いられる第１設定ファイルが記憶された記憶部を参照し、前記第１設定ファイルによってオペレーティングシステムのブートを行い、
前記第１設定ファイルと異なる第２設定ファイルの退避が行われている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える、
処理をコンピュータに実行させることを特徴とするブートローダプログラム。
【００８１】
（付記２）
付記１において、
前記第１設定ファイルを置き換える処理では、前記第２設定ファイルが前記記憶部に記憶されている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とするブートローダプログラム。
【００８２】
（付記３）
付記２において、
前記ブートを行う処理では、前記記憶部に記憶されたファイルのうち、ファイルの識別情報が第１識別情報であるファイルを前記第１設定ファイルとして参照し、
前記第１設定ファイルを置き換える処理では、ファイルの識別情報が前記第１識別情報と異なる第２識別情報であるファイルが前記記憶部に記憶されている場合、前記第２設定ファイルが前記記憶部に記憶されていると判定し、前記第２設定ファイルの識別情報を前記第１識別情報に変更することにより、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とするブートローダプログラム。
【００８３】
（付記４）
付記３において、さらに、
前記ブートを行う処理の前に、前記記憶部に記憶されたファイルのうち、ファイルの識別情報が前記第１識別情報であるファイルの識別情報を前記第２識別情報に変更することにより、前記第２設定ファイルの退避を行い、
識別情報を前記第１識別情報にした前記第１設定ファイルを前記記憶部に記憶する、
処理をコンピュータに実行させることを特徴とするブートローダプログラム。
【００８４】
（付記５）
付記１において、
前記ファイル識別情報は、各ファイルに対応するファイル名である、
ことを特徴とするブートローダプログラム。
【００８５】
（付記６）
付記１において、
前記ブートを行う処理では、仮想マシンのオペレーティングシステムのブートを行う、
ことを特徴とするブートローダプログラム。
【００８６】
（付記７）
付記１において、
前記ブートを行う処理では、
前記第１設定ファイルをメモリに展開し、
前記メモリに展開した前記第１設定ファイルによってオペレーティングシステムのブートを行い、
前記第１設定ファイルを置き換える処理は、前記メモリに展開する処理の後であって、前記メモリに展開した前記第１設定ファイルによってブートを行う処理の前に行われる、
ことを特徴とするブートローダプログラム。
【００８７】
（付記８）
オペレーティングシステムのブート指示を受信したときに、オペレーティングシステムのブートに用いられる第１設定ファイルが記憶された記憶部を参照し、前記第１設定ファイルによってオペレーティングシステムのブートを行うブート実行部と、
前記第１設定ファイルと異なる第２設定ファイルの退避が行われている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える情報管理部と、を有する、
ことを特徴とする情報処理装置。
【００８８】
（付記９）
付記８において、
前記情報管理部は、前記第２設定ファイルが前記記憶部に記憶されている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とする情報処理装置。
【００８９】
（付記１０）
付記９において、
前記ブート実行部は、前記記憶部に記憶されたファイルのうち、ファイルの識別情報が第１識別情報であるファイルを前記第１設定ファイルとして参照し、
前記情報管理部は、ファイルの識別情報が第１識別情報と異なる第２識別情報であるファイルが前記記憶部に記憶されている場合、前記第２設定ファイルが前記記憶部に記憶されていると判定し、前記第２設定ファイルの識別情報を前記第１識別情報に変更することにより、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とする情報処理装置。
【００９０】
（付記１１）
オペレーティングシステムのブート指示を受信したときに、オペレーティングシステムのブートに用いられる第１設定ファイルが記憶された記憶部を参照し、前記第１設定ファイルによってオペレーティングシステムのブートを行い、
前記第１設定ファイルと異なる第２設定ファイルの退避が行われている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とするブート方法。
【００９１】
（付記１２）
付記１１において、
前記第１設定ファイルを置き換える処理では、前記第２設定ファイルが前記記憶部に記憶されている場合、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とするブート方法。
【００９２】
（付記１３）
付記１２において、
前記ブートを行う処理では、前記記憶部に記憶されたファイルのうち、ファイルの識別情報が第１識別情報であるファイルを前記第１設定ファイルとして参照し、
前記第１設定ファイルを置き換える処理では、ファイルの識別情報が第１識別情報と異なる第２識別情報であるファイルが前記記憶部に記憶されている場合、前記第２設定ファイルが前記記憶部に記憶されていると判定し、前記第２設定ファイルの識別情報を前記第１識別情報に変更することにより、前記第２設定ファイルを前記第１設定ファイルに置き換える、
ことを特徴とするブート方法。
【符号の説明】
【００９３】
１：情報処理装置            ３：仮想マシン
４：仮想化ソフトウエア      ５：管理者端末
【図１】
2018063611.tif 000003
【図２】
2018063611.tif 000004
【図３】
2018063611.tif 000005
【図４】
2018063611.tif 000006
【図５】
2018063611.tif 000007
【図６】
2018063611.tif 000008
【図７】
2018063611.tif 000009
【図８】
2018063611.tif 000010
【図９】
2018063611.tif 000011
【図１０】
2018063611.tif 000012
【図１１】
2018063611.tif 000013
【図１２】
2018063611.tif 000014
【図１３】
2018063611.tif 000015
【図１４】
2018063611.tif 000016
【図１５】
2018063611.tif 000017
【図１６】
2018063611.tif 000018
【図１７】
2018063611.tif 000019
【図１８】
2018063611.tif 000020
【図１９】
2018063611.tif 000021
【図２０】
2018063611.tif 000022