(58)【調査した分野】(Int.Cl.,DB名)
前記保護対象変数は前記システム・ファームウェアがブートルーチンを実行するために前記プリブートで参照する変数である請求項1に記載のシステム・ファームウェア。
【発明を実施するための形態】
【0015】
[ハードウェアの概略構成]
図1は、ノートブック型またはラップトップ型のPC10の主要なハードウェアの構成を示す機能ブロック図である。多くのハードウェアの構成は周知であるため、本発明の理解に必要な範囲で説明する。チップセット13はさまざまな規格のインターフェース機能を備えており、CPU11、システム・メモリ(RAM)15、GPU17、HDD21、USBコネクタ23、有線または無線のLANに接続するためのネットワーク・モジュール25、およびキーボード29などが接続されている。GPU17にはLCD19が接続されている。さらにチップセット13が含む、SPI(Serial Peripheral Interface)コントローラ14にはファームウェアROM100が接続されている。
【0016】
システム・メモリ15のメモリ空間には、システムの電源が起動したときにSMRAM領域15aが確保される。SMRAM領域15aは、CPU11がシステム・マネジメント・モード(SMM)で動作するときに実行するコードをロードする領域である。HDD21はブート・デバイスで、UEFI規格に対応するOSのブート・イメージを格納する。
【0017】
HDD21のブート・セクタは、OSのブート・イメージをロードするためのUEFI_OSローダー163(
図3)を格納する。USBコネクタ23には、外付けのUSBメモリ、USB_CD、USB_FDD、USB_HDDなどのUSBデバイスを接続することができる。PC10は、USBコネクタ23に接続されたブート・イメージを格納するUSBデバイスからブートすることもできる。PC10は、PXE(Preboot eXecution Environment)などの機能により、ネットワーク・モジュール25を通じてOSのブート・イメージを受け取ってPXEブートすることもできる。
【0018】
[ファームウェアROMのデータ構造]
図2は、ファームウェアROM100のデータ構造を示す図で、
図3はシステム・メモリ15にロードされて実行状態にあるソフトウェアの階層構造を示す図である。ファームウェアROM100は、不揮発性で記憶内容の電気的な書き替えが可能なフラッシュ・メモリで、一例としてコード領域101、変数領域103〜109およびデータ領域111からなる記億ブロックに区分している。変数領域103〜109およびデータ領域111の記億ブロックは、ファームウェアROM100とは異なる不揮発性メモリに設けてもよい。
【0019】
コード領域101は、UEFIファームウェア150およびUEFIアプリケーション165のコードを格納する。変数領域103はデフォルトGV151を格納し、変数領域105は保護対象GV153と非保護対象GV155からなるGVを格納する。なお、以下において保護対象GV153と非保護対象GV155を区別しないときは単にGVと称する。変数領域107はConfiguration Variables(CV)157を格納し、変数領域109はUser Variables(UV)159を格納する。データ領域111は制御リスト161を格納する。
【0020】
最初に変数領域103〜109が格納する変数について説明する。デフォルトGV151はUEFIベンダーが書き込んだGVで、システムの動作に異常が発生した場合や何らかの理由で必要がある場合にユーザがシステムを初期化するために利用する。本実施の形態ではデフォルトGV151を、ブートごとに変数領域105のGVを置換するためには利用しない。
【0021】
GVはUEFI規格において定義されており、UEFIファームウェア150、UEFIアプリケーション165、OS167およびOSアプリケーション169(
図3)のいずれからもアクセスできることが保証されている。なお、以下においてはOS167と称した場合にOSアプリケーション169も含む場合がある。GVに対するアクセスは、新たなGVの書き込み、変更、削除および読み取りなどに相当する。GVの書き込み、変更および削除は、オリジナル・バリアブル・サービス150bまたは新バリアブル・サービス150fのファンクションを構成するSetVariableという関数を呼び出す。
【0022】
GVの読み取りはオリジナル・バリアブル・サービス150bまたは新バリアブル・サービス150fのファンクションを構成するGetVariableという関数を呼び出す。保護対象GV153は、一例としてBoot####、BootOrder、BootNext、Driver####、DriverOrderといったブート・デバイスの種類とその選択順位、デバイス・ドライバの種類とその選択順位といったようなブートに関連する変数を含む。さらに保護対象GVは、ConIn、ConOutといった入出力デバイスまでのパスのようなハードウェアの構成に関連する変数を含む。
【0023】
保護対象GV153がUEFIファームウェア150以外のプログラムによって書き換えられるとシステムが正常に起動できなくなる可能性がある。GVの問題がある改変は、OS167、UEFIアプリケーション165またはマルウェアがSetVariableを呼び出したときに発生する。保護対象GV153は、問題がある改変から保護する対象となる変数に相当する。
【0024】
ユーザは、UEFIファームウェア150のセット・アップ画面を通じて保護対象GV153を改変することができる。この場合、UEFIファームウェア150が認識しているため問題がある改変には相当しない。GVの保護は、UEFIファームウェア150がブートルーチンを実行するためにアクセスする場所の一例である変数領域105に格納した保護対象GV153が、UEFIファームウェア150以外のプログラムによって改変されないようにすることを意味する。
【0025】
本実施の形態では、
図4〜
図7で説明するようにGVを保護しながらOS167が所定の動作のために必要な保護対象GV153にアクセスすることを可能にする。非保護対象GV155は、保護対象GV153以外のGVで、ブートやハードウェアの構成に関係しない変数に相当する。非保護対象GV155は、UEFIファームウェア150がブートルーチンを実行する際に、変数領域105にUEFIファームウェア150以外のプログラムで改変された状態で存在してもよい。
【0026】
CV157は、UEFIファームウェア150が、ブートの際にデバイスの認識や初期化などの処理をするために、変数領域107に書き込んだ変数に相当する。CV157は、UEFIファームウェア150のベンダーが定義する。UEFIファームウェア150は、オリジナル・バリアブル・サービス150bを利用してCV157を書き込むことができる。
【0027】
CV157はUEFIファームウェア150が設定するデバイスの属性情報およびデバイスに設定するパラメータ、セット・アップ画面を呼び出してユーザが設定したデバイスの種類、デバイスの動作モード、およびデバイスの有効/無効などの設定情報、ブート・イメージが格納されているパーティションのパスやロードするOSの種類などの情報を含む。CV157はブートに不可欠な変数を含むが、UEFI規格では公開性が要求されないので変数領域107をライト・ロックしてOS167やマルウェアによる改変から保護することができる。
【0028】
UV159は、OS167、UEFIアプリケーション165が、その実行に際して自らをカスタマイズするための環境変数や、デバッグ・ログまたはエラー・ログのようなダンプ・ファイルをUEFI規格の制約を受けないで自由に書き込む変数に相当する。UEFIファームウェア150は、オリジナル・バリアブル・サービス150bを利用してUV159を書き込むことができる。
【0029】
本実施の形態では、コード領域101、変数領域103、107およびデータ領域109に、チップセット13のSPIコントローラ14においてライト・ロックが可能な記録領域を割り当てている。ライト・ロックが実行された記録領域に対しては、チップセット13がリセットされるまですべてのプログラムの書き込みが禁止される。UEFIファームウェア150は、ブートの際に安全が保証されたコードから、他のコードにCPU11の制御権を渡す前にファームウェアROM100のコード領域101、変数領域103、107およびデータ領域111をライト・ロックすることができる。
【0030】
UEFIファームウェア150は、初期化コード150a、オリジナル・バリアブル・サービス(Variable Services)150b、ブート・マネージャ150c、セット・アップ・コード150d、GV制御コード150e、新バリアブル・サービス150f、およびUEFIドライバ150gを含む。UEFIファームウェア150は一例において、書き換えに伴うリスクを軽減するためにブート・ブロック方式を採用することができる。ブート・ブロック方式では、初期化コード150aを格納する領域をブート・ブロックに設定する。ブート・ブロックに格納されたコードはTPM(Trusted Platform Module)の仕様書に規定するCRTM(Core Root Of Trust Measurement)として扱われ特別な権限がないと書き換えができないようになっている。
【0031】
CRTMは、プラットフォームの初期化コードの中で完全性が保証されている部分として構成され、プラットフォームのリセット時には必ず最初に実行される。CRTMは、PC10がACPIに規定するハイバネーション状態(S4ステート)またはパワー・オフ状態(S5ステート)からパワー・オン状態(S0ステート)に遷移するための動作プロセスであるいわゆるコールド・ブートのときに必ず最初に実行される。
【0032】
初期化コード150aは、PC10がコールド・ブートをする際に、システム・メモリ15にUEFIファームウェア150をロードして実行を開始するために必要なCPU11、システム・メモリ15およびその他の基本的なデバイスの検出、検査および初期化を必要な範囲で行う。初期化コード150aはまた、CPU11がリセットしてから、UEFI_OSローダー163に制御が移行するまでの期間にチップセット13のコントローラや周辺デバイスなどの所定のデバイスを初期化して使用できる状態にする。初期化コード150aは、UEFIファームウェア150のコードのオリジナルからの一貫性または完全性を検査して改竄を発見した場合はブートを停止する。
【0033】
オリジナル・バリアブル・サービス150bは、変数領域105に格納したGVにアクセスするためのGetVariable、 GetNextVariableName、SetVariableなどのファンクションを含む。ブート・マネージャ150cは、ブート処理およびパスワード認証処理などを行う。ブート・マネージャ150cは、UEFIファームウェア150によるブートルーチンが終了すると、UEFIアプリケーション165、およびUEFI_OSローダー163をシステム・メモリ15にロードする。ここに、システムがコールド・ブートしてからUEFIファームウェア150以外のコードにCPU11の制御権が移るまでの動作状態をプリブートという。
【0034】
プリブートは、CRTMにより一貫性が検証されたコードを実行する動作状態ということができる。プリブートはあるいはSPIコントローラ14によりコード領域101がライト・ロックされるまでの動作状態ということもできる。プリブートの間は、安全性が確保されたUEFIファームウェア150だけが変数領域105のGVを改変することができる。ブート・マネージャ150cは、プリブートが終了してUEFIファームウェア150からOS167にCPU11の制御権が移る直前に、UEFI_OSローダー163をシステム・メモリ15に読み出して完全性の検証をすることができる。
【0035】
本明細書でブートとは、電源が起動してからプリブートを経由してOS167のロードが完了した状態になるまでの一連の処理をいう。UEFI_OSローダー163には作成者が計算したハッシュ値を秘密鍵で暗号化した電子署名が付されている。ブート・マネージャ150cは、UEFI_OSローダー163のコードから計算したハッシュ値と、署名データ・ベースから取得した公開鍵で復号して得た電子署名のハッシュ値を比較して、一致していれば完全性が維持されていると判断してUEFI_OSローダー163の実行を許可する。
【0036】
セット・アップ・コード150dは、プリブートの段階でキーボード29の所定のファンクション・キーが押下されたたときに、LCD19にセット・アップ画面を表示する。ユーザはセット・アップ画面を通じて、ブート・デバイスの優先順位の決定、起動方法の設定、使用デバイスの設定、パスワードの設定およびパワー・マネジメントの設定などをすることができる。
【0037】
セット・アップ・コード150dは、セット・アップ画面を通じて入力された設定情報を一例として変数領域107にCVとして書き込む。セット・アップ・コード150dを通じて行われる保護対象GVの改変は、UEFIファームウェア150が認識しているのでブートルーチンに問題を生じさせない。また、UEFIアプリケーション165とOS167は、独自の必要性に基づいてGVを改変することができる。
【0038】
その結果、保護対象GV153の改変がUEFIファームウェア150のブートルーチンに影響を与える場合があるため、本実施の形態では、UEFIアプリケーション165やOS167による改変から変数領域105の保護対象GV153を保護する。他方で、OS167が保護対象GV153を改変しないと意図する動作環境を構築できない場合がある。このような状況に対処するために、セット・アップ画面は、本実施の形態にかかるGVの保護機能に対してイネーブル/ディスエーブルの設定をするメニューを含む。イネーブル/ディスエーブルの設定情報は、ファームウェアROM100の所定の場所に記録される。
【0039】
GV制御コード150eは、
図4〜
図7の手順で説明するGVの保護のための処理をする。新バリアブル・サービス150fは
図6、
図7で説明するように、OS167やUEFIアプリケーション165がSMRAM領域15aにコピーした保護対象GV153にアクセスするためのGetVariable、GetNextVariableName、SetVariableなどのファンクションを含む。UEFIアプリケーション165は、UEFIファームウェア150の上層で動作し、UEFIドライバ150gは、UEFIファームウェア150が特定のハードウェアにアクセスするための処理をする。制御リスト161は、保護対象GV153の識別子(VendorGuidおよびVariableName)を記述する。
【0040】
[保護対象GVの改変を禁止する手順]
図4〜
図7は、UEFIファームウェア150がGVを保護する手順の一例を示すフローチャートである。
図4のブロック201で、PC10の電源が起動してシステムがコールド・ブートを開始する。このとき
図2に示すように、変数領域105には、保護対象GV153と非保護対象GV155が格納され、変数領域107にはCV157が格納され、変数領域109にはUV159が格納され、データ領域111には、制御リスト161が格納されている。
図6で詳細に説明するブロック217の手順があるため、変数領域105が格納する保護対象GV153は、前回のブートで改変されていないことが保証されている。
【0041】
パワー・オン・リセットしたチップセット13は、ブロック203でSPIコントローラ14に設定していたファームウェアROM100のコード領域101、変数領域103、107およびデータ領域111に対するライト・ロックを解除する。つづいてブロック205で初期化コード150aがプリブートに必要なデバイスを初期化すると、UEFIファームウェア150がシステム・メモリ15にロードされる。初期化コード150aはつづいて変数領域105が格納する保護対象GV153、および変数領域107が格納するCV157を参照して、必要な範囲でその他のデバイスを初期化する。つづいてUEFIファーウェア150はPOST(Power On Self-Test)を開始する。
【0042】
プリブートの間ブロック207でUEFIファームウェア150は、変数領域105のGVを改変する。UEFIファームウェア150は、初期化コード150aによって一貫性が検証されているか、OSの動作環境ではSPIコントローラ15aのライト・ロックによって保護されているためマルウェアによる汚染の恐れがなく、保護対象GV153が改変されても次回のプリブートに支障をきたすことはない。ブロック208で、ユーザはセット・アップ画面を呼び出してGVの保護機能をイネーブルまたはディスエーブルに設定することができる。
【0043】
ブロック209でGV制御コード150eは、変数領域105が格納するGVのなかで保護対象GV153だけを、システム・メモリ15のSMRAM領域15aのような代替メモリにコピーする。システム・メモリ15は書き込み速度が速いため代替メモリとして望ましいが、退避先をシステム・メモリ15に限定する必要はない。また、代替メモリにコピーする保護対象GV153は次回のプリブートで使用しないため、代替メモリは揮発性メモリでも不揮発性メモリでもよい。保護対象GV153をコピーするタイミングは、UEFIファームウェア150による保護対象GV153の改変が終了してからプリブートが終了するまでの間とすることができる。
【0044】
図5は、
図4のブロック209の手順の一例を示すフローチャートである。ブロック213でプリブートの終了のタイミングを認識したGV制御コード150eはブロック233で、オリジナル・バリアブル・サービス150bのGetNextVariableNameを呼び出して変数領域105からGVを読み取る。GetNextVariableNameは、システムにおいて利用可能なGV、CV、UVすべての変数を列挙する関数で、呼び出されたときに保持する変数の次の変数の識別子をGV制御コード150eに戻す。GetNextVariableNameは、GV、CV、UVのすべての識別子を戻したあとにさらに呼び出されたときはエラーを戻す。ブロック235でGV制御コード150eは、オリジナル・バリアブル・サービス150bからエラーを受け取ったときにGV、CV、UVのすべての変数を読み取ったと判断してブロック241で終了する。
【0045】
オリジナル・バリアブル・サービス150bから変数の識別子を受け取ったGV制御コード150eはブロック237で、制御リスト161を参照して読み出したGVが制御リスト161に登録された保護対象GV153であるか否かを判断する。保護対象GV153であると判断したときはブロック239に移行し、非保護対象GV155であると判断したときはブロック233に戻る。ブロック239でGV制御コード150eは、当該保護対象GV153をSMRAM領域15aにコピーしてからブロック233に戻る。
【0046】
GV制御コード150eはブロック233でさらにGetNextVariableNameを呼び出して、次の変数の識別子を取得してブロック237で保護対象GV153であるか否かを判断する。ブロック231〜241の手順を実行すると変数領域105に格納されたGVのなかで、保護対象GV153がすべてSMRAM領域15aにコピーされる。
【0047】
SMRAM領域15aへのコピーは、他の方法でも行うことができる。たとえば、変数領域105を保護対象GV153だけを格納する記憶ブロックと非保護対象GV155だけを格納する記憶ブロックに区分する。コピーの際には、保護対象GV153だけを格納する記憶ブロックのアドレスを指定する。この方法によれば、制御リスト161を利用しないですべての保護対象GV153をコピーすることができる。
【0048】
図4に戻ってブロック211でGV制御コード150eは、プリブートが終了する直前に、コード領域101、変数領域103、107およびデータ領域111をライト・ロックするためにチップセット13のSPIコントローラ14を設定する。ブロック213でプリブートが終了すると、ブロック215で、ブート・マネージャ150cは、コード領域101からシステム・メモリ150にUEFIアプリケーション165をロードし、HDD21の所定のセクタからUEFI_OSローダー163をロードする。
【0049】
やがてOS167がロードされてPC10はOSブート状態に移行する。ブロック217でOS167はGVにアクセスすることができる。ブロック217の手順の詳細は
図6を参照して説明する。ブロック219でパワー・オフ状態に遷移したあとに、ブロック201に戻って次回のコールド・ブートをする。このときブロック217の手順で、変数領域103の保護対象GV153が保護されているため次回のプリブートが失敗することはない。
【0050】
図6は、
図4のブロック217の手順の一例を示すフローチャートである。ブロック251でUEFIファームウェア150、UEFIアプリケーション165、OS167のいずれかに相当するコーラーがGetVariable、またはSetVariableを呼び出してGVにアクセスする。ブロック253〜256は、GVの保護条件の判断に相当する。ブロック253でGV制御コード150eは、アクセスがプリブート中に行われたと判断したときはブロック261に移行し、プリブートが終了した後に行われたと判断したときはブロック255に移行する。
【0051】
ブロック253からブロック261に移行するときは、保護対象GV153と非保護対象GV155のいずれかがアクセスの対象になっている。プリブートが終了したあとの動作環境で、変数領域105が格納する保護対象GV153の改変を許可すると、次回のブートに問題がでる可能性があるため、GVの保護機能は原則としてイネーブルに設定することが望ましい。しかし、ユーザが保護対象GV153の安全性を考慮した上で、変数領域105の保護対象GV153の改変を許可する必要がある場合もある。
【0052】
たとえば、OS167をローカルのブート・デバイスからブートするように保護対象GV153に設定しているときに、ネットワークを経由してPXEブートをしたい場合がある。このとき、OS167が変数領域105の保護対象GV153のブート・オーダーを改変しないとリモート・ブートは実現できない。また、ウィルス対策ソフトの中には、プリブートの終了後にOSより先にロードして実行するものがある。この場合も、ウィルス対策ソフトによる変数領域153の保護対象GV153の改変を許容する必要がある。
【0053】
OS167が変数領域105の保護対象GV153を改変する必要があるときにユーザはセット・アップ画面を通じてGVの保護機能をディスエーブルに設定する。ブロック255でGV制御コード150eはファームウェアROM100に記録された設定情報からGVの保護機能を判断する。GV制御コード150eは、GVの保護機能がイネーブルに設定されているときはブロック256に移行し、ディスエーブルに設定されているときはブロック261に移行する。
【0054】
ブロック255からブロック261に移行するときは、保護対象GV153と非保護対象GV155のいずれかがアクセスの対象になっている。ブロック256でGV制御コード150eは、制御リスト161を参照して、コーラーがアクセスするGVが保護対象GV153と判断したときはブロック257に移行し、非保護対象GV155と判断したときはブロック261に移行する。ブロック257でGV制御コード150eは、新バリアブル・サービス150fにコーラーから要求されたGVの識別子を渡す。
【0055】
ブロック259で新バリアブル・サービス150fは、SMRAM領域15aにコピーされた保護対象GV153にアクセスしてコーラーに識別子を返す。ブロック261でGV制御コード150eは、オリジナル・バリアブル・サービス150bにコーラーから要求されたGVの識別子を渡す。ブロック263でオリジナル・バリアブル・サービス150bは、変数領域105の非保護対象GV155にアクセスしてコーラーに戻り値を返す。
【0056】
図6の手順では、GVの保護条件が成立したときは、SMRAM領域15aにコピーされた保護対象GV153はOS167によって改変されるが、変数領域105の保護対象GV153は改変されない。OS167はアクセス先をSMRAM領域15aに指定する必要はなく、オリジナル・バリアブル・サービス150bにアクセスするのと同じ手順で保護対象GV153を改変しさらに改変した保護対象GV153を読み取って動作することができる。
【0057】
OS167は、保護対象GV153を改変しないと、インストールができない場合がある。たとえば、変数領域105の保護対象GV153にPXEブートを第1順位として設定した状態でOS167をインストールするときに、OS167は自らをブートの第1順位に設定しないとインストールが失敗することがある。
図6の手順によれば、OS167はSMRAM領域15a上でブートの順位を設定してインストールを成功させることができる。しかし変数領域105の保護対象GV153は改変されていないため、UEFIファームウェア105はその後PXEブートをすることができる。
【0058】
OS167は変数領域105に記憶された非保護対象GV155を改変することができるが、非保護対象GV155の改変はシステムの動作に障害をもたらすことはない。
図6の手順では、保護対象GV153をSMRAM領域15aにコピーする時間が必要になるが、SMRAM領域15aへのコピーは変数領域105をデフォルトGV151で書き換えるよりも短い時間で終了できるためブート時間の遅延問題は生じない。
【0059】
図4のブロック219でパワー・オフ状態に遷移すると、SMRAM領域15aの保護対象GV153は消去される。OS167は、保護対象GV153を改変したつもりでも変数領域105の保護対象GV153は改変されなかったことになる。しかし、OS167が変数領域105の保護対象GV153を改変したとしても、次回のプリブートでユーザがセット・アップ画面を通じて当該保護対象GV153を改変するかもしれない。
【0060】
OS167は通常、変数領域105に格納された保護対象GV153を前回のブートで書き換えていたとしても、確実にみずからの環境設定をするために今回のブートでも保護対象GV153を改変する処理をする。したがって、OS167はブートごとに同じ改変の手順を繰り返すためSMRAM領域15aの保護対象GV153が消去されても次回のブートで追加的な処理が発生することはない。
【0061】
図4〜
図6の手順では、OS167による変数領域105の保護対象GV153の改変を禁止し、非保護対象GV155の改変を許可した。ここでOS167による変数領域105の非保護対象GV155の改変を禁止することも考えられる。しかし、非保護対象GV155の改変は、UEFIファームウェア150のブートルーチンに支障がなく、むしろ、OS167が意図する動作環境を維持したほうが望ましいため、本実施の形態では、OS167による非保護対象GVの改変を許可している。
【0062】
また、保護対象GV153と非保護対象GV155を一旦SMRAM領域15aにコピーして、いずれに対する改変もSMRAM領域15aで行い、パワー・オフ状態に遷移する際に、改変された非保護対象GV155だけを変数領域105に書き込むようにすることも考えられる。このとき、突然電源が遮断してSMRAM領域15aのデータが消失したときに、改変した非保護対象GV155が消失するが本実施の形態ではそのような事態が生ずることはない。
【0063】
図4〜
図6に示した手順は本発明を説明するための例示であり、すべてが本発明の必須の手順ではない。本発明の必須の手順は特許請求の範囲に記載するとおりである。また、各ブロックの順番も、
図4〜
図6に示した順番に限定するものではない。たとえば、
図6のブロック253〜256の手順は任意の順番にしてもよい。本発明は、
図1に示したハードウェアと
図2、
図3に示したソフトウェアの協働により構成するハードウェア要素で実現したシステムとして捉えることもできる。
【0064】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【解決手段】ファームウェアROM100には、UEFIファームウェア150、保護対象GV153および非保護対象GV155が格納されている。保護対象GV153および非保護対象GV155は、UEFIファームウェアがプリブートをするために参照する。OSはプリブートの終了後にみずからの動作環境を構築するために保護対象GVを改変することができる。ファームウェアROMに記録された保護対象GV153は、ブートやシステムの構成に関連するデータを含むためOSにより改変されると次回のプリブートが失敗することがある。UEFIファームウェアは、プリブートが終了する前に保護対象GVをシステム・メモリにコピーする。プリブートの終了後のOSによる保護対象GVに対するアクセスはシステム・メモリ上で処理する。