(57)【特許請求の範囲】
【請求項１】
ＵＳＢ（Universal Serial Bus）規格とは異なる規格のインターフェースを介して接続された非ＵＳＢストレージデバイスと、ＵＳＢストレージデバイスを接続可能なＵＳＢポートとを備え、前記非ＵＳＢストレージデバイスおよび前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを、ＳＣＳＩ（Small Computer System Interface）デバイスと認識する情報処理装置であって、
前記非ＵＳＢストレージデバイスないし前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを検出すると、検出したデバイスとの間でＳＣＳＩ規格に準拠した方式でデータ伝送を行うための論理的なデータ伝送用インターフェースを生成するデータ伝送用インターフェース生成手段と、
前記データ伝送用インターフェース生成手段によって生成された前記データ伝送用インターフェースを検出する毎に、前記データ伝送用インターフェースを介してアクセス可能なデバイスに対して、ユニークなドライブ名を割り当てるドライブ名割り当て手段と、
前記ドライブ名割り当て手段によって割り当てられたドライブ名が、あらかじめ取り決められたドライブ名となったデバイスを判定対象として、前記判定対象が前記非ＵＳＢストレージデバイスか否かを判定するデバイス種別判定手段と、
前記デバイス種別判定手段によって前記判定対象が前記非ＵＳＢストレージデバイスであると判定された場合に、前記非ＵＳＢストレージデバイス上にある第１ファイルシステムを所定のマウントポイントにマウントする第１マウント手段と、
前記第１マウント手段が前記第１ファイルシステムのマウントに成功したか否かを判定するマウント結果判定手段と、
前記マウント結果判定手段によって前記第１ファイルシステムのマウントに成功したと判定された場合に、前記マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行する処理実行手段と、
前記デバイス種別判定手段によって前記対象デバイスが前記非ＵＳＢストレージデバイスではないと判定された場合、または、前記マウント結果判定手段によって前記第１ファイルシステムのマウントに失敗したと判定された場合に、前記ＵＳＢポートに接続された前記ＵＳＢストレージデバイス上にある第２ファイルシステムを、前記所定のマウントポイントにマウントする第２マウント手段と
を備え、
前記処理実行手段は、前記第２マウント手段によって前記第２ファイルシステムが前記所定のマウントポイントにマウントされたら、前記マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行する
ことを特徴とする情報処理装置。
【請求項２】
前記ＵＳＢポートが複数設けられており、前記複数のＵＳＢポートの内、少なくとも１つのＵＳＢポートは管理者だけが利用可能な管理者用ＵＳＢポート、残りのＵＳＢポートは管理者以外でも利用可能な一般用ＵＳＢポートとされ、
しかも、
前記管理者用ＵＳＢポートに接続された前記ＵＳＢストレージデバイスに対して前記ドライブ名割り当て手段が割り当てた前記ドライブ名を取得するドライブ名取得手段
を備え、
前記第２マウント手段は、前記ドライブ名取得手段によって取得された前記ドライブ名を利用して、前記管理者用ＵＳＢポートに接続された前記ＵＳＢストレージデバイス上にある前記第２ファイルシステムを特定するとともに、当該特定した前記第２ファイルシステムを、前記所定のマウントポイントにマウントする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを検出すると、前記データ伝送用インターフェースに関する情報と前記ＵＳＢストレージデバイスに関する情報とにアクセスするための情報公開用インターフェースを生成する情報公開用インターフェース生成手段
を備え、
前記ドライブ名割り当て手段は、前記データ伝送用インターフェースを介して前記ＵＳＢストレージデバイスにアクセスする際には、アクセス対象となる前記ＵＳＢストレージデバイスに対して割り当てた前記ドライブ名を、前記データ伝送用インターフェースに伝達することにより、前記データ伝送用インターフェースが備える記憶領域に前記ドライブ名を保存し、
前記ドライブ名取得手段は、前記情報公開用インターフェースを介して前記データ伝送用インターフェースが備える記憶領域に格納された情報を読み出し、その読み出した情報中から前記管理者用ＵＳＢポートと前記ドライブ名との対応関係を示す情報を取得する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ドライブ名割り当て手段は、前記ＵＳＢストレージデバイスに対して前記ドライブ名を割り当てた後、前記ＵＳＢストレージデバイスの容量に関する情報を取得するため、ＳＣＳＩ規格で規定されたＳＣＳＩコマンドの１種であるリードキャパシティコマンドを発行しており、当該リードキャパシティコマンドに対応する処理の中で、前記ドライブ名が前記データ伝送用インターフェースに伝達される
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記ドライブ名取得手段は、前記情報公開用インターフェースを介して情報を取得可能なすべての前記ＵＳＢストレージデバイスについて、順次情報の読み出しを繰り返すとともに、読み出した情報中に含まれるＵＳＢポートに関する情報があらかじめ決められた前記管理者用ＵＳＢポートに該当する情報か否かを判断し、前記管理者用ＵＳＢポートに該当する情報であった場合に、読み出した情報中に含まれる前記ドライブ名を取得する
ことを特徴とする請求項４または請求項５に記載の情報処理装置。
【請求項６】
前記管理者用ＵＳＢポートは、情報処理装置の筐体内部に収容されていて、前記筐体が備えるパネルを開放したときにＵＳＢデバイスを抜き挿し可能となるものであり、
前記一般用ＵＳＢポートは、前記筐体の外部に露出していて、前記パネルを開放しなくてもＵＳＢデバイスを抜き挿し可能となっている
ことを特徴とする請求項２〜請求項５のいずれかに記載の情報処理装置。
【請求項７】
ＵＳＢ（Universal Serial Bus）規格とは異なる規格のインターフェースを介して接続された非ＵＳＢストレージデバイスと、ＵＳＢストレージデバイスを接続可能なＵＳＢポートとを備え、前記非ＵＳＢストレージデバイスおよび前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを、ＳＣＳＩ（Small Computer System Interface）デバイスと認識する情報処理装置であって、
前記非ＵＳＢストレージデバイスないし前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを検出すると、検出したデバイスとの間でＳＣＳＩ規格に準拠した方式でデータ伝送を行うための論理的なデータ伝送用インターフェースを生成するデータ伝送用インターフェース生成手段と、
前記データ伝送用インターフェース生成手段によって生成された前記データ伝送用インターフェースを検出する毎に、前記データ伝送用インターフェースを介してアクセス可能なデバイスに対して、ユニークなドライブ名を割り当てるドライブ名割り当て手段と、
前記ドライブ名割り当て手段によって割り当てられたドライブ名が、あらかじめ取り決められたドライブ名となったデバイスを判定対象として、前記判定対象が前記非ＵＳＢストレージデバイスか否かを判定するデバイス種別判定手段と、
前記デバイス種別判定手段によって前記判定対象が前記非ＵＳＢストレージデバイスであると判定された場合に、前記非ＵＳＢストレージデバイス上にある第１ファイルシステムを所定のマウントポイントにマウントする第１マウント手段と、
前記第１マウント手段が前記第１ファイルシステムのマウントに成功したか否かを判定するマウント結果判定手段と、
前記マウント結果判定手段によって前記第１ファイルシステムのマウントに成功したと判定された場合に、前記マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行する処理実行手段と、
前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを検出すると、前記データ伝送用インターフェースに関する情報と前記ＵＳＢストレージデバイスに関する情報とにアクセスするための情報公開用インターフェースを生成する情報公開用インターフェース生成手段と
を備え、
前記ドライブ名割り当て手段は、前記データ伝送用インターフェースを介して前記ＵＳＢストレージデバイスにアクセスする際には、アクセス対象となる前記ＵＳＢストレージデバイスに対して割り当てた前記ドライブ名を、前記データ伝送用インターフェースに伝達することにより、前記データ伝送用インターフェースが備える記憶領域に前記ドライブ名を保存し、
前記デバイス種別判定手段は、前記情報公開用インターフェースを介して前記データ伝送用インターフェースが備える記憶領域に格納された情報を読み出し、その読み出した情報中から前記ＵＳＢポートと前記ドライブ名との対応関係を示す情報を取得し、取得した情報中に前記判定対象についての情報が存在しない場合に、前記判定対象が前記非ＵＳＢストレージデバイスであると判定する
ことを特徴とする情報処理装置。
【請求項８】
前記ドライブ名割り当て手段は、前記ＵＳＢストレージデバイスに対して前記ドライブ名を割り当てた後、前記ＵＳＢストレージデバイスの容量に関する情報を取得するため、ＳＣＳＩ規格で規定されたＳＣＳＩコマンドの１種であるリードキャパシティコマンドを発行しており、当該リードキャパシティコマンドに対応する処理の中で、前記ドライブ名が前記データ伝送用インターフェースに伝達される
ことを特徴とする請求項７に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ（Universal Serial Bus）規格とは異なる規格のインターフェースを介して接続された非ＵＳＢストレージデバイスと、ＵＳＢポートに接続されたＵＳＢストレージデバイスの双方を、ともにＳＣＳＩデバイスと認識する情報処理装置に関する。
【背景技術】
【０００２】
従来、ストレージデバイスを備える情報処理装置においては、情報処理装置の起動時に、内蔵ハードディスク装置などのストレージデバイスからプログラムを読み込むことが一般的に行われている。
【０００３】
また、情報処理装置の起動時に、外付記憶装置からプログラムを読み込む技術も提案されている（例えば、特許文献１参照）。この特許文献１に記載の技術においては、ＵＳＢストレージデバイスを外付けし、そこからプログラムを読み込んで情報処理装置を起動している。
【特許文献１】特開２００６−３３１３８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ＵＳＢ規格において、ＵＳＢストレージデバイスとの間でデータ伝送を行うための仕様は、内部的にはＳＣＳＩ（Small Computer System Interface）規格を踏襲し
た仕様になっている。そのため、情報処理装置が備えるＯＳ（Operating System）の中には、上記のようなＵＳＢストレージデバイスをＳＣＳＩデバイスと認識し、ＳＣＳＩデバイス相当のドライブ名を割り当てるものがある。
【０００５】
また、上記ＵＳＢストレージデバイスの他にも、ストレージデバイスの中には、ＳＣＳＩデバイスと認識されるものがある。代表的な例を挙げると、例えば、シリアルＡＴＡ（Advanced Technology Attachment）、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）１３９４等の規格は、いずれも内部的にはＳＣＳＩ規格を踏襲した仕様になっている。そのため、これらの規格に準拠したインターフェースを介して接続されたストレージデバイスはＳＣＳＩデバイスと認識され、ＳＣＳＩデバイス相当のドライブ名が割り当てられる。
【０００６】
さらに、ＳＣＳＩ−２やＳＣＳＩ−３などのＳＣＳＩ規格に準拠したストレージデバイスは、当然ながらＳＣＳＩデバイスと認識されるため、ＳＣＳＩデバイス相当のドライブ名が割り当てられる。
【０００７】
つまり、情報処理装置が備えるＯＳによっては、様々なストレージデバイスにＳＣＳＩデバイス相当のドライブ名が割り当てられることになる。なお、これらＳＣＳＩデバイスと認識されるストレージデバイスの内、上記のような「ＵＳＢ規格とは異なる規格のインターフェース」を介して接続されるストレージデバイスのことを、本明細書においては「非ＵＳＢストレージデバイス」と総称する。
【０００８】
しかしながら、上記のように様々なストレージデバイスにＳＣＳＩデバイス相当のドライブ名を割り当てる情報処理装置において、起動時に非ＵＳＢストレージデバイスからプログラムを読み込む構成を採用している場合、次のような問題を招くおそれがある。
【０００９】
すなわち、起動時に非ＵＳＢストレージデバイスから読み込むべきプログラムや、そのプログラムが格納されているファイルシステムは、通常、非ＵＳＢストレージデバイスに割り当てられるドライブ名を含むパス名などによって指定されている。
【００１０】
ここで、情報処理装置が、単一の非ＵＳＢストレージデバイスだけを備える構成を採用していれば、その非ＵＳＢストレージデバイスに割り当てられるＳＣＳＩデバイス相当のドライブ名は、常に同じものになる。したがって、この場合は、そのドライブ名を含むパス名を利用して、所期のファイルシステムやプログラムにアクセスすることができる。
【００１１】
しかし、上記のような情報処理装置が備えるＵＳＢポートにＵＳＢストレージデバイスが接続されていると、このＵＳＢストレージデバイスにもＳＣＳＩデバイス相当のドライブ名が割り当てられる。
【００１２】
そのため、上記のようなドライブ名を含むパス名でプログラムやファイルシステムを指定しておいても、そのドライブ名がＵＳＢストレージデバイスに割り当てられてしまう可能性がある。
【００１３】
例えば、非ＵＳＢストレージデバイスが故障した場合には、非ＵＳＢストレージデバイスが認識されないまま、ＵＳＢストレージデバイスが認識されてしまう。この場合、非ＵＳＢストレージデバイスに割り当てられるはずであったドライブ名が、ＵＳＢストレージデバイスに割り当てられてしまうことがある。
【００１４】
そして、この場合に、指定されたパス名と同一パス名となるプログラムやファイルシステムが、ＵＳＢストレージデバイス上にも存在していれば、ＵＳＢストレージデバイスからプログラムを読み込んでしまう。
【００１５】
したがって、非ＵＳＢストレージデバイスの故障時に、予期しないＵＳＢストレージデバイスから想定外のプログラムを読み込んでしまい、そのことが原因となって情報処理装置が不要な処理を実行してしまうおそれがあった。また、例えば、ＵＳＢストレージデバイス上に用意されたプログラムが悪意を持って用意された不正なプログラムであると、そのような不正なプログラムが実行されてしまうおそれがあった。
【００１６】
本発明は、上記問題を解決するためになされたものであり、その目的は、非ＵＳＢストレージデバイスおよびＵＳＢポートに接続されたＵＳＢストレージデバイスを、ＳＣＳＩデバイスと認識する情報処理装置において、起動時に非ＵＳＢストレージデバイスからプログラムを読み込む構成を採用している場合に、予期しないＵＳＢストレージデバイスから誤ってプログラムを読み込んでしまうのを防止することにある。
【課題を解決するための手段】
【００１７】
以下、本発明において採用した構成について説明する。
請求項１に記載の情報処理装置は、ＵＳＢ（Universal Serial Bus）規格とは異なる規格のインターフェースを介して接続された非ＵＳＢストレージデバイスと、ＵＳＢストレージデバイスを接続可能なＵＳＢポートとを備え、前記非ＵＳＢストレージデバイスおよび前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを、ＳＣＳＩ（Small Computer System Interface）デバイスと認識する情報処理装置であって、前記非ＵＳＢストレージデバイスないし前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを検出すると、検出したデバイスとの間でＳＣＳＩ規格に準拠した方式でデータ伝送を行うための論理的なデータ伝送用インターフェースを生成するデータ伝送用インターフェース生成手段と、前記データ伝送用インターフェース生成手段によって生成された前記データ伝送用インターフェースを検出する毎に、前記データ伝送用インターフェースを介してアクセス可能なデバイスに対して、ユニークなドライブ名を割り当てるドライブ名割り当て手段と、前記ドライブ名割り当て手段によって割り当てられたドライブ名が、あらかじめ取り決められたドライブ名となったデバイスを判定対象として、前記判定対象が前記非ＵＳＢストレージデバイスか否かを判定するデバイス種別判定手段と、前記デバイス種別判定手段によって前記判定対象が前記非ＵＳＢストレージデバイスであると判定された場合に、前記非ＵＳＢストレージデバイス上にある第１ファイルシステムを所定のマウントポイントにマウントする第１マウント手段と、前記第１マウント手段が前記第１ファイルシステムのマウントに成功したか否かを判定するマウント結果判定手段と、前記マウント結果判定手段によって前記第１ファイルシステムのマウントに成功したと判定された場合に、前記マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行する処理実行手段と、前記デバイス種別判定手段によって前記対象デバイスが前記非ＵＳＢストレージデバイスではないと判定された場合、または、前記マウント結果判定手段によって前記第１ファイルシステムのマウントに失敗したと判定された場合に、前記ＵＳＢポートに接続された前記ＵＳＢストレージデバイス上にある第２ファイルシステムを、前記所定のマウントポイントにマウントする第２マウント手段とを備え、前記処理実行手段は、前記第２マウント手段によって前記第２ファイルシステムが前記所定のマウントポイントにマウントされたら、前記マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行することを特徴とする。
【００１８】
この情報処理装置において、非ＵＳＢストレージデバイスとは、既に説明した通り、情報処理装置からＳＣＳＩデバイスと認識され、且つ、ＵＳＢ規格とは異なる規格のインターフェースを介して情報処理装置に接続されるストレージデバイスのことである。そして、この「ＵＳＢ規格とは異なる規格」としては、例えば、シリアルＡＴＡ、ＩＥＥＥ１３９４、ＳＣＳＩなどの規格を挙げることができる。
【００１９】
一方、この情報処理装置において、ＵＳＢストレージデバイスとは、ＵＳＢポートへ接続した際に、情報処理装置の制御部側からＵＳＢマスストレージクラスのデバイスとして認識されるものである。
【００２０】
以上のように構成された情報処理装置において、情報処理装置の起動時には、まず、データ伝送用インターフェース生成手段が、非ＵＳＢストレージデバイスないしＵＳＢポートに接続されたＵＳＢストレージデバイスを検出すると、検出したデバイスとの間でＳＣＳＩ規格に準拠した方式でデータ伝送を行うための論理的なデータ伝送用インターフェースを生成する。これにより、情報処理装置は、非ＵＳＢストレージデバイスおよびＵＳＢストレージデバイスの双方をＳＣＳＩデバイスとして認識したことになり、以降は、ＳＣＳＩ規格に準拠した方式でデータ伝送を行うことができるようになる。
【００２１】
なお、ここで生成される論理的なデータ伝送用インターフェースは、情報処理装置上のソフトウェアのみによって仮想的に生成されるＳＣＳＩインターフェース、情報処理装置に実装されたハードウェアと情報処理装置上のソフトウェアが協働してＳＣＳＩインターフェースとしての機能が実現されるもの、いずれであってもよい。
【００２２】
そして、このようなデータ伝送用インターフェース生成手段によってデータ伝送用インターフェースが生成されると、ドライブ名割り当て手段は、データ伝送用インターフェースを検出する毎に、データ伝送用インターフェースを介してアクセス可能なデバイスに対して、ユニークなドライブ名を割り当てる。
【００２３】
具体例を交えて説明すると、例えば情報処理装置のＯＳがＬｉｎｕｘ（登録商標）の場合、情報処理装置は、装置の起動時に非ＵＳＢストレージデバイスおよびＵＳＢストレージデバイスに対して、“ｓｄａ”，“ｓｄｂ”，“ｓｄｃ”，…といったドライブ名を割り当てる。これらのドライブ名割り当て処理は、情報処理装置が備えるＣＰＵ等を中心とする制御部によって実行されるものであり、これが本発明でいうドライブ名割り当て手段に相当する構成となる。
【００２４】
ただし、ドライブ名割り当て手段は、非ＵＳＢストレージデバイスおよびＵＳＢストレージデバイスを区別することなく、ＳＣＳＩデバイスとしてのドライブ名を割り当てる。そのため、ＵＳＢストレージデバイスが接続されていない場合に、非ＵＳＢストレージデバイスにあらかじめ取り決められたドライブ名が割り当てられるとしても、ＵＳＢストレージデバイスが接続されている場合には、非ＵＳＢストレージデバイスにあらかじめ取り決められたドライブ名が割り当てられるとは限らない。
【００２５】
特に、非ＵＳＢストレージデバイスが故障している場合等、情報処理装置が非ＵＳＢストレージデバイスを認識できない状況になると、あらかじめ取り決められたドライブ名がＵＳＢストレージデバイスに割り当てられる可能性がある。
【００２６】
そこで、上記情報処理装置において、デバイス種別判定手段は、ドライブ名割り当て手段によって割り当てられたドライブ名があらかじめ取り決められたドライブ名となったデバイスを判定対象として、判定対象が非ＵＳＢストレージデバイスか否かを判定する。このようなデバイス種別判定処理も、情報処理装置が備えるＣＰＵ等を中心とする制御部によって実行されるものであり、これが本発明でいうデバイス種別判定手段に相当する構成となる。
【００２７】
そして、第１マウント手段は、デバイス種別判定手段によって前記判定対象が非ＵＳＢストレージデバイスであると判定された場合に、非ＵＳＢストレージデバイス上にある第１ファイルシステムを所定のマウントポイントにマウントする。
【００２８】
これも具体例を交えて説明すると、例えば情報処理装置のＯＳがＬｉｎｕｘ（登録商標）の場合、ドライブ名“ｓｄａ”が割り当てられた非ＵＳＢストレージデバイス上にあるファイルシステム名は、“ｓｄａ１”，“ｓｄａ２”，“ｓｄａ３”，…と決められている。
【００２９】
そのため、情報処理装置において、非ＵＳＢストレージデバイス上に存在するファイルシステムが、設計通りに用意されている場合、ドライブ名（例えば“ｓｄａ”）を利用して第１ファイルシステムを（例えば“ｓｄａ１”であると）特定できる。そして、第１ファイルシステムを特定できれば、その第１ファイルシステム（例えば“ｓｄａ１”）を所定のマウントポイント（例えば“／ｍａｉｎ”）にマウントすることもできる。このようなマウント処理も、情報処理装置が備えるＣＰＵ等を中心とする制御部によって実行されるものであり、これが本発明でいう第１マウント手段に相当する構成となる。
【００３０】
続いて、情報処理装置は、第１ファイルシステムのマウントに成功したか否かを判定する処理を実行する。このマウント結果判定処理も、情報処理装置が備えるＣＰＵ等を中心とする制御部によって実行されるものであり、これが本発明でいうマウント結果判定手段に相当する構成となる。
【００３１】
この判定の結果、マウントに成功したと判定された場合、情報処理装置の制御部は、マウントポイント下にある第１ファイルシステム上のファイル群にアクセスできる状態となる。
【００３２】
そこで、情報処理装置の制御部は、第１マウント手段によって第１ファイルシステムがマウントポイントにマウントされたら、マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行する。この処理も、情報処理装置が備えるＣＰＵ等を中心とする制御部によって実行されるものであり、これが本発明でいう処理実行手段に相当する。
【００３３】
以上説明したように作動する情報処理装置によれば、あらかじめ取り決められたドライブ名となったデバイスが、非ＵＳＢストレージデバイスであった場合、第１マウント手段は、その非ＵＳＢストレージデバイス上にある第１ファイルシステムをマウントし、第１ファイルシステムから各種処理が起動される。
【００３４】
一方、あらかじめ取り決められたドライブ名がＵＳＢストレージデバイスに付与されてしまった場合、第１マウント手段は、そのＵＳＢストレージデバイス上にあるファイルシステムをマウントすることはない。
【００３５】
したがって、あらかじめ取り決められたドライブ名が、想定外のＵＳＢストレージデバイスに付与されたとしても、そのような想定外のＵＳＢストレージデバイスから誤ってプログラムを読み込んでしまうといったトラブルを招くことがない。
【００３６】
ところで、以上説明した情報処理装置において、あらかじめ取り決められたドライブ名が非ＵＳＢストレージデバイスに割り当てられなかった場合、情報処理装置に何らかの問題が生じている可能性がある。その場合、そのまま情報処理装置の起動を中止することは可能であるが、そのような対処を行った場合、マウントポイント下にあるファイル群からプログラムを読み込むことができず、情報処理装置は、当該プログラムに基づく処理を実行することができなくなる。
【００３７】
その点、本発明の情報処理装置は、非ＵＳＢストレージデバイスからの起動（以下、通常起動と称する。）に失敗した場合に、ＵＳＢストレージデバイスからの起動（以下、緊急起動と称する。）を行うように構成されているので、情報処理装置の信頼性向上を図ることもできる。
【００３８】
すなわち、本発明の情報処理装置は、前記デバイス種別判定手段によって前記対象デバイスが前記非ＵＳＢストレージデバイスではないと判定された場合、または、前記マウント結果判定手段によって前記第１ファイルシステムのマウントに失敗したと判定された場合に、前記ＵＳＢポートに接続された前記ＵＳＢストレージデバイス上にある第２ファイルシステムを、前記所定のマウントポイントにマウントする第２マウント手段を備え、前記処理実行手段は、前記第２マウント手段によって前記第２ファイルシステムが前記所定のマウントポイントにマウントされたら、前記マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行するように構成されている。
【００３９】
この情報処理装置においては、あらかじめ取り決められたドライブ名となったデバイスが、非ＵＳＢストレージデバイスではない場合、または第１ファイルシステムのマウントに失敗した場合であっても、第２マウント手段は、ＵＳＢストレージデバイス上にある第２ファイルシステムをマウントする。なお、このようなマウント処理も、情報処理装置が備えるＣＰＵ等を中心とする制御部によって実行されるものであり、これが本発明でいう第２マウント手段に相当する。
【００４０】
このように構成された情報処理装置によれば、通常は、第１ファイルシステムから各種処理を起動することができる一方、何らかの原因（例えば故障等）により、第１ファイルシステムマウントに失敗した場合は、第２ファイルシステムから緊急時用の代替処理を起動することができる。
【００４１】
さて、上記のように、緊急起動時にＵＳＢストレージデバイス上の第２ファイルシステムから各種処理を起動できるように構成する場合、複数のＵＳＢストレージデバイスが存在すると、それら複数のＵＳＢストレージデバイスを認識する順序も、情報処理装置のＯＳ任せになる。そのため、認識順によっては、ドライブ名が入れ替わってしまうこともある。特に、抜き差しが容易なＵＳＢストレージデバイスの場合、情報処理装置への追加・削除が行われる可能性も高く、それに伴ってドライブ名が変動する可能性も高い。
【００４２】
そのため、ＵＳＢストレージデバイスに割り当てられるドライブ名を勝手に決めつけて、それを利用したパス名で、緊急起動時にアクセスしたいファイルシステムやファイルを指定しておいても、ドライブ名が変動してしまうと、ファイルシステムやファイルにアクセスできなくなってしまうおそれがある。
【００４３】
そこで、このような問題に対処するには、次のような構成を採用するとよい。すなわち、本発明の情報処理装置は、前記ＵＳＢポートが複数設けられており、前記複数のＵＳＢポートの内、少なくとも１つのＵＳＢポートは管理者だけが利用可能な管理者用ＵＳＢポート、残りのＵＳＢポートは管理者以外でも利用可能な一般用ＵＳＢポートとされ、しかも、前記管理者用ＵＳＢポートに接続された前記ＵＳＢストレージデバイスに対して前記ドライブ名割り当て手段が割り当てた前記ドライブ名を取得するドライブ名取得手段を備え、前記第２マウント手段は、前記ドライブ名取得手段によって取得された前記ドライブ名を利用して、前記管理者用ＵＳＢポートに接続された前記ＵＳＢストレージデバイス上にある前記第２ファイルシステムを特定するとともに、当該特定した前記第２ファイルシステムを、前記所定のマウントポイントにマウントする、という構成を採用するとよい。
【００４４】
この情報処理装置においては、ドライブ名取得手段が、管理者用ＵＳＢポートに接続されたＵＳＢストレージデバイスに対してドライブ名割り当て手段が割り当てたドライブ名を取得する。このようなドライブ名取得手段を採用しているのは、ドライブ名割り当て手段が、管理者用ＵＳＢポートに接続されたＵＳＢストレージデバイスに対してどのようなドライブ名を割り当てるのかが不定だからである。
【００４５】
これも具体例を交えて説明すると、例えば情報処理装置のＯＳがＬｉｎｕｘ（登録商標）の場合、ＵＳＢストレージデバイスには、上述の通り、ドライブ名割り当て手段により、“ｓｄａ”，“ｓｄｂ”，“ｓｄｃ”，…といったドライブ名が割り当てられる。
【００４６】
ここで、上記情報処理装置においては、管理者用ＵＳＢポートにＵＳＢストレージデバイスが接続され、そのＵＳＢストレージデバイス上に第２ファイルシステムが用意してある。そのため、他にＵＳＢストレージデバイスが存在しない場合に限れば、例えば、管理者用ＵＳＢポートに接続されたＵＳＢストレージデバイスのドライブ名は“ｓｄａ”に決まる。また、それ故、第２ファイルシステムは、例えば１番目のファイルシステムがターゲットの場合、“ｓｄａ１”となるはずであり、第２ファイルシステムを特定することもできる。
【００４７】
しかし、一般用ＵＳＢポートにもＵＳＢストレージデバイスが接続されている場合には、上述の“ｓｄａ”，“ｓｄｂ”，“ｓｄｃ”，…といったドライブ名の内、どれが管理者用ＵＳＢポートに接続されたＵＳＢストレージデバイスに割り当てられるかが不定となる。もちろん、どれが一般用ＵＳＢポートに接続されたＵＳＢストレージデバイスに割り当てられるかも不定である。
【００４８】
そこで、本発明の情報処理装置では、デバイス種別判定手段によって前記対象デバイスが非ＵＳＢストレージデバイスではないと判定された場合、または、マウント結果判定手段によって第１ファイルシステムのマウントに失敗したと判定された場合、まず、管理者用ＵＳＢポートに接続されたＵＳＢストレージデバイスに対してドライブ名割り当て手段が割り当てたドライブ名を取得する処理を実行するのである。この処理も、情報処理装置が備えるＣＰＵ等を中心とする制御部によって実行されるものであり、これが本発明でいうドライブ名取得手段に相当する。
【００４９】
このようなドライブ名取得手段により、管理者用ＵＳＢポートに接続されたＵＳＢストレージデバイスのドライブ名“ｓｄａ”が取得できれば、例えば１番目のファイルシステムがターゲットの場合、第２ファイルシステムは“ｓｄａ１”であると特定できる。また、ドライブ名“ｓｄｂ”が取得できれば、例えば１番目のファイルシステムがターゲットの場合、第２ファイルシステムは“ｓｄｂ１”であると特定できることになる。
【００５０】
したがって、情報処理装置は、上記のように特定された第２ファイルシステム（例えば“ｓｄａ１”）を所定のマウントポイント（例えば“／ｍａｉｎ”）にマウントする処理を実行することができるようになる。
【００５１】
そして、情報処理装置の制御部は、第２マウント手段によって第２ファイルシステムがマウントポイントにマウントされたら、マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行する。この処理は、第１ファイルシステムをマウントした場合と同等な処理であり、既に説明した通り、本発明でいう処理実行手段に相当する。
【００５２】
以上説明したような情報処理装置によれば、複数のＵＳＢストレージデバイスが存在すると、それらのドライブ名は不定となっているものの、ドライブ名取得手段によって、管理者用ＵＳＢポートに接続されたＵＳＢストレージデバイスに割り当てられたドライブ名を取得できる。また、第２マウント手段は、ドライブ名取得手段によって取得されたドライブ名を利用して、管理者用ＵＳＢポートに接続されたＵＳＢストレージデバイス上にある第２ファイルシステムを適切に特定することができる。
【００５３】
そのため、第２マウント手段は、適切な第２ファイルシステムを所定のマウントポイントにマウントすることができ、管理者用ＵＳＢポート以外に接続されたＵＳＢストレージデバイス上のファイルシステムを誤ってマウントしてしまうことはない。
【００５４】
したがって、適切な第２ファイルシステムがマウントされた後、処理実行手段は、マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行することができる。よって、必要なファイルが読み込めないとか、不適切なファイルを読み込んでしまうといったトラブルを、未然に防止することができる。
【００５５】
次に、本発明の情報処理装置においては、前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを検出すると、前記データ伝送用インターフェースに関する情報と前記ＵＳＢストレージデバイスに関する情報とにアクセスするための情報公開用インターフェースを生成する情報公開用インターフェース生成手段を備え、前記ドライブ名割り当て手段は、前記データ伝送用インターフェースを介して前記ＵＳＢストレージデバイスにアクセスする際には、アクセス対象となる前記ＵＳＢストレージデバイスに対して割り当てた前記ドライブ名を、前記データ伝送用インターフェースに伝達することにより、前記データ伝送用インターフェースが備える記憶領域に前記ドライブ名を保存し、前記ドライブ名取得手段は、前記情報公開用インターフェースを介して前記データ伝送用インターフェースが備える記憶領域に格納された情報を読み出し、その読み出した情報中から前記管理者用ＵＳＢポートと前記ドライブ名との対応関係を示す情報を取得する、という構成を採用してもよい。
【００５６】
このように構成された情報処理装置によれば、データ伝送用インターフェースを介してＵＳＢストレージデバイスにアクセスする際に、ＵＳＢストレージデバイスに割り当てられたドライブ名が、データ伝送用インターフェースの備える記憶領域に保存される。
【００５７】
そのため、ドライブ名取得手段が、情報公開用インターフェースを介して情報を取得すると、データ伝送用インターフェースおよびＵＳＢストレージデバイスに関する情報に加え、ドライブ名の情報をも取得することができる。これにより、管理者用ＵＳＢポートとドライブ名との対応関係を容易に把握することができる。
【００５８】
より具体的な例を交えて説明すると、例えば情報処理装置のＯＳがＬｉｎｕｘ（登録商標）の場合、ＵＳＢストレージデバイスを検出したときには、ＵＳＢストレージデバイスへのアクセス時に利用する仮想的なデータ伝送用インターフェース（ＳＣＳＩホストアダプタ）が生成される。
【００５９】
また、データ伝送用インターフェースおよびＵＳＢストレージデバイスに関する情報にアクセスするための情報公開用インターフェース（／ｐｒｏｃファイルシステム下にある擬似的なファイル）が生成される。これらを生成する処理は、ＵＳＢストレージデバイス毎に実行される。
【００６０】
そして、上述したドライブ名割り当て手段は、仮想的なデータ伝送用インターフェースを検出する毎に、そのデータ伝送用インターフェースを介してアクセス可能なＵＳＢストレージデバイスに対して、ドライブ名を割り当てる処理を実行する。
【００６１】
ただし、一般的なＬｉｎｕｘ（登録商標）の場合、データ伝送用インターフェースを介してＵＳＢストレージデバイスにアクセスする際、アクセス対象となるＵＳＢストレージデバイスに対して割り当てたドライブ名が、データ伝送用インターフェースに伝達されることはない。それ故、データ伝送用インターフェースが備える記憶領域にドライブ名が保存されることもない。
【００６２】
そのため、一般的なＬｉｎｕｘ（登録商標）の場合、ドライブ名に基づいて、それに対応するデータ伝送用インターフェースは特定できるものの、データ伝送用インターフェースに基づいて、それに対応するドライブ名を特定することはできない仕様となっている。これは、一般的なＬｉｎｕｘ（登録商標）の場合、本発明でいう管理者用ＵＳＢポートに対応するデータ伝送用インターフェースに基づいて、それに対応するＵＳＢストレージデバイスのドライブ名（例えば“ｓｄａ”）を特定できない仕様であることを意味する。
【００６３】
この点、上記のような情報処理装置の場合は、上述の通り、データ伝送用インターフェースを介してＵＳＢストレージデバイスにアクセスする際、アクセス対象となるＵＳＢストレージデバイスに対して割り当てたドライブ名は、データ伝送用インターフェースが備える記憶領域に保存される。
【００６４】
したがって、管理者用ＵＳＢポートに対応するデータ伝送用インターフェースが備える記憶領域から、その記憶領域に保存されたドライブ名を読み取って、そのドライブ名に基づいて、所期のドライブ名ないしファイルシステム名を特定することができるのである。
【００６５】
ちなみに、一般的なＳＣＳＩインターフェースの場合は、単一のＳＣＳＩインターフェースに対して複数のストレージデバイスが接続される可能性がある。そのため、上記のようにＳＣＳＩインターフェースが備える記憶領域にドライブ名を保存しても、データ伝送用インターフェースとストレージデバイスとの１対１の関係を特定するには至らない。
【００６６】
しかし、ＵＳＢストレージデバイスの接続に伴って生成される仮想的なデータ伝送用インターフェースは、データ伝送用インターフェースとＵＳＢストレージデバイスとが１対１の関係になっている。そのため、上記のようにデータ伝送用インターフェースが備える記憶領域にドライブ名を保存すれば、そのドライブ名が「１対１の関係にあるＵＳＢストレージデバイス」に割り当てられたものであると特定できる。
【００６７】
次に、本発明の情報処理装置において、前記ドライブ名割り当て手段は、前記ＵＳＢストレージデバイスに対して前記ドライブ名を割り当てた後、前記ＵＳＢストレージデバイスの容量に関する情報を取得するため、ＳＣＳＩ規格で規定されたＳＣＳＩコマンドの１種であるリードキャパシティコマンドを発行しており、当該リードキャパシティコマンドに対応する処理の中で、前記ドライブ名が前記データ伝送用インターフェースに伝達される、という構成を採用してもよい。
【００６８】
この情報処理装置において、ＵＳＢストレージデバイスの容量に関する情報の取得は、デバイス認識後に必須の処理であり、内部的にＳＣＳＩ規格に準拠した仕様となっているＵＳＢストレージデバイスの場合、必ずリードキャパシティコマンドが発行される。
【００６９】
したがって、リードキャパシティコマンドが発行された際に実行される処理の中で、ドライブ名がデータ伝送用インターフェースに伝達されれば、例えば、ドライブ名をデータ伝送用インターフェースに伝達するための専用コマンドを新設するといった対処をしなくても済む。また、リードキャパシティコマンドを発行していた既存の処理については、何ら改修しなくてもリードキャパシティコマンドを発行するだけで、新たな機能が付加されることになる。
【００７０】
さらに、本発明の情報処理装置において、前記ドライブ名取得手段は、前記情報公開用インターフェースを介して情報を取得可能なすべての前記ＵＳＢストレージデバイスについて、順次情報の読み出しを繰り返すとともに、読み出した情報中に含まれるＵＳＢポートに関する情報があらかじめ決められた前記管理者用ＵＳＢポートに該当する情報か否かを判断し、前記管理者用ＵＳＢポートに該当する情報であった場合に、読み出した情報中に含まれる前記ドライブ名を取得する、という構成を採用してもよい。
【００７１】
このように構成された情報処理装置によれば、複数のＵＳＢストレージデバイスが存在していても、それらを順に処理対象として情報を読み出しながら、管理者用ＵＳＢポートに対応するドライブ名を選び出すことができる。
【００７２】
加えて、本発明の情報処理装置において、前記管理者用ＵＳＢポートは、情報処理装置の筐体内部に収容されていて、前記筐体が備えるパネルを開放したときにＵＳＢデバイスを抜き挿し可能となるものであり、前記一般用ＵＳＢポートは、前記筐体の外部に露出していて、前記パネルを開放しなくてもＵＳＢデバイスを抜き挿し可能となっている、という構成を採用してもよい。
【００７３】
このように構成された情報処理装置によれば、管理者用ＵＳＢポートは、パネルを開放しないとＵＳＢデバイスを抜き挿しできない場所にあるので、管理者以外の利用者が誤って管理者用ＵＳＢポートにＵＳＢデバイスを装着してしまうのを未然に防止することができる。
【００７４】
さらに、本発明の情報処理装置は、ＵＳＢ（Universal Serial Bus）規格とは異なる規格のインターフェースを介して接続された非ＵＳＢストレージデバイスと、ＵＳＢストレージデバイスを接続可能なＵＳＢポートとを備え、前記非ＵＳＢストレージデバイスおよび前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを、ＳＣＳＩ（Small Computer System Interface）デバイスと認識する情報処理装置であって、前記非ＵＳＢストレージデバイスないし前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを検出すると、検出したデバイスとの間でＳＣＳＩ規格に準拠した方式でデータ伝送を行うための論理的なデータ伝送用インターフェースを生成するデータ伝送用インターフェース生成手段と、前記データ伝送用インターフェース生成手段によって生成された前記データ伝送用インターフェースを検出する毎に、前記データ伝送用インターフェースを介してアクセス可能なデバイスに対して、ユニークなドライブ名を割り当てるドライブ名割り当て手段と、
前記ドライブ名割り当て手段によって割り当てられたドライブ名が、あらかじめ取り決められたドライブ名となったデバイスを判定対象として、前記判定対象が前記非ＵＳＢストレージデバイスか否かを判定するデバイス種別判定手段と、前記デバイス種別判定手段によって前記判定対象が前記非ＵＳＢストレージデバイスであると判定された場合に、前記非ＵＳＢストレージデバイス上にある第１ファイルシステムを所定のマウントポイントにマウントする第１マウント手段と、前記第１マウント手段が前記第１ファイルシステムのマウントに成功したか否かを判定するマウント結果判定手段と、前記マウント結果判定手段によって前記第１ファイルシステムのマウントに成功したと判定された場合に、前記マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行する処理実行手段と、前記ＵＳＢポートに接続されたＵＳＢストレージデバイスを検出すると、前記データ伝送用インターフェースに関する情報と前記ＵＳＢストレージデバイスに関する情報とにアクセスするための情報公開用インターフェースを生成する情報公開用インターフェース生成手段を備え、前記ドライブ名割り当て手段は、前記データ伝送用インターフェースを介して前記ＵＳＢストレージデバイスにアクセスする際には、アクセス対象となる前記ＵＳＢストレージデバイスに対して割り当てた前記ドライブ名を、前記データ伝送用インターフェースに伝達することにより、前記データ伝送用インターフェースが備える記憶領域に前記ドライブ名を保存し、前記デバイス種別判定手段は、前記情報公開用インターフェースを介して前記データ伝送用インターフェースが備える記憶領域に格納された情報を読み出し、その読み出した情報中から前記ＵＳＢポートと前記ドライブ名との対応関係を示す情報を取得し、取得した情報中に前記判定対象についての情報が存在しない場合に、前記判定対象が前記非ＵＳＢストレージデバイスであると判定することを特徴とする。
【００７５】
このように構成された情報処理装置において、データ伝送用インターフェースを介してＵＳＢストレージデバイスにアクセスする際には、ＵＳＢストレージデバイスに割り当てられたドライブ名が、データ伝送用インターフェースの備える記憶領域に保存される。
【００７６】
そのため、デバイス種別判定手段が、情報公開用インターフェースを介して情報を取得すると、データ伝送用インターフェースおよびＵＳＢストレージデバイスに関する情報に加え、ドライブ名の情報をも取得することができ、ＵＳＢストレージデバイスとドライブ名との対応関係がわかる。
【００７７】
したがって、取得した情報中に判定対象についての情報が存在しない場合に、判定対象が非ＵＳＢストレージデバイスであると判定することが可能となる。
また、本発明の情報処理装置において、前記ドライブ名割り当て手段は、前記ＵＳＢストレージデバイスに対して前記ドライブ名を割り当てた後、前記ＵＳＢストレージデバイスの容量に関する情報を取得するため、ＳＣＳＩ規格で規定されたＳＣＳＩコマンドの１種であるリードキャパシティコマンドを発行しており、当該リードキャパシティコマンドに対応する処理の中で、前記ドライブ名が前記データ伝送用インターフェースに伝達される、という構成を採用してもよい。
【００７８】
この情報処理装置において、ＵＳＢストレージデバイスの容量に関する情報の取得は、デバイス認識後に必須の処理であり、内部的にＳＣＳＩ規格に準拠した仕様となっているＵＳＢストレージデバイスの場合、必ずリードキャパシティコマンドが発行される。
【００７９】
したがって、リードキャパシティコマンドが発行された際に実行される処理の中で、ドライブ名がデータ伝送用インターフェースに伝達されれば、例えば、ドライブ名をデータ伝送用インターフェースに伝達するための専用コマンドを新設するといった対処をしなくても済む。また、リードキャパシティコマンドを発行していた既存の処理については、何ら改修しなくてもリードキャパシティコマンドを発行するだけで、新たな機能が付加されることになる。
【発明を実施するための最良の形態】
【００８０】
次に、本発明の実施形態について一例を挙げて説明する。
［情報処理装置の内部構造］
図１は、本発明の一実施形態として例示する情報処理装置１の内部構造を示すブロック図である。
【００８１】
以下に説明する情報処理装置１は、電源投入後に自動的に所定のプログラム群を実行することで、この情報処理装置１が備える特定の機能が作動するように構成された特定機能専用の装置である。より具体的には、本実施形態の場合、情報処理装置１はカラオケコマンダーとして構成されたものであり、電源投入後に自動的に所定のプログラム群を実行することで、カラオケコマンダーとして各種機能が作動するように構成されている。この点で、実行対象となるプログラムが利用者の操作に応じて任意に変わり得るパーソナルコンピュータのような汎用的な装置とは異なるものである。
【００８２】
この情報処理装置１は、ＣＰＵ１１、ＲＯＭ１３、ＲＡＭ１５、ハードディスク装置１７、およびＵＳＢインターフェース２０などを備えている。ＵＳＢインターフェース２０は、１つの内部ＵＳＢポート２１と、２つの外部ＵＳＢポート２２，２３とを備え、内部ＵＳＢポート２１には、ＵＳＢストレージデバイス２５が接続されている。すなわち、この情報処理装置１には、ハードディスク装置１７およびＵＳＢストレージデバイス２５、これら２種類のストレージデバイスが内蔵されている。
【００８３】
これらの内、ハードディスク装置１７は、シリアルＡＴＡ方式の内蔵インターフェースを介して接続され、情報処理装置１の起動時には、通常、ハードディスク装置１７に格納されたプログラムが読み込まれる仕組みになっている。また、詳しくは後述するが、ハードディスク装置１７からプログラムを読み込むことができない状況に陥った場合、代替手段として、ＵＳＢストレージデバイス２５に格納されたプログラムが読み込まれる仕組みになっている。すなわち、ハードディスク装置１７は通常の起動時に利用され、ＵＳＢストレージデバイス２５は通常の起動ができない緊急時に利用される。
【００８４】
また、この情報処理装置１は筐体３１を備え、上記ＣＰＵ１１、ＲＯＭ１３、ＲＡＭ１５、およびハードディスク装置１７等は筐体３１の内部に収納されている。また、ＵＳＢインターフェース２０の内、内部ＵＳＢポート２１は筐体３１の内部に収納される一方、外部ＵＳＢポート２２，２３は筐体３１の外部に露出する状態になっている。
【００８５】
筐体３１には、開口部３３が設けられていて、この開口部３３はパネル３５によって塞がれている。このパネル３５は、固定具３７によって筐体３１に固定され、この固定具３７は、専用治具（図示略）を利用した場合にのみ取り外すことができる構造になっている。
【００８６】
この固定具３７を取り外してパネル３５を開放できるのは、専用治具を所持する管理者だけであり、筐体３１に内蔵された機器に直接触れることができるのは管理者のみである。したがって、内部ＵＳＢポート２１に接続されたＵＳＢストレージデバイス２５の抜き挿しなども、管理者しか実施することができない。一方、外部ＵＳＢポート２２，２３は、上述の通り、筐体３１の外部に露出しており、管理者以外の一般利用者であっても任意に各種ＵＳＢデバイスを抜き挿しすることができる。
【００８７】
つまり、内部ＵＳＢポート２１は、管理者だけが利用可能な管理者用ＵＳＢポートとされており、外部ＵＳＢポート２２，２３は、管理者以外でも利用可能な一般用ＵＳＢポートとされているのである。
【００８８】
さらに、これらのハードウェアを制御するため、情報処理装置１には、ＯＳが搭載されている。本実施形態において、ＯＳとしてはＬｉｎｕｘ（登録商標）が搭載されている。ただし、一般的なＬｉｎｕｘ（登録商標）が備える機能のみでは、本発明を実施する上で必要となる機能が十分に揃っていないため、一部独自の機能を追加してある。この追加機能の具体的な内容に関しては後から詳述するが、その他一般的なＬｉｎｕｘ（登録商標）と差異のない機能については、その説明を省略する。
【００８９】
［情報処理装置の起動時に実行される処理］
次に、上記情報処理装置１の起動時に実行される処理について説明する。
図２は、情報処理装置１の電源ＯＮに伴って実行される処理のフローチャートである。
【００９０】
情報処理装置１の電源がＯＮにされると、情報処理装置１では、まず、ＯＳのカーネルがＣＰＵ１１のメモリにロードされる（Ｓ１０５）。ＯＳのカーネルはＲＯＭ１３内に格納されていて、Ｓ１０５では、ＣＰＵ１１がＲＡＭ１５の一部をＲＡＭディスクとして確保し、このＲＡＭディスクにカーネルをロードする。これにより、このＲＡＭディスクがルートボリュームとなってＯＳが起動し、ＯＳの備える少なくとも一部の機能が作動を開始する。
【００９１】
続いて、情報処理装置１では、ＳＣＳＩドライブ接続監視が開始される（Ｓ１１５）。本実施形態の場合、このＳ１１５では、ＳＣＳＩドライブ接続監視プロセスが起動され、以降、このプロセスが常駐することにより、情報処理装置１の電源がＯＦＦにされるまで、概ね６秒周期でＳＣＳＩドライブの接続／切断が監視される。
【００９２】
このＳＣＳＩドライブ接続監視の処理内容は、詳しくは図３に示すような処理となる。
すなわち、図３に示す「ＯＳ内ＳＣＳＩドライブ接続監視」を開始すると、情報処理装置１は、まず、「ＳＣＳＩ−Ｉ／Ｆ接続テーブル（以下、ＳＩＴＢと称する。）」の初期化を行う（Ｓ２０５）。ＳＩＴＢは、情報処理装置１において現在接続中のＳＣＳＩインターフェース（以下、ＳＣＳＩ−Ｉ／Ｆと称する。）を登録するためのテーブルである。Ｓ２０５では、例えばハードウェアとして装着されているＳＣＳＩ−Ｉ／Ｆが存在する場合に、データ伝送用インターフェースに相当するＳＣＳＩ−Ｉ／Ｆの情報をＳＩＴＢに登録する処理などが実行される。
【００９３】
そして、Ｓ２０５で登録したＩ／Ｆに接続されているドライブが存在する場合は、そのドライブをシステムに登録する（Ｓ２１０）。このＳ２１０により、登録されたドライブには“ｓｄａ”，“ｓｄｂ”，…といったドライブ名が割り当てられる。
【００９４】
続いて、情報処理装置１は、一定時間（例えば６秒）が経過したか否かを判断し（Ｓ２１５）、経過していなければ（Ｓ２１５：いいえ）、Ｓ２１５へと戻ることにより、時間経過を待つ。そして、一定時間が経過したら（Ｓ２１５：はい）、現在接続中のＳＣＳＩ−Ｉ／Ｆを確認する（Ｓ２２０）。
【００９５】
その後、情報処理装置１は、新しく接続されたＳＣＳＩ−Ｉ／Ｆの有無を判断し（Ｓ２２５）、新しく接続されたＳＣＳＩ−Ｉ／Ｆが無い場合は（Ｓ２２５：無い）、今回切断されたＳＣＳＩ−Ｉ／Ｆの有無を判断する（Ｓ２３０）。そして、今回切断されたＳＣＳＩ−Ｉ／Ｆが無い場合は（Ｓ２３０：無い）、Ｓ２１５へ戻る。これにより、Ｓ２１５〜Ｓ２３０は、概ね６秒ごとに繰り返し実行されることになる。
【００９６】
そして、このようなＳ２１５〜Ｓ２３０の繰り返し処理が実行される中で、新しく接続されたＳＣＳＩ−Ｉ／Ｆが有った場合（Ｓ２２５：有る）、情報処理装置１は、新規ＳＣＳＩ−Ｉ／Ｆを上述のＳＩＴＢに登録し、そのＩ／Ｆに接続されているドライブをシステムに登録する（Ｓ２３５）。
【００９７】
このＳ２３５により、登録されたドライブには“ｓｄａ”，“ｓｄｂ”，…といったドライブ名が割り当てられる。また、ドライブの登録時には、そのドライブの容量に関する情報も必要となるので、その情報を取得するため、ＳＣＳＩ規格で規定されたＳＣＳＩコマンドの１種であるリードキャパシティコマンドを発行する。
【００９８】
このとき、この情報処理装置１では、リードキャパシティコマンドの発行対象となったドライブ名が、ＳＣＳＩ−Ｉ／Ｆ毎に用意された記憶領域に格納される。このような処理は、一般的なＬｉｎｕｘ（登録商標）では実施されていない特殊な処理であり、この情報処理装置１特有の処理である。
【００９９】
ちなみに、一つのＳＣＳＩ−Ｉ／Ｆに複数のＳＣＳＩドライブが接続されている場合、上述のリードキャパシティコマンドは、複数のＳＣＳＩドライブに対して順に発行されてゆく。そのため、リードキャパシティコマンドの発行対象となったドライブ名も、順に変わってゆくので、ＳＣＳＩ−Ｉ／Ｆ毎に用意された記憶領域には、最後にリードキャパシティコマンドの発行対象となったドライブ名が格納されることになる。
【０１００】
ただし、一つのＳＣＳＩ−Ｉ／Ｆに一つのＳＣＳＩドライブが接続されている場合であれば、上述のリードキャパシティコマンドは、一つのＳＣＳＩドライブに対してしか発行されない。そのため、リードキャパシティコマンドの発行対象となるドライブ名が変わることはなく、ＳＣＳＩ−Ｉ／Ｆ毎に用意された記憶領域には、そのＳＣＳＩ−Ｉ／Ｆに接続されたドライブ名が格納されることになる。
【０１０１】
さて、Ｓ２３５を終えたら、情報処理装置１は、今回接続の全ＳＣＳＩ−Ｉ／Ｆの処理が終了したか否かを判断し（Ｓ２４０）、終了していなければ（Ｓ２４０：いいえ  次のＩ／Ｆへ）、Ｓ２３５へと戻ることにより、残りのＳＣＳＩ−Ｉ／ＦについてもＳ２３５を繰り返す。そして、今回接続の全ＳＣＳＩ−Ｉ／Ｆの処理が終了したら（Ｓ２４０：はい）、Ｓ２３０へと進む。
【０１０２】
また、Ｓ２１５〜Ｓ２３０の繰り返し処理が実行される中で、今回切断されたＳＣＳＩ−Ｉ／Ｆが有った場合（Ｓ２３０：有る）、情報処理装置１は、切断ＳＣＳＩ−Ｉ／ＦをＳＩＴＢから削除し、そのＩ／Ｆに接続されているドライブをシステムから削除する（Ｓ２４５）。このＳ２４５により、削除されたドライブに対応するドライブ名はシステムから消滅する。
【０１０３】
そして、情報処理装置１は、今回切断の全ＳＣＳＩ−Ｉ／Ｆの処理が終了したか否かを判断し（Ｓ２５０）、終了していなければ（Ｓ２５０：いいえ  次のＩ／Ｆへ）、Ｓ２４５へと戻ることにより、残りのＳＣＳＩ−Ｉ／ＦについてもＳ２４５を繰り返す。そして、今回切断の全ＳＣＳＩ−Ｉ／Ｆの処理が終了したら（Ｓ２４０：はい）、Ｓ２１５へと戻る。
【０１０４】
さて、以上説明したような処理がＳ１１５によって開始される処理となるが、ここで再び図２に戻り、Ｓ１１５を終えた時点からの説明を続ける。Ｓ１１５を終えると、情報処理装置１では、シリアルＡＴＡ方式で接続されたハードディスク装置１７が正常に機能していれば（Ｓ１１７：はい）、ハードディスク装置１７がＳＣＳＩドライブと認識される（Ｓ１１８）。このＳ１１８の段階で、ハードディスク装置１７にはドライブ名が割り当てられ、本実施形態の場合、ハードディスク装置１７のドライブ名は“ｓｄａ”となる。なお、ハードディスク装置１７が正常に機能していない場合（Ｓ１１７：いいえ）、ハードディスク装置１７がＳＣＳＩドライブと認識されないままとなる。
【０１０５】
また、情報処理装置１では、ＵＳＢ接続監視が開始される（Ｓ１２０）。本実施形態の場合、このＳ１２０では、ＵＳＢ接続監視プロセスが起動され、以降、このプロセスが常駐することにより、情報処理装置１の電源がＯＦＦにされるまで、概ね１００ミリ秒周期でＵＳＢデバイスの接続／切断が監視される。
【０１０６】
このＵＳＢ接続監視の処理内容は、詳しくは図４に示すような処理となる。
すなわち、図３に示す「ＯＳ内ＵＳＢ接続監視」を開始すると、情報処理装置１は、まず、「ＵＳＢデバイス接続テーブル（以下、ＵＤＴＢと称する。）」の初期化を行う（Ｓ３０５）。ＵＤＴＢは、情報処理装置１において現在接続中のＵＳＢデバイスを登録するためのテーブルである。なお、Ｓ３０５では、ＵＳＢデバイスは何も接続されていない状態として扱われる。
【０１０７】
続いて、情報処理装置１は、一定時間（例えば１００ミリ秒）が経過したか否かを判断し（Ｓ３１５）、経過していなければ（Ｓ３１５：いいえ）、Ｓ３１５へと戻ることにより、時間経過を待つ。そして、一定時間が経過したら（Ｓ３１５：はい）、現在接続中のＵＳＢデバイスを確認する（Ｓ３２０）。
【０１０８】
その後、情報処理装置１は、新しく接続されたＵＳＢデバイスの有無を判断し（Ｓ３２５）、新しく接続されたＵＳＢデバイスが無い場合は（Ｓ３２５：無い）、今回切断されたＵＳＢデバイスの有無を判断する（Ｓ３３０）。そして、今回切断されたＵＳＢデバイスが無い場合は（Ｓ３３０：無い）、Ｓ３１５へ戻る。これにより、Ｓ３１５〜Ｓ３３０は、概ね６秒ごとに繰り返し実行されることになる。
【０１０９】
そして、このようなＳ３１５〜Ｓ３３０の繰り返し処理が実行される中で、新しく接続されたＵＳＢデバイスが有った場合（Ｓ３２５：有る）、情報処理装置１は、新規ＵＳＢデバイスを上述のＵＤＴＢに登録し、デバイスドライバをシステムに登録する（Ｓ３３５）。このＳ３３５は、詳しくは図５に示すような処理となる。
【０１１０】
すなわち、情報処理装置１は、図５に示すように、まず、ＵＳＢデバイスの種類を判断する（Ｓ４０５）。ここで、ＵＳＢストレージクラスのデバイスであると判断されれば（Ｓ４０５：ＵＳＢストレージクラス）、ＵＳＢストレージデバイスへのデータ伝送用インターフェースに相当する仮想ＳＣＳＩ−Ｉ／Ｆ（仮想ＳＣＳＩホストアダプタ）をシステムに登録し、“ＳＣＳＩｍ”のシンボルをシステムから与えられる（Ｓ４１０）。なお、上記“ＳＣＳＩｍ”中にある“ｍ”は「０」からの通し番号で、切断後は再利用される番号である。
【０１１１】
また、情報処理装置１は、“／ｐｒｏｃ／ｓｃｓｉ／ｕｓｂ−ｓｔｏｒａｇｅ”に情報公開手段をシステム登録、“／ｐｒｏｃ／ｓｃｓｉ／ｕｓｂ−ｓｔｏｒａｇｅ／ｎ”のシンボルをシステムから与えられる（Ｓ４１５）。なお、上記“／ｐｒｏｃ／ｓｃｓｉ／ｕｓｂ−ｓｔｏｒａｇｅ／ｎ”中にある“ｎ”は「０」からの通し番号で、こちらは切断後の再利用はされない番号である。
【０１１２】
一方、Ｓ４０５において、ＵＳＢストレージクラス以外のデバイスであると判断されれば（Ｓ４０５：ＵＳＢストレージクラス以外）、情報処理装置１は、各ＵＳＢデバイス用の登録処理を行う（Ｓ４２０）。このＳ４２０の処理は、ＵＳＢデバイスの種類によってさらに何通りかの処理にわかれるが、この処理の詳細は本発明の要部ではないので、これ以上の説明は省略する。
【０１１３】
以上説明したようなＳ４０５〜Ｓ４２０の処理（図５参照）を終えると、図４に示したＳ３３５を終えたことになり、その場合、情報処理装置１は、今回接続の全ＵＳＢデバイスの処理が終了したか否かを判断する（Ｓ３４０）。
【０１１４】
ここで、今回接続の全ＵＳＢデバイスの処理が終了していなければ（Ｓ３４０：いいえ
次のＩ／Ｆへ）、Ｓ３３５へと戻ることにより、残りのＵＳＢデバイスについてもＳ３３５を繰り返す。そして、今回接続の全ＵＳＢデバイスの処理が終了したら（Ｓ３４０：はい）、Ｓ３３０へと進む。
【０１１５】
また、Ｓ３１５〜Ｓ３３０の繰り返し処理が実行される中で、今回切断されたＵＳＢデバイスが有った場合（Ｓ３３０：有る）、情報処理装置１は、切断ＵＳＢデバイスをＵＤＴＢから削除し、そのＩ／Ｆに接続されているドライブをシステムから削除する（Ｓ３４５）。このＳ３４５は、詳しくは図６に示すような処理となる。
【０１１６】
すなわち、情報処理装置１は、図６に示すように、まず、ＵＳＢデバイスの種類を判断する（Ｓ５０５）。ここで、ＵＳＢストレージクラスのデバイスであると判断されれば（Ｓ５０５：ＵＳＢストレージクラス）、“／ｐｒｏｃ／ｓｃｓｉ／ｕｓｂ−ｓｔｏｒａｇｅ／ｎ”の情報公開手段をシステムから削除する（Ｓ５１０）。なお、既に説明した通り、この番号“ｎ”が再利用されることはない。
【０１１７】
また、“ＳＣＳＩｍ”の仮想ＳＣＳＩ−Ｉ／Ｆ（仮想ＳＣＳＩホストアダプタ）をシステムから削除する（Ｓ５１５）。なお、既に説明した通り、この番号“ｍ”は以降も必要に応じて再利用されることがある。
【０１１８】
一方、Ｓ５０５において、ＵＳＢストレージクラス以外のデバイスであると判断されれば（Ｓ５０５：ＵＳＢストレージクラス以外）、情報処理装置１は、各ＵＳＢデバイス用の削除処理を行う（Ｓ５２０）。このＳ５２０の処理は、ＵＳＢデバイスの種類によってさらに何通りかの処理にわかれるが、この処理の詳細は本発明の要部ではないので、これ以上の説明は省略する。
【０１１９】
以上説明したようなＳ５０５〜Ｓ５２０の処理（図６参照）を終えると、図４に示したＳ３４５を終えたことになり、その場合、情報処理装置１は、今回切断の全ＵＳＢデバイスの処理が終了したか否かを判断する（Ｓ３５０）。ここで、今回切断の全ＵＳＢデバイスの処理が終了していなければ（Ｓ３５０：いいえ  次のＩ／Ｆへ）、Ｓ３４５へと戻ることにより、残りのＵＳＢデバイスについてもＳ３４５を繰り返す。そして、今回切断の全ＵＳＢデバイスの処理が終了したら（Ｓ３４０：はい）、Ｓ３１５へと戻る。
【０１２０】
さて、以上説明したような処理が、Ｓ１２０によって開始される処理となるが、ここで再び図２に戻り、Ｓ１２０を終えた時点からの説明を続ける。Ｓ１２０を終えると、情報処理装置１では、電源ＯＮ時に接続されているＵＳＢデバイスが一括で認識される（Ｓ１２５）。このような認識が行われるのは、上記Ｓ１２０により、ＵＳＢ接続監視の処理を開始しているからである。
【０１２１】
そして、認識されたＵＳＢデバイスの中に、ＵＳＢストレージデバイスが有る場合は、その中に存在するドライブがＳＣＳＩドライブと認識される（Ｓ１３０）。このような認識が行われるのは、上記Ｓ１１５により、ＳＣＳＩドライブ接続監視の処理を開始しているからである。
【０１２２】
続いて、情報処理装置１では、カーネルの初期化を終了し、最初のスクリプトが実行される（Ｓ１３５）。そして、メインで使用するボリュームのマウント処理を実行する（Ｓ１４０）。
【０１２３】
このＳ１４０は、詳しくは図７に示すような処理となる。すなわち、図７に示す処理を開始すると、情報処理装置１は、まず、ＳＣＳＩドライブ名“ｓｄａ”からＵＳＢポートを割り出す（Ｓ６０１）。このＳ６０１は、詳しくは図９に示すような処理となる。
【０１２４】
図９に示す処理を開始すると、情報処理装置１は、まず、“／ｐｒｏｃ／ｓｃｓｉ／ｕｓｂ−ｓｔｏｒａｇｅ”の下のファイルを検索する（Ｓ８０５）。
そして、ファイルが有るかどうかを判断する（Ｓ８１０）。ここで、ファイルが有る場合は（Ｓ８１０：はい）、見つかったファイルをリードする（Ｓ８１５）。ここでリード対象となるファイル“／ｐｒｏｃ／ｓｃｓｉ／ｕｓｂ−ｓｔｏｒａｇｅ／ｎ”は、ＵＳＢストレージデバイスおよびＵＳＢポートに関する情報を提供する情報公開用インターフェースである。
【０１２５】
Ｓ８１５では、上記ファイルをリードすることにより、ＵＳＢポートの情報やＵＳＢストレージデバイスの情報などを取得することができる。また、こうしたＵＳＢポートの情報やＵＳＢストレージデバイスの情報などは、一般的なＬｉｎｕｘ（登録商標）でも取得可能な情報であるが、この情報処理装置１においては、一般的なＬｉｎｕｘ（登録商標）では取得できない情報をも取得する。具体的には、Ｓ８１５では、ＵＳＢストレージデバイスに割り当てられたドライブ名を取得することができる。
【０１２６】
このドライブ名は、上記Ｓ２３５の処理により、ＳＣＳＩ−Ｉ／Ｆ毎に用意された記憶領域に格納されたドライブ名そのものである。一般的なＬｉｎｕｘ（登録商標）の場合、ＳＣＳＩ−Ｉ／Ｆを利用する際に、ＳＣＳＩ−Ｉ／Ｆにドライブ名が通知されることはないので、ＳＣＳＩ−Ｉ／Ｆに接続されたＳＣＳＩドライブに、どのようなドライブ名が割り当てられているのかを、ＳＣＳＩ−Ｉ／Ｆ側で知る術はない。
【０１２７】
しかし、この情報処理装置１では、上述の通り、リードキャパシティコマンドが発行される毎に、コマンドの発行対象となったドライブ名がＳＣＳＩ−Ｉ／Ｆ側に伝達されて、そのドライブ名がＳＣＳＩ−Ｉ／Ｆ側の記憶領域に残される。
【０１２８】
したがって、この記憶領域に残された情報を見れば、ＳＣＳＩ−Ｉ／Ｆに接続されたＳＣＳＩドライブに、どのようなドライブ名が割り当てられているのかを、ＳＣＳＩ−Ｉ／Ｆ側で知ることができる。
【０１２９】
また、ＳＣＳＩ−Ｉ／Ｆに複数のＳＣＳＩドライブが接続されている場合、上記ＳＣＳＩ−Ｉ／Ｆ側の記憶領域には、その内の一つのＳＣＳＩドライブに割り当てられた名前だけしか残されない。しかし、ＵＳＢストレージデバイスの場合、一つのＵＳＢストレージデバイスに対して一つの仮想ＳＣＳＩ−Ｉ／Ｆが生成される。そのため、このＳＣＳＩ−Ｉ／Ｆに対応する記憶領域に残されるのは、必ず一つのドライブ名のみとなるので、ＵＳＢストレージデバイスに割り当てられたドライブ名を問題なく特定できる。
【０１３０】
つまり、Ｓ８１５で取得した情報を見れば、一般的なＬｉｎｕｘ（登録商標）同様、その情報がどのＵＳＢポートに対応する情報なのかを特定できる。しかも、一般的なＬｉｎｕｘ（登録商標）とは異なり、その情報がどのようなドライブ名に対応する情報なのかをも特定できるのである。
【０１３１】
そこで、Ｓ８１５を終えたら、情報処理装置１は、まず、ＳＣＳＩドライブ名を判断して（Ｓ８２０）、ＳＣＳＩドライブ名“ｓｄａ”に対応する情報か否かを確認する。ここで、ＳＣＳＩドライブ名“ｓｄａ”に対応する情報でなければ（Ｓ８２０：ＳＣＳＩドライブ名が違う）、Ｓ８１０へと戻る。ちなみに、このようにＳ８１０へと戻ることになるのは、ＳＣＳＩドライブ名“ｓｄａ”以外のＳＣＳＩドライブ（例えば、ＳＣＳＩドライブ名“ｓｄｂ”等）が認識されている場合である。
【０１３２】
一方、Ｓ８２０において、ＳＣＳＩドライブ名“ｓｄａ”に対応する情報であれば（Ｓ８２０：探していたＳＣＳＩドライブ名）、接続ＵＳＢポートを取得する（Ｓ８２５）。すなわち、Ｓ８１５でリードした情報の中から接続ＵＳＢポートを示す情報を抽出する。この場合、ＵＳＢストレージデバイスの中に、ＳＣＳＩドライブ名“ｓｄａ”が割り当てられたものが存在することになり、その接続ＵＳＢポートが特定されて、図９に示す処理を終了することになる。
【０１３３】
一方、Ｓ８１０で、ＳＣＳＩドライブ名“ｓｄａ”に対応する情報が見つかる前にリード対象となるファイルが無くなった場合は（Ｓ８１０：いいえ）、そのまま図９に示す処理を終了する。これは、ＵＳＢストレージデバイスの中に、ＳＣＳＩドライブ名“ｓｄａ”が割り当てられたものが存在しない場合の処理に相当する。
【０１３４】
さて、以上説明したようなＳ８０５〜Ｓ８２５の処理を終えると、図７に示したＳ６０１の処理を終えたことになるので、その場合、情報処理装置１は、ＳＣＳＩドライブ名“ｓｄａ”が割り当てられたＵＳＢストレージデバイスの割り出しに成功したか否かを判断する（Ｓ６０３）。
【０１３５】
ここで、割り出しに失敗した場合は（Ｓ６０３：失敗）、ＵＳＢストレージデバイスの中に、ＳＣＳＩドライブ名“ｓｄａ”が割り当てられたものが存在しないことを意味するので、ＳＣＳＩドライブ名“ｓｄａ”が非ＵＳＢストレージデバイスに割り当てられているものと期待できる。
【０１３６】
そこで、この場合は、“／ｄｅｖ／ｓｄａ１”のファイルシステムを、所定のマウントポイント“／ｍａｉｎ”にマウントする（Ｓ６０５）。ここで、ドライブ名が“ｓｄａ”になった場合に、ファイルシステム名が“ｓｄａ１”になることは、情報処理装置１の構成上、事前に決まっている事項である。
【０１３７】
そして、Ｓ６０５を終えたら、マウント成功か否かを判断する（Ｓ６１０）。ここで、マウント成功であれば（Ｓ６１０：成功）、マウントしたボリューム内のスクリプト“／ｍａｉｎ／ｐｒｏｇ／ｓｔａｒｔｕｐ．ｓｈ”を実行する（Ｓ６１５）。
【０１３８】
一方、Ｓ６１０において、マウント失敗であれば（Ｓ６１０：失敗）、このままではスクリプト“／ｍａｉｎ／ｐｒｏｇ／ｓｔａｒｔｕｐ．ｓｈ”を実行できず、情報処理装置１は通常通りに起動できなくなる。また、Ｓ６０３において、割り出しに成功した場合は（Ｓ６０３：成功）、ＵＳＢストレージデバイスの中に、ＳＣＳＩドライブ名“ｓｄａ”が割り当てられたものが存在することを意味する。したがって、本来であればＳＣＳＩドライブ名“ｓｄａ”が割り当てられるはずの非ＵＳＢストレージデバイスが、何らかの事情（例えば、故障等）によって正常に認識されていない可能性が高い。
【０１３９】
そこで、この場合は、バックアップ動作用ＵＳＢポートからＳＣＳＩドライブ名を割り出す（Ｓ６２０）。このＳ６２０は、詳しくは図８に示すような処理となる。すなわち、図８に示す処理を開始すると、情報処理装置１は、まず、“／ｐｒｏｃ／ｓｃｓｉ／ｕｓｂ−ｓｔｏｒａｇｅ”の下のファイルを検索する（Ｓ７０５）。
【０１４０】
そして、ファイルが有るかどうかを判断する（Ｓ７１０）。ここで、ファイルが有る場合は（Ｓ７１０：はい）、見つかったファイルをリードする（Ｓ７１５）。ここでリード対象となるファイル“／ｐｒｏｃ／ｓｃｓｉ／ｕｓｂ−ｓｔｏｒａｇｅ／ｎ”は、既に説明したＳ８１５でも利用した情報公開用インターフェースである。したがって、Ｓ７１５で取得した情報を見れば、一般的なＬｉｎｕｘ（登録商標）同様、その情報がどのＵＳＢポートに対応する情報なのかを特定できる。しかも、一般的なＬｉｎｕｘ（登録商標）とは異なり、その情報がどのようなドライブ名に対応する情報なのかをも特定できる。
【０１４１】
そこで、Ｓ７１５を終えたら、情報処理装置１は、まず、接続ポートを判断して（Ｓ７２０）、内部ＵＳＢポート２１に対応する情報か否かを確認する。ここで、内部ＵＳＢポート２１に対応する情報でなければ（Ｓ７２０：ＵＳＢポートが違う）、Ｓ７１０へと戻る。ちなみに、このようにＳ７１０へと戻ることになるのは、外部ＵＳＢポート２２，２３のいずれかにもＵＳＢストレージデバイスが接続されている場合である。
【０１４２】
一方、Ｓ７２０において、内部ＵＳＢポート２１に対応する情報であれば（Ｓ７２０：探していたＵＳＢポート）、最後にリードキャパシティを実行したドライブ名を取得する（Ｓ７２５）。すなわち、Ｓ７１５でリードした情報の中からドライブ名を抽出する。
【０１４３】
このドライブ名は、“ｓｄａ”，“ｓｄｂ”，…といったドライブ名であるが、その末尾の文字“ａ”，“ｂ”，…は、どのような文字になるのか保証がない。具体的には、内部ＵＳＢポート２１にＵＳＢストレージデバイス２５が接続され、さらに外部ＵＳＢポート２２，２３にもＵＳＢストレージデバイスが接続されている場合、先に認識されたデバイスにはドライブ名“ｓｄａ”が付与される。また、その後に認識されたデバイスにはドライブ名“ｓｄｂ”が付与される。しかし、どのデバイスが先に認識されるかは不定であるため、例えばドライブ名“ｓｄａ”が付与されたデバイスがＵＳＢストレージデバイス２５なのかどうかは不定となる。
【０１４４】
この点、Ｓ７１０〜Ｓ７２０により、内部ＵＳＢポート２１に対応する情報を探し出し、Ｓ７２５により、ドライブ名を抽出すれば、内部ＵＳＢポート２１に接続されたＵＳＢストレージデバイス２５に割り当てられたドライブ名を確実に取得できるのである。
【０１４５】
なお、Ｓ７１０で、所期のＵＳＢポートが見つかる前にリード対象となるファイルが無くなった場合は（Ｓ７１０：いいえ）、図８に示す処理を終了する。これは、内部ＵＳＢポート２１にＵＳＢストレージデバイス２５が接続されていない場合の処理に相当する。
【０１４６】
さて、以上説明したような処理を終えると、図７に示したＳ６２０の処理を終えたことになるので、その場合、情報処理装置１は、“／ｄｅｖ／ｓｄｘ１”のファイルシステムを、所定のマウントポイント“／ｍａｉｎ”にマウントする（Ｓ６２５）。ここで、“ｓｄｘ”は、Ｓ７２５で取得したドライブ名である。つまり、Ｓ７２５までの処理で割り出したＳＣＳＩドライブのドライブ名を利用して、ＳＣＳＩドライブ上のパーティション（ファイルシステム）を指定し、そのパーティションを“／ｍａｉｎ”にマウントしているのである。
【０１４７】
そして、Ｓ６２５を終えたら、マウントに成功したか否かを判断し（Ｓ６３０）、成功していれば（Ｓ６３０：成功）、既に説明したＳ６１５へと進むことにより、マウントしたボリューム内のスクリプト“／ｍａｉｎ／ｐｒｏｇ／ｓｔａｒｔｕｐ．ｓｈ”を実行する（Ｓ６１５）。また、マウントに失敗した場合は（Ｓ６３０：失敗）、図７に示す処理を終了する。
【０１４８】
さて、以上説明したような処理を終えると、図２に示すＳ１４０を終えたことになるので、続いて、情報処理装置１では、メインで使用するボリューム内のスタートアッププログラムが起動する（Ｓ１４５）。すなわち、“／ｍａｉｎ”に非ＵＳＢストレージデバイスであるハードディスク装置１７上の“ｓｄａ１”またはＵＳＢストレージデバイス２５上の“ｓｄｘ１”のいずれがマウントされるかは、状況によって分かれるものの、いずれにしても、いずれかのボリューム内のスタートアッププログラムが起動するのである。
【０１４９】
そして、情報処理装置１では、システムが専用装置として動作し（Ｓ１５０）、以降は、利用者からのシャットダウン指示が有るまで（Ｓ１５５：いいえ）、専用装置としての動作を継続する。一方、利用者からのシャットダウン指示があった場合は（Ｓ１５５：はい）、シャットダウン処理を実行し（Ｓ１６０）、電源ＯＦＦに至る。
【０１５０】
［効果］
以上説明した情報処理装置１によれば、あらかじめ取り決められたドライブ名“ｓｄａ”となったデバイスが、非ＵＳＢストレージデバイスであるハードディスク装置１７であった場合、Ｓ６０１〜Ｓ６０３により、ドライブ名“ｓｄａ”となったデバイスがＵＳＢストレージデバイスではないことを確認した上で、Ｓ６０５を実行する手段（第１マウント手段）が、“／ｄｅｖ／ｓｄａ１”のファイルシステム（第１ファイルシステム）を“／ｍａｉｎ”（所定のマウントポイント）にマウントし、マウントできたら、Ｓ６１５，Ｓ１４５を実行する手段（処理実行手段）は、マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行する。
【０１５１】
一方、あらかじめ取り決められたドライブ名“ｓｄａ”がＵＳＢストレージデバイスに付与されてしまった場合は、単に“／ｄｅｖ／ｓｄａ１”のファイルシステム（第１ファイルシステム）を“／ｍａｉｎ”（所定のマウントポイント）にマウントするようなことはしない。
【０１５２】
したがって、あらかじめ取り決められたドライブ名が、想定外のＵＳＢストレージデバイスに付与されたとしても、そのような想定外のＵＳＢストレージデバイスから誤ってプログラムを読み込んでしまうといったトラブルを招くことがない。
【０１５３】
また、あらかじめ取り決められたドライブ名“ｓｄａ”がＵＳＢストレージデバイスに付与されてしまった場合、あるいは、“／ｄｅｖ／ｓｄａ１”のファイルシステムのマウントに失敗した場合は、Ｓ６２５を実行する手段（第２マウント手段）が、“／ｄｅｖ／ｓｄｘ１”のファイルシステム（第２ファイルシステム）を“／ｍａｉｎ”（所定のマウントポイント）にマウントし、マウントできたら、Ｓ６１５，Ｓ１４５を実行する手段（処理実行手段）は、マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく処理を実行する。
【０１５４】
したがって、非ＵＳＢストレージデバイスであるハードディスク装置１７のドライブ名が“ｓｄａ”となった場合は、“／ｄｅｖ／ｓｄａ１”のファイルシステム（第１ファイルシステム）から各種処理を起動する一方、何らかの原因（例えば故障等）により、ＵＳＢストレージデバイスのドライブ名が“ｓｄａ”となった場合や“／ｄｅｖ／ｓｄａ１”のマウントに失敗した場合は、“／ｄｅｖ／ｓｄｘ１”のファイルシステム（第２ファイルシステム）から緊急時用の代替処理を起動することができる。
【０１５５】
また、複数あるＵＳＢポートに２以上のＵＳＢストレージデバイスが接続されていると、Ｓ２３５を実行する手段（ドライブ名割り当て手段）が、それら複数のＵＳＢストレージデバイスに対してどのようなドライブ名を割り当てるのかは不定となる。そのため、内部ＵＳＢポート２１（管理者用ＵＳＢポート）に接続されたＵＳＢストレージデバイス２５に対して割り当てられたドライブ名も不定となる。
【０１５６】
しかし、Ｓ６２０を実行する手段（ドライブ名取得手段）は、内部ＵＳＢポート２１に接続されたＵＳＢストレージデバイス２５に対して割り当てられたドライブ名を取得する。そのため、Ｓ６２５を実行する手段（第２マウント手段）は、Ｓ６２０で取得されたドライブ名を利用して、ＵＳＢストレージデバイス２５上にあるファイルシステムを適切に特定することができる。
【０１５７】
したがって、Ｓ６２５では、適切なファイルシステムを“／ｍａｉｎ”にマウントすることができ、外部ＵＳＢポート２２，２３のいずれかに接続されたＵＳＢストレージデバイス上のファイルシステムを誤ってマウントしてしまうことはない。
【０１５８】
よって、適切なファイルシステムがマウントされた後、Ｓ６１５，Ｓ１４５では、マウントポイント下にあるファイル群からプログラムを読み込んで、当該プログラムに基づく適切な処理を実行することができる。
【０１５９】
さらに、上記情報処理装置１においては、Ｓ２３５で、ＳＣＳＩインターフェースを介してＵＳＢストレージデバイスにアクセスする際に、ＵＳＢストレージデバイスに割り当てられたドライブ名が、ＳＣＳＩインターフェースの備える記憶領域に保存される。
【０１６０】
そのため、Ｓ６２５では、“／ｐｒｏｃ／ｓｃｓｉ／ｕｓｂ−ｓｔｏｒａｇｅ／ｎ”の情報公開手段（情報公開用インターフェース）を介して情報を取得すると、ＳＣＳＩインターフェースおよびＵＳＢストレージデバイスに関する情報に加え、ドライブ名の情報をも取得することができる。したがって、一般的なＬｉｎｕｘ（登録商標）とは異なり、きわめて容易にＵＳＢポートに対応するドライブ名の情報を得ることができる。
【０１６１】
しかも、このようなドライブ名の情報をＳＣＳＩインターフェースの備える記憶領域に保存する処理は、リードキャパシティコマンドに対応する処理の中で実行するので、リードキャパシティコマンドを発行する上位プログラムには手を加えなくても、ドライブ名を記憶領域に残す仕組みを導入できる。したがって、ドライブ名をＳＣＳＩインターフェースに伝達するための専用コマンドを新設しなくてもよく、大がかりなプログラムの改修は不要となる。
【０１６２】
加えて、上記情報処理装置１においては、Ｓ７１０〜Ｓ７２０を繰り返すので、複数のＵＳＢストレージデバイスが存在していても、それらを順に処理対象として情報を読み出しながら、管理者用ＵＳＢポートに対応するドライブ名を選び出すことができる。
【０１６３】
また、内部ＵＳＢポート２１は、パネル３５を開放しないとＵＳＢストレージデバイス２５を抜き挿しできない場所にあるので、管理者以外の利用者が誤って内部ＵＳＢポート２１にＵＳＢデバイスを装着してしまうのを未然に防止することができる。
【０１６４】
つまり、内部ＵＳＢポート２１からはプログラムを起動できるものの、管理者以外が容易に利用できる状態にはなく、外部ＵＳＢポート２２，２３は管理者以外でも容易に利用できるものの、ここからプログラムを起動することはできない仕組みになっている。
【０１６５】
したがって、緊急時にＵＳＢストレージデバイス２５からの起動を実施できる仕組みを実装しているにもかかわらず、外部ＵＳＢポート２２，２３からの起動を防止でき、システムが正常に起動しなくなったり、予期しないプログラムが実行されてしまったりするのを、未然に防止することができる。
【０１６６】
また、上記情報処理装置１においては、Ｓ６０１を実行する手段（デバイス種別判定手段）が、情報公開用インターフェースを介して情報を取得すると、データ伝送用インターフェースおよびＵＳＢストレージデバイスに関する情報に加え、ドライブ名の情報をも取得することができ、ＵＳＢストレージデバイスとドライブ名との対応関係がわかる。
【０１６７】
したがって、一般的なＬｉｎｕｘ（登録商標）とは異なり、取得した情報中に判定対象についての情報が存在しない場合に、判定対象が非ＵＳＢストレージデバイスであると判定することが可能となる。
【０１６８】
［変形例等］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【０１６９】
例えば、上記実施形態では、カラオケコマンダーとしての機能を備えた情報処理装置１を例示したが、自動起動される機能をどのような機能とするかは任意である。すなわち、カラオケコマンダー以外にも、各種特定用途での専用情報処理装置において、本発明の構成を採用することができる。
【０１７０】
また、上記実施形態では、非ＵＳＢストレージデバイスの具体例として、シリアルＡＴＡ方式のハードディスク装置を例示したが、本発明でいう「非ＵＳＢストレージデバイス」としては、「情報処理装置からＳＣＳＩデバイスとして認識される接続方式を採用しており、且つ、ＵＳＢストレージデバイスではないストレージデバイス」を任意に採用できる。
【０１７１】
さらに、上記実施形態では、通常は非ＵＳＢストレージデバイスからの起動を行い、緊急時にＵＳＢストレージデバイスからの起動を行う例を示したが、誤って予期しないＵＳＢストレージデバイスからの起動を行うのを防止したいだけであれば、緊急時にＵＳＢストレージデバイスからの起動を行う構成を採用するか否かは任意である。
【０１７２】
より具体的には、例えば、非ＵＳＢストレージデバイスからの起動ができないと判断した場合に、起動を中断することで、誤って予期しないＵＳＢストレージデバイスからの起動を行ってしまうのを防止してもよい。
【０１７３】
また、上記実施形態の場合は、管理者用ＵＳＢポートおよび一般用ＵＳＢポートの双方が設けてあったので、管理者用ＵＳＢポートか否かを判定した上で、ＵＳＢストレージデバイスからの起動を行っていたが、例えば、筐体内に隠された管理者用ＵＳＢポートしか存在しない場合は、管理者用ＵＳＢポートか否かの判定を省略してもよい。
【図面の簡単な説明】
【０１７４】
【図１】情報処理装置の内部構造を示すブロック図。
【図２】情報処理装置の電源ＯＮに伴って実行される処理のフローチャート。
【図３】ＯＳ内ＳＣＳＩドライブ接続監視のフローチャート。
【図４】ＯＳ内ＵＳＢデバイス接続監視のフローチャート。
【図５】Ｓ３３５の詳細を示すフローチャート。
【図６】Ｓ３４５の詳細を示すフローチャート。
【図７】Ｓ１４０の詳細を示すフローチャート。
【図８】Ｓ６２０の詳細を示すフローチャート。
【図９】Ｓ６０１の詳細を示すフローチャート。
【符号の説明】
【０１７５】
１・・・情報処理装置、１１・・・ＣＰＵ、１３・・・ＲＯＭ、１５・・・ＲＡＭ、１７・・・ハードディスク装置、２０・・・ＵＳＢインターフェース、２１・・・内部ＵＳＢポート、２２，２３・・・外部ＵＳＢポート、２５・・・ＵＳＢストレージデバイス、３１・・・筐体、３３・・・開口部、３５・・・パネル、３７・・・固定具。
【図１】
0005056567.tif 000002
【図２】
0005056567.tif 000003
【図３】
0005056567.tif 000004
【図４】
0005056567.tif 000005
【図５】
0005056567.tif 000006
【図６】
0005056567.tif 000007
【図７】
0005056567.tif 000008
【図８】
0005056567.tif 000009
【図９】
0005056567.tif 000010